Re: FreeBSD deadlock (with fork?)

From: David Naylor <naylor.b.david_at_gmail.com>
Date: Thu, 18 Sep 2008 21:22:04 +0200
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?)


Received on Thu Sep 18 2008 - 17:22:48 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:35 UTC