FreeBSD deadlock (with fork?)

David Naylor naylor.b.david at gmail.com
Thu Sep 18 19:22:49 UTC 2008


On Thursday 18 September 2008 18:23:22 you wrote:
> David Naylor wrote:
> > Hi,
> >
> > I have a program that spawns a lot of subprocesses (with pipes open) from
> > multiple threads.  The problem is the program often deadlocks, but not
> > consistently.  Sometimes the program can run over 5 times to competition
> > without incidence and yet othertimes it locks within a few seconds.
>
> you sent this to -current. Is it in -current? (we fixed something like
> this some months back in current and 7)

-current cvsuped about Tuesday.  

> do your post-fork processes do an exec?  according to the spec they
> should.

Yes, they do.  See the other replies...

> if any of your threads other than the one that did the fork ho;ds any
> mutex at teh time of fork then your process will hang. If they hold a
> umtx (between processes) then everything will hang.

Yes, the system does make use of mutexes.  The forking thread never holds a 
mutex but other threads could hold a mutex.  This would explain the problem.  
Is there any way to get around it (i.e. make sure no mutexes are held when a 
fork is called?)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: This is a digitally signed message part.
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20080918/4de6045c/attachment.pgp


More information about the freebsd-current mailing list