Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Sep 2008 21:22:04 +0200
From:      David Naylor <naylor.b.david@gmail.com>
To:        Julian Elischer <julian@elischer.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: FreeBSD deadlock (with fork?)
Message-ID:  <200809182122.08221.naylor.b.david@gmail.com>
In-Reply-To: <48D2807A.1050106@elischer.org>
References:  <200809180631.47071.naylor.b.david@gmail.com> <48D2807A.1050106@elischer.org>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
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?)


[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQBI0qpgUaaFgP9pFrIRAljRAJ4yB8YgGU5m4DcNCr0mt5GVX1mmuACfTPPo
phWECfLkfwuS8eaW/LqLsP8=
=1pKp
-----END PGP SIGNATURE-----
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809182122.08221.naylor.b.david>