From: Tycho Andersen Date: Sat, 13 Sep 2014 01:05:54 +0000 (-0500) Subject: c/r: use --restore-sibling option in CRIU X-Git-Tag: lxc-1.1.0.alpha2~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74bcefea48f73569ec6e91adb410e84efe46d3b8;p=thirdparty%2Flxc.git c/r: use --restore-sibling option in CRIU After looking through some logs, it is a little cleaner to do it as below, instead of what I originally posted. Tycho In order for LXC to be the parent of the restored process, CRIU needs to restore init as its sibling, not as its child. This was previously accomplished essentially via luck :). CRIU now has a --restore-sibling option which forces this behavior that LXC expects. See more discussion in this thread: http://lists.openvz.org/pipermail/criu/2014-September/thread.html#16330 v2: don't pass --restore-sibling to dump. This is mostly cosmetic, but will look less confusing in the logs if people ever look at them. Signed-off-by: Tycho Andersen Acked-by: Serge E. Hallyn --- diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index b8b367ddd..a73719166 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -3533,8 +3533,8 @@ static void exec_criu(struct criu_opts *opts) if (!opts->stop) static_args++; } else if (strcmp(opts->action, "restore") == 0) { - /* --root $(lxc_mount_point) --restore-detached --pidfile $foo */ - static_args += 5; + /* --root $(lxc_mount_point) --restore-detached --restore-sibling --pidfile $foo */ + static_args += 6; } else { return; } @@ -3600,6 +3600,7 @@ static void exec_criu(struct criu_opts *opts) DECLARE_ARG("--root"); DECLARE_ARG(opts->c->lxc_conf->rootfs.mount); DECLARE_ARG("--restore-detached"); + DECLARE_ARG("--restore-sibling"); DECLARE_ARG("--pidfile"); DECLARE_ARG(opts->pidfile);