[Mono-bugs] [Bug 423518] WARNING: Got event 137f for unknown pid xxxx

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Oct 22 18:58:17 EDT 2008


https://bugzilla.novell.com/show_bug.cgi?id=423518

User martin at novell.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=423518#c28





--- Comment #28 from Martin Baulig <martin at novell.com>  2008-10-22 16:58:16 MDT ---
Yeah, sorry.  My apologies for not taking this more serious in the first place.
 Sure, I'll also backport the fix into the 2.0-branch.

Btw. it looks like the race condition already existed before, just didn't show
up until the latest kernel versions.

=====[kernel/fork.c, in 2.6.25]=======
                if ((p->ptrace & PT_PTRACED) || (clone_flags & CLONE_STOPPED))
{
                        /*
                         * We'll start up with an immediate SIGSTOP.
                         */
                        sigaddset(&p->pending.signal, SIGSTOP);
                        set_tsk_thread_flag(p, TIF_SIGPENDING);
                }

                if (!(clone_flags & CLONE_STOPPED))
                        wake_up_new_task(p, clone_flags);
                else
                        __set_task_state(p, TASK_STOPPED);

                if (unlikely (trace)) {
                        current->ptrace_message = nr;
                        ptrace_notify ((trace << 8) | SIGTRAP);
                }
======[kernel/fork.c, in 2.6.27]==============

                if (unlikely(clone_flags & CLONE_STOPPED)) {
                        /*
                         * We'll start up with an immediate SIGSTOP.
                         */
                        sigaddset(&p->pending.signal, SIGSTOP);
                        set_tsk_thread_flag(p, TIF_SIGPENDING);
                        __set_task_state(p, TASK_STOPPED);
                } else {
                        wake_up_new_task(p, clone_flags);
                }

                tracehook_report_clone_complete(trace, regs,
                                                clone_flags, nr, p);

============================

Under normal circumstances, we're never called with CLONE_STOPPED - so
wake_up_new_task() is always executed before reporting creation of the new
thread.

I'll have a new patch ready shortly.


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list