[CRIU] [PATCH] tests: Check that no-breakpoints restore works

Pavel Emelyanov xemul at virtuozzo.com
Wed Apr 27 05:00:18 PDT 2016


On 04/27/2016 01:44 PM, Cyrill Gorcunov wrote:
> On Wed, Apr 27, 2016 at 01:23:04PM +0300, Pavel Emelyanov wrote:
>>
>> Signed-off-by: Pavel Emelyanov <xemul at virtuozzo.com>
>> ---
>>  criu/include/fault-injection.h | 1 +
>>  criu/parasite-syscall.c        | 6 +++++-
>>  test/jenkins/criu-fault.sh     | 1 +
>>  3 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/criu/include/fault-injection.h b/criu/include/fault-injection.h
>> index c69a1c9..f1e5c72 100644
>> --- a/criu/include/fault-injection.h
>> +++ b/criu/include/fault-injection.h
>> @@ -10,6 +10,7 @@ enum faults {
>>  	/* not fatal */
>>  	FI_CHECK_OPEN_HANDLE = 128,
>>  	FI_NO_MEMFD = 129,
>> +	FI_NO_BREAKPOINTS = 130,
>>  	FI_MAX,
>>  };
>>  
>> diff --git a/criu/parasite-syscall.c b/criu/parasite-syscall.c
>> index a5b2fc7..f9e0bac 100644
>> --- a/criu/parasite-syscall.c
>> +++ b/criu/parasite-syscall.c
>> @@ -1428,7 +1428,11 @@ int ptrace_stop_pie(pid_t pid, void *addr, enum trace_flags *tf)
>>  {
>>  	int ret;
>>  
>> -	ret = ptrace_set_breakpoint(pid, addr);
>> +	if (fault_injected(FI_NO_BREAKPOINTS)) {
>> +		pr_debug("Force no-breakpoints restore\n");
>> +		ret = 0;
>> +	} else
>> +		ret = ptrace_set_breakpoint(pid, addr);
>>  	if (ret < 0)
>>  		return ret;
> 
> What about clear_breakpoints?

Hm... It worked for some reason, but yes, I agree. It's better to ban this
thing too :) Will send patch soon.

-- Pavel



More information about the CRIU mailing list