[CRIU] [PATCH] Dismantle cgyard in non-detached restore mode.

Tycho Andersen tycho.andersen at canonical.com
Wed Mar 18 10:59:38 PDT 2015


Hi Saied,

On Mon, Mar 16, 2015 at 12:03:37PM -0700, Saied Kazemi wrote:
> If the --restore-detached command line option is not specified during
> restore, CRIU should unmount and remove the temporary cgyard directory
> tree before waiting for the restored process to exit.  Otherwise, all
> the temporary cgyard mount points will remain mounted and visible.
> 
> Signed-off-by: Saied Kazemi <saied at google.com>
> ---
>  cr-restore.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/cr-restore.c b/cr-restore.c
> index 4a1fe4e..24d9f8b 100644
> --- a/cr-restore.c
> +++ b/cr-restore.c
> @@ -1845,8 +1845,10 @@ static int restore_root_task(struct pstree_item *init)
>  
>  	write_stats(RESTORE_STATS);
>  
> -	if (!opts.restore_detach && !opts.exec_cmd)
> +	if (!opts.restore_detach && !opts.exec_cmd) {
> +		fini_cgroup();
>  		wait(NULL);
> +	}

Good catch.

I don't think we can do this here, because immediately after
restore_root_task() is called, prepare_cgroup_properties() is called,
which needs the cg yard to do its work. This brings up an interesting
point though: currently if we don't --restore-detached, the cg
properties aren't (attempted to be) restored until after the task
exits, which is not good. Should the prepare_cgroup_properties() call
be moved into restore_root_task()?

Also, is there any reason not to fini_cgroup() all the time once we've
prepare_cgroup_properties(), not just in non-detached mode?

Tycho

>  	return 0;
>  
> -- 
> 2.2.0.rc0.207.ga3a616c
> 


More information about the CRIU mailing list