[CRIU] [PATCH] parasite: Don't handle CHLD from trapping threads
Pavel Emelyanov
xemul at parallels.com
Tue Oct 14 06:22:38 PDT 2014
On 10/14/2014 05:21 PM, Andrew Vagin wrote:
> 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.
Why is it so?
More information about the CRIU
mailing list