Failure with fork()

Ryan Johnson ryan.johnson@cs.utoronto.ca
Thu Jun 27 11:27:00 GMT 2013


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



More information about the Cygwin mailing list