[CRIU] [Announce] CRIU 3.1 released

Pavel Emelyanov xemul at virtuozzo.com
Tue May 23 03:41:28 PDT 2017


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


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);


-- Pavel



More information about the CRIU mailing list