This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Failure with fork()


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]