[CRIU] [PATCH 5/8] parasite: restore registers after each parasite command

Pavel Emelyanov xemul at parallels.com
Tue Jul 16 05:57:44 EDT 2013


On 07/16/2013 01:44 PM, Andrew Vagin wrote:
> On Tue, Jul 16, 2013 at 01:45:56PM +0400, Pavel Emelyanov wrote:
>> On 07/15/2013 11:19 PM, Andrew Vagin wrote:
>>> On Mon, Jul 15, 2013 at 09:03:42PM +0400, Pavel Emelyanov wrote:
>>>> On 07/11/2013 01:46 PM, Andrey Vagin wrote:
>>>>> Currenly we can restore blocking signals with help ptrace,
>>>>> so if registers are restored after command, a process state
>>>>> will not be corrupted if criu crashes.
>>>>
>>>> If criu crashes the sigreturn rescue code will restore the regs. No?
>>>
>>> Yes, but two commands are required, that a parasite is able to restore
>>> itself via sigreturn:
>>> * allocate parasite_ctl
>>> * parasite_init_daemon()
>>>
>>> crtools can crash between these two commands, so we need this and
>>> previos patch. This logic is used for dumping threads too.
>>
>> crtools can crash between set_sigmask(blockall) and set_sigmask(prev_blocked),
>> so why do we need this change? Only to reduce this risky window?
> 
> Yes

That's ... strange. I would understand if we had only single
window at which crtools crash means app crash. But we have
several sequential of them. Can we fix it?


More information about the CRIU mailing list