On Fri, 16 Oct 2009 10:58:10 +0200, Oleg Nesterov wrote:
> On 10/15, Roland McGrath wrote:
> > > Say, ptrace(DETACH/CONT, SIGSTOP). This should work, this means
> > > SIGNAL_STOP_DEQUEUED should be set even before the tracee calls
> > > do_signal_stop(). But otoh it doesn't look right to set this flag
> > > each time the tracee sees a stop signal from the debugger (especially
> > > on detach), ->real_parent should not see multiple notifications.
> >
> > I don't think an extra SIGCHLD/wakeup here is going to be considered a
> > problem, in the grand scheme of things.  I can't really see any plausible
> > way we'd (want to) preserve whether the real_parent already thought it was
> > stopped or not.
> 
> I dunno. I am not arguing, just I don't know. But, stopped-attach-transparency
> seem to check this. I am not sure, but
> "Excessive waiting SIGSTOP after it was already waited for\n" looks like it
> it does. I'll re-check.

"stopped-attach-transparency" is there to fulfill wishes from users that

1. kill -STOP PID
2. gcore PID or gstack PID
3. kill -CONT PID

should not affect PID and its interaction (such as PID parent's waitpid) in
any way.

But as the point 1 and 3 already signal PID's parent some SIGSTOP/SIGCONT
events the parent generally does not expect it may not matter much if the
point 2 does some more of such unexpected signal reporting to PID's parent.

So feel free to break stopped-attach-transparency if it makes sense so.



Regards,
Jan

Reply via email to