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