On Fri 23-09-16 16:07:24, Oleg Nesterov wrote: > On 09/23, Michal Hocko wrote: > > > > On Fri 23-09-16 15:21:02, Oleg Nesterov wrote: > > > > > > This change is simply wrong no matter what. > > > > I've just tried to extend the existing > > > > /* > > * Tracers may want to know about even ignored signals. > > */ > > return !t->ptrace; > > > > but I probably just do not understand what that actually means. I > > thought that the tracer is _really_ interested in hearing about the > > signal. > > Yes, the tracer is really interested to know that a signal was sent to > the _tracee_, not the tracer ;)
OK, now it makes more sense. I was really scratching my head to understand this part... > > > We could change do_notify_parent() > > > to call signal_wake_up() if tsk->ptrace, but see above, this won't help. > > > > So does this mean WONTFIX? Can we at least document this behavior? It > > surely is unexpected. > > No, no, no. Of course this must be fixed. The only problem is that I still > do not know what should we do. I'll try to return to this problem next week. > I'm afraid we will need to change de_thread() to wait until all other sub- > threads have passed exit_notify() or even exit_signals(), Yes making de_thread completely independent on the state of the tracer would be a huge improvement. While playing with this test case I triggered some other interesting hangs (e.g. strace hanging in tty while trying to print something). So just few interruptible waits is not a full solution. > but ooh I don't > like this. Plus in this case we will need to finally define what > PTRACE_EVENT_EXIT should actually do. OK, considering this has been broken for quite some time I do not think we are in hurry. I am slightly worried about how such a solution would be stable kernel safe but ohh well. -- Michal Hocko SUSE Labs ------------------------------------------------------------------------------ _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel