[CRIU] [PATCH 4/6] dump: dump signals before infecting with parasite

Ruslan Kuprieiev kupruser at gmail.com
Tue Aug 5 07:13:46 PDT 2014


We need this In order to fit signals into core.img. core.img is being 
written
in dump_core_task_all,which is called right in the middle of dump_one_task,
when parasite code is already injected. We can't dump signals while
under parasite, because parasite has its own signals.

This patch doesn't change anything about dumping singnals, because
in both cases task is seized and doesn't have parasite injected.

I've tested it by running sigpending from zdtm and it seems to work well.

05.08.2014 16:56, Andrew Vagin пишет:
> Why do we need this?
>
> If a tack has a few pending signals, will it be safe?
>
> On Tue, Aug 05, 2014 at 10:35:59AM +0200, Ruslan Kuprieiev wrote:
>> Signed-off-by: Ruslan Kuprieiev <kupruser at gmail.com>
>> ---
>>   cr-dump.c | 12 ++++++------
>>   1 file changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/cr-dump.c b/cr-dump.c
>> index d8ad0fc..c8be0bd 100644
>> --- a/cr-dump.c
>> +++ b/cr-dump.c
>> @@ -1498,6 +1498,12 @@ static int dump_one_task(struct pstree_item *item)
>>   		goto err;
>>   	}
>>   
>> +	ret = dump_task_signals(pid, item, cr_fdset);
>> +	if (ret) {
>> +		pr_err("Dump %d signals failed %d\n", pid, ret);
>> +		goto err;
>> +	}
>> +
>>   	ret = -1;
>>   	parasite_ctl = parasite_infect_seized(pid, item, &vmas, dfds, proc_args.timer_n);
>>   	if (!parasite_ctl) {
>> @@ -1632,12 +1638,6 @@ static int dump_one_task(struct pstree_item *item)
>>   		goto err;
>>   	}
>>   
>> -	ret = dump_task_signals(pid, item, cr_fdset);
>> -	if (ret) {
>> -		pr_err("Dump %d signals failed %d\n", pid, ret);
>> -		goto err;
>> -	}
>> -
>>   	close_cr_fdset(&cr_fdset);
>>   err:
>>   	close_pid_proc();
>> -- 
>> 1.9.1
>>
>> _______________________________________________
>> CRIU mailing list
>> CRIU at openvz.org
>> https://lists.openvz.org/mailman/listinfo/criu



More information about the CRIU mailing list