On Tue, 06 Oct 2009 19:14:28 +0200, Oleg Nesterov wrote: > On 10/06, Jan Kratochvil wrote: [...] > > If it is not reported to the new tracer then it will be always > > processed by the tracee, is it right? > > Yes, sure. > > (But, just in case... if the tracer does ptrace(DETACH, SIGNR), this > signr only matters if the tracee was stopped after reporting syscall > or signal, otherwise SIGNR is ignored).
In which specific cases SIGNR can get ignored? Whole PTRACE_DETACH will be ignored if the tracee is not stopped. It SIGNR will be proabably ignored if the tracee is now dead. Otherwise SIGNR should get delivered, shouldn't it? > > + /* SIGPIPE was still pending and it has not been yet delivered. */ > > + if (WIFSTOPPED (status) && WSTOPSIG (status) == SIGPIPE) [...] > Yes, I didn't verify this yet, but I think with this patch the > test-case should succeed with utrace-ptrace kernel. Checked-in. Thanks, Jan