[Announce] CRIU 3.1 released

Submitted by Pavel Emelianov on May 23, 2017, 10:41 a.m.

Details

Message ID 0cefd28a-2b5f-eede-4e9d-96b1d4710334@virtuozzo.com
State Accepted
Series "CRIU 3.1 released"
Headers show

Commit Message

Pavel Emelianov May 23, 2017, 10:41 a.m.
On 05/23/2017 01:05 PM, Pavel Emelyanov wrote:
> On 05/23/2017 09:36 AM, Adrian Reber wrote:
>> On Mon, May 22, 2017 at 10:59:35PM +0300, Pavel Emelyanov wrote:
>>> On 05/22/2017 09:36 PM, Adrian Reber wrote:
>>>
>>>>> Hm... I'm trying to install Fedora26-Alpha into a VM by using std network
>>>>> install from libvirt and every attempt finishes with "no space left on
>>>>> device" error, while I _do_ have space on both -- virtual and physical
>>>>> disks. What's the image you've installed fedora from?
>>>>
>>>> Hmm... My installation is also in a VM but maybe a year old. I cannot
>>>> remember when and how I installed it. 
>>>
>>> OK, it wanted 2Gigs of RAM to make install work :) Now I have Fedora-26
>>> installed and criu/master compiled:
>>>
>>> # ./zdtm.py run -t zdtm/static/env00 -f h
>>> === Run 1/1 ================ zdtm/static/env00
>>>
>>> ========================== Run zdtm/static/env00 in h ==========================
>>> Start test
>>> ./env00 --pidfile=env00.pid --outfile=env00.out --envname=ENV_00_TEST
>>> Run criu dump
>>> Run criu restore
>>> Send the 15 signal to  24
>>> Wait for zdtm/static/env00(24) to die for 0.100000
>>> ========================= Test zdtm/static/env00 PASS ==========================
>>>
>>> The ns and uns flavors also work. How can I reproduce the hang you're seeing?
>>
>> Interesting, zdtm also works for me, but I am not able to dump other
>> processes like: https://lisas.de/~adrian/memcmp.c
>>
>> criu dump -t `pidof memcmp` -j -vvvv
>>
>> Both the criu from my RPM and from the git checkout master does not
>> work. zdtm works from git master.
> 
> Yup, it hangs for me as well :) will check.

OK, so it hangs while dumping cgroup with index 0, this is unified
hierarchy. We have https://github.com/xemul/criu/issues/252 :)

Adrian, would you check whether this patch helps? On my box memcmp
is dumpable and cgroup_stray too




-- Pavel

Patch hide | download patch | download mbox

diff --git a/criu/proc_parse.c b/criu/proc_parse.c
index f1237cf9..708f41c6 100644
--- a/criu/proc_parse.c
+++ b/criu/proc_parse.c
@@ -2272,8 +2272,13 @@  int parse_cgroup_file(FILE *f, struct list_head *retl, unsigned int *n)
 		 * 2:name=systemd:/user.slice/user-1000.slice/session-1.scope
 		 */
 		name = strchr(buf, ':');
-		if (name)
+		if (name) {
 			path = strchr(++name, ':');
+			if (*name == ':') { /* unified hier */
+				xfree(ncc);
+				continue;
+			}
+		}
 		if (!name || !path) {
 			pr_err("Failed parsing cgroup %s\n", buf);
 			xfree(ncc);
@@ -2437,6 +2442,9 @@  int collect_controllers(struct list_head *cgroups, unsigned int *n_cgroups)
 		}
 		controllers++;
 
+		if (*controllers == ':') /* unified hier */
+			continue;
+
 		off = strchr(controllers, ':');
 		if (!off) {
 			pr_err("Unable to parse \"%s\"\n", buf);

Comments

Adrian Reber May 23, 2017, 12:43 p.m.
On Tue, May 23, 2017 at 01:41:28PM +0300, Pavel Emelyanov wrote:
> On 05/23/2017 01:05 PM, Pavel Emelyanov wrote:
> > On 05/23/2017 09:36 AM, Adrian Reber wrote:
> >> On Mon, May 22, 2017 at 10:59:35PM +0300, Pavel Emelyanov wrote:
> >>> On 05/22/2017 09:36 PM, Adrian Reber wrote:
> >>>
> >>>>> Hm... I'm trying to install Fedora26-Alpha into a VM by using std network
> >>>>> install from libvirt and every attempt finishes with "no space left on
> >>>>> device" error, while I _do_ have space on both -- virtual and physical
> >>>>> disks. What's the image you've installed fedora from?
> >>>>
> >>>> Hmm... My installation is also in a VM but maybe a year old. I cannot
> >>>> remember when and how I installed it. 
> >>>
> >>> OK, it wanted 2Gigs of RAM to make install work :) Now I have Fedora-26
> >>> installed and criu/master compiled:
> >>>
> >>> # ./zdtm.py run -t zdtm/static/env00 -f h
> >>> === Run 1/1 ================ zdtm/static/env00
> >>>
> >>> ========================== Run zdtm/static/env00 in h ==========================
> >>> Start test
> >>> ./env00 --pidfile=env00.pid --outfile=env00.out --envname=ENV_00_TEST
> >>> Run criu dump
> >>> Run criu restore
> >>> Send the 15 signal to  24
> >>> Wait for zdtm/static/env00(24) to die for 0.100000
> >>> ========================= Test zdtm/static/env00 PASS ==========================
> >>>
> >>> The ns and uns flavors also work. How can I reproduce the hang you're seeing?
> >>
> >> Interesting, zdtm also works for me, but I am not able to dump other
> >> processes like: https://lisas.de/~adrian/memcmp.c
> >>
> >> criu dump -t `pidof memcmp` -j -vvvv
> >>
> >> Both the criu from my RPM and from the git checkout master does not
> >> work. zdtm works from git master.
> > 
> > Yup, it hangs for me as well :) will check.
> 
> OK, so it hangs while dumping cgroup with index 0, this is unified
> hierarchy. We have https://github.com/xemul/criu/issues/252 :)
> 
> Adrian, would you check whether this patch helps? On my box memcmp
> is dumpable and cgroup_stray too

Yes, with this patch dumping memcmp and cgroup_stray works. Thanks.

		Adrian