[CRIU] Re: [PATCH 09/10] tty: Introduce deferred dumping of tty peers

Pavel Emelyanov xemul at parallels.com
Fri Oct 26 16:23:08 EDT 2012


On 10/27/2012 12:21 AM, Cyrill Gorcunov wrote:
> On Sat, Oct 27, 2012 at 12:18:45AM +0400, Pavel Emelyanov wrote:
>> On 10/27/2012 12:16 AM, Cyrill Gorcunov wrote:
>>> On Sat, Oct 27, 2012 at 12:15:23AM +0400, Pavel Emelyanov wrote:
>>>>> Thus when we start dumping ptmx peer (which belongs to SCREEN)
>>>>> we've not yet constructed the process tree item for children
>>>>> (ie /bin/bash) and the lookup function in tty code (which walks
>>>>> over all process items in a tree) simply fails to find sid of
>>>>> child, because we've not yet dumped it.
>>>>
>>>> Are we talking about this code
>>>>
>>>>         if (pti->sid) {
>>>>                 struct pstree_item *item = find_first_sid(pti->sid);
>>>>                 if (!item || item->pid.virt != pti->sid) {
>>>>                         if (!opts.shell_job) {
>>>>                                 pr_err("Found sid %d pgid %d on slave peer fd %d. "
>>>>                                        "Missing option?\n",
>>>>                                        pti->sid, pti->pgrp, p->fd);
>>>>                                 return -1;
>>>>                         }
>>>>                 }
>>>>         }
>>>>
>>>> in dump_pty_info? The find_first_sid() finds nothing, right?
>>>
>>> yeah, this is main problem.
>>
>> OK. Let's move forward. This find_first_sid() is required to make sure
>> that the session leader of tty's session is with us, correct?
> 
> Yes, exactly. We need to figure out if we manage to restore this peer.

Then I propose to dump ttys in the old place and just make this check deferred.



More information about the CRIU mailing list