patch (Re: ^Z during port build and hang?)

Matthew Dillon dillon at
Sat Jun 25 09:32:11 PDT 2005

:On Fri, Jun 24, 2005 at 11:15:28AM -0700, Matthew Dillon wrote:
:>     Try this patch.  There is a race during fork() where a ^Z can cause a
:>     newly forked process to stop as part of the fork trampoline.  That code
:>     path was not setting up the passive release function and the process
:>     retained its 'current process' designation when it went to sleep.  The
:>     result?  No other user processes can run.
:>     The thread priority was also not being properly set, possibly giving
:>     programs that fork a lot (e.g. a make/build) higher priority then the
:>     rest of the system.
:Thanks! So far with this patch, I haven't been able to reproduce it no
:matter how hardly I tried to do so.  By the way, do you have any idea
:why it only happens with ttyv? and not with other types of terminals?

    It's probably due to interactions with other processes (e.g. sshd)
    simply reducing the chance that a signal would be delivered to the
    child of the fork() during the critical trampoline period.

					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>

More information about the Bugs mailing list