[CRIU] [PATCH] parasite: Don't handle CHLD from trapping threads

Pavel Emelyanov xemul at parallels.com
Tue Oct 14 06:14:26 PDT 2014


The idea is appealing, but

> @@ -1630,15 +1630,21 @@ static int dump_one_task(struct pstree_item *item)
>  		goto err_cure;
>  	}
>  
> -	ret = dump_task_threads(parasite_ctl, item);
> +	ret = dump_task_creds(parasite_ctl, cr_imgset, &cr);
>  	if (ret) {
> -		pr_err("Can't dump threads\n");
> -		goto err_cure;
> +		pr_err("Dump creds (pid: %d) failed with %d\n", pid, ret);
> +		goto err;
>  	}
>  
> -	ret = dump_task_creds(parasite_ctl, cr_imgset, &cr);
> +	ret = parasite_stop_daemon(parasite_ctl);
>  	if (ret) {
> -		pr_err("Dump creds (pid: %d) failed with %d\n", pid, ret);
> +		pr_err("Can't cure (pid: %d) from parasite\n", pid);
> +		goto err;
> +	}
> +
> +	ret = dump_task_threads(parasite_ctl, item);
> +	if (ret) {
> +		pr_err("Can't dump threads\n");
>  		goto err;
>  	}
>  

This expands the window during which dead CRIU results in dead dumpee as
after parasite_stop_daemon() the latter is in unrecoverable state (the
regs are restored after parasite_munmap()).

Thanks,
Pavel



More information about the CRIU mailing list