Messages in this thread | | | Date | Tue, 27 Sep 2011 14:54:07 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH stable-3.0] ptrace: don't clear GROUP_STOP_SIGMASK on double-stop |
| |
On 09/26, Greg KH wrote: > > On Mon, Sep 26, 2011 at 07:06:32PM +0200, Oleg Nesterov wrote: > > https://bugzilla.redhat.com/show_bug.cgi?id=740121 > > > > 1. Luke Macken triggered WARN_ON(!(group_stop & GROUP_STOP_SIGMASK)) > > in do_signal_stop(). > > > > This is because do_signal_stop() clears GROUP_STOP_SIGMASK part > > unconditionally but doesn't update it if task_is_stopped(). > > > > 2. Looking at this problem I noticed that WARN_ON_ONCE(!ptrace) is > > not right, a stopped-but-resumed tracee can clone the untraced > > thread in the SIGNAL_STOP_STOPPED group, the new thread can start > > another group-stop. > > > > Remove this warning, we need more fixes to make it true. > > > > Reported-by: Luke Macken <lmacken@redhat.com> > > Signed-off-by: Oleg Nesterov <oleg@redhat.com> > > Is this fix in Linus's tree already? If so, what's the git commit id?
No. As I said, 3.1 has the similar problem. But not the same, and you need the quite different test-case to trigger the bug.
We are discussing the possible fixes for 3.1, but this code was changed very much and it doesn't make sense to compare the fixes for 3.1 and 3.0.
Oleg.
| |