threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork()

David Xu davidxu at freebsd.org
Mon Feb 13 01:20:13 PST 2006


The following reply was made to PR threads/89262; it has been noted by GNATS.

From: David Xu <davidxu at freebsd.org>
To: bug-followup at freebsd.org, garry at NetworkPhysics.COM
Cc: jhb at freebsd.org
Subject: Re: threads/89262: [kernel] [patch] multi-threaded process hangs
 in kernel in fork()
Date: Mon, 13 Feb 2006 17:11:26 +0800

 ast will call userret which in turn will call thread_suspend_check.
 so the bug may not be here, but in other code.
 
 I have found a race between sleep queue and thread suspension code,
 the following patch fixed the bug, it also simplified interaction
 between sleep queue and signal code. now, sleepq_abort() is also
 fixed, it can save an errno, unlike current code, it wrongly works
 as wakeup().
 
 http://people.freebsd.org/~davidxu/patch/slpq_susp4.patch
 
 David Xu
 


More information about the freebsd-threads mailing list