DragonFly BSD
DragonFly users List (threaded) for 2006-10
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: bmake not killing childrens


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 5 Oct 2006 08:42:16 -0700 (PDT)

:On Wed, Oct 04, 2006 at 03:02:35PM -0700, Matthew Dillon wrote:
:>     It is a very small window, but it can be hit in a heavily-forking build.
:>     I think the DragonFly bug causes more reports of the problem then the
:>     bug in make, but both have to be fixed.
:
:Are you sure that is the issue? It doesn't happen on NetBSD for example.
:
:Joerg

    There are two issues.  One is the code bug... but that is a very small
    window, probably no more then 5uS.  The second issue is a bug in 
    DragonFly's forking code where a process group signal (such as ^C)
    will not propogate to a child process that is in the middle of being
    fork()ed by its parent.  The latter is a far more visible bug.

    Other BSDs have a good chance of having the same fork()ing bug.  It
    can occur if any kernel malloc call in fork1() blocks.

    The code bug... the improper use of signal(... SIG_IGN) to test the
    current handler, is definitely a bug and definitely needs to be fixed.

    The fork()ing bug also needs to be fixed, probably by putting a lock
    in the process group structure to interlock signal propogation and
    fork().

					-Matt
					Matthew Dillon 
					<dillon@xxxxxxxxxxxxx>



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]