On Thu, 23 May 2013, Corinna Vinschen wrote: > On May 23 18:07, Corinna Vinschen wrote: > > On May 23 10:14, Satish Balay wrote: > > > [...] > > > - It appears to be related to the huge length of one of the commands - and > > > length of PATH > > > - I tried it on 3 different machines [with differences in default > > > installed software] > > > win2008/x64 - breaks when PATH is over 1.5K chars > > > win2003/x32 - breaks when PATH is over 2K chars > > > win7/x32 - breaks when PATH is over 20K chars. > > > > > > Any ideas on how to debug this further to better understand the issue > > > - or workarrounds? This is with latest cygwin [and rebaseall done > > > correctly] > > > > There's perhaps not much you can do. First of all, the problem is known > > for a while, but even though we're trying a lot of stuff to make sure > > that fork works, the OS has some funny notions sometimes, which make it > > hard to get fork 100% reliable. > > > > In this case, there's a subtil difference between the first shell > > started from make, and a forked subshell. The difference is something > > to do with the size of $PATH which results in a different position of > > the main stack in the forked child process. This breaks fork because > > fork semantics require to be able to reproduce the parent memory in the > > child process. > > > > Thanks for the test case. I'm just investigating what happens exactly, > > and I have a few ideas how we can workaround this problem to make fork > > a bit more reliable in this situation. This requires some fiddling > > around, so, just stay tuned for a couple of days. > > After some experimenting, it looks like I found a surprisingly simple > solution. I checked in a patch to CVS, and I'm just generating a new > developer's snapshot. Please try the just uploaded today's snapshot > from http://cygwin.com/snapshots/ Exchanging just the DLL should be > sufficient. Please report back.
I just tried the snapshot cygwin dll on the win2008 box - and it appears to work! [both for the test case and the actual build that triggered the problem]. This run is with about 20K chars in PATH > > Btw., there's an upper bound for the size of a single environment > variable of about 32K. Right now, if $PATH reaches this size, forking > any further process fails silently. I don't know why yet, but as far > as I'm concerned this is no pressing issue. Sure - hopefully no one has such huge PATHs - so not an issue. thanks! Satish -- 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