[CRIU] Bad commit

Pavel Emelyanov xemul at parallels.com
Thu Aug 14 05:32:46 PDT 2014


On 08/14/2014 04:18 PM, Cyrill Gorcunov wrote:
> On Thu, Aug 14, 2014 at 04:16:04PM +0400, Cyrill Gorcunov wrote:
>> Guys, commit
>>
>> [root at pcs criu]# git bisect good
>> e301b1d56c5c56155c68fa2f6ef4f5a716d0217b is the first bad commit
>> commit e301b1d56c5c56155c68fa2f6ef4f5a716d0217b
>> Author: Tycho Andersen <tycho.andersen at canonical.com>
>> Date:   Wed Aug 13 21:23:00 2014 +0400
>>
>>     restore: --restore-detached implies CLONE_PARENT
>>     
>>     We need to use CLONE_PARENT to prevent processes from immediately dying due to
>>     pdeath_sig when they are restored in detached mode.
>>     
>>     [ xemul: One more place which requires check for restore-detach
>>              is in sigactions preparation ]
>>     
>>     Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>
>>     Signed-off-by: Pavel Emelyanov <xemul at parallels.com>
>>
>> ruined my restore process for the container :(

For what container?

>> (00.039241) Error (cr-restore.c:1006): Can't fork for 1: Invalid argument
> 
> It's because of
> 
> copy_process
> 	...
> 	/*
> 	 * Siblings of global init remain as zombies on exit since they are
> 	 * not reaped by their parent (swapper). To solve this and to avoid
> 	 * multi-rooted process trees, prevent global and container-inits
> 	 * from creating siblings.
> 	 */
> 	if ((clone_flags & CLONE_PARENT) &&
> 				current->signal->flags & SIGNAL_UNKILLABLE)

UNKILLABLE??? The caller of criu is unkillable?! Why?

> 		return ERR_PTR(-EINVAL);
> 
> I think the commit should be reverted.

The same should be true for criu_restore_sub() as it uses the same
technique. Let's investigate the issue.

Thanks,
Pavel




More information about the CRIU mailing list