easy to reproduce unkillable threads

Julian Elischer julian at elischer.org
Mon Sep 27 15:59:22 PDT 2004

Andrew Gallatin wrote:

>I've put together a quick and dirty example of the thread
>deadlock-on-exit (sometimes lingering thread) problem I've been
>seeing with my driver and FreeBSD threads.  See the long "Re:
>Unkillable KSE threaded proc" thread from earlier this month for
>The tarball linked below is based on /usr/share/examples/kld/cdev
>To reproduce the problem, build the module and load it.
>Then build testcdev, and run it.  
>Install the skill-4.1.1 port.  Then ssh in from another host, and do 'skill
>-9 -u $USER'.  

>This should leave you with a stuck thread..

hmm looks like the problem is that the condition variable respods to a 
masked signal

the signals are all masked from the perspective of the thread..the 
signal is delivered to the signal
catcher thread so the UTS can handle it but in the meanwhile the thread 
has done a RESTART..

 David: check out what happens when a signal is delivered to a worker 
thread that is in a cv_wait_signal()

>> .
> I haven't checked it as yet but I am starting to see some hint of some 
> problem..
> The fact that cv_wait_signal()  reacts to a blocked signal surproses me..
> (according to teh man page)
>I would really love for somebody to look at it before 5.3-R...
>Thank you,

More information about the freebsd-threads mailing list