From 74bcefea48f73569ec6e91adb410e84efe46d3b8 Mon Sep 17 00:00:00 2001 From: Tycho Andersen Date: Fri, 12 Sep 2014 20:05:54 -0500 Subject: [PATCH] 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 --- src/lxc/lxccontainer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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); -- 2.47.3