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

Matthew Dillon dillon at apollo.backplane.com
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?
:
:Thanks.

    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.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>





More information about the Bugs mailing list