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

Andrew Vagin avagin at parallels.com
Tue Oct 14 06:21:28 PDT 2014


On Tue, Oct 14, 2014 at 05:14:26PM +0400, Pavel Emelyanov wrote:
> 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()).

No, this doesn't. If criu detaches from a process after
parasite_stop_daemon(), the process will continue.

> 
> Thanks,
> Pavel
> 


More information about the CRIU mailing list