This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Failure with fork()
- From: Ryan Johnson <ryan dot johnson at cs dot utoronto dot ca>
- To: cygwin at cygwin dot com
- Date: Thu, 27 Jun 2013 07:20:56 -0400
- Subject: Re: Failure with fork()
- References: <CAMCbSMqcCEUhjiSsv8CvP1LUdxEHgyS4jJvLjzkSCACAuQ9e2w at mail dot gmail dot com>
On 27/06/2013 5:35 AM, Arjen Markus wrote:
Hello,
the bug I am reporting here on behalf of Alan Irwin surfaced in the
combination wine and Cygwin (Alan summarised it here:
http://www.winehq.org/pipermail/wine-devel/2013-June/100328.html). It
has to do with the way Cygwin handles forks.
The bug can be illustrated with this small program:
int main(void) {
while(!fork());
return 0;
}
It is meant to enable infinite forking, but on Cygwin it immediately
stops. I tried
it on both Cygwin (not via wine but simply Windows 7) and Linux:
- On Linux the program continues without any problem
- On Cygwin it stops immediately with an error message that the child process
terminated unexpectedly with some weird return code.
Can anyone shed light on this? This bug is a showstopper for the
combination wine and Cygwin.
Out of curiosity, why do you need a fork bomb? Does the script just
capture the effect of multiple fork calls in quick succession? How many
forks can you pull off before it croaks, and is that number consistent
from run to run? I'd be shocked if it really died "immediately" -- as in
"zero forked children" -- so it would be interesting to see if the issue
is related to the number of fork calls (resource exhaustion of some
kind), or just to how quickly they run back to back (data race of some
kind).
Ryan
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple