Some update on Cygwin hangs

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Fri Oct 19 03:04:08 PDT 2012


Our intuition is that the problem occurs with different frequency on different machines. Erik has a good reproducer machine, my laptop is in-between, and the lab server running our Hudson job has never had a single hang (since a couple of reboot). Rebooting usually reduces the risk of hanging. But while we haven't looked formally into this (which is hard since its quite random) I don't think there are any clear common traits between different machines and the risk of hanging. Memory might be at play, the lab machine is likely to have much memory. 

As for the exec theory, when we don't replace the shell with a "debug shell" at LOG=trace, make is supposed to conserve fork/execs by doing simple shell commands internally. I would have assumed that mkdir was one of those. 

/Magnus

19 okt 2012 kl. 00:52 skrev David Holmes <david.holmes at oracle.com>:

> On 18/10/2012 10:48 PM, Magnus Ihse Bursie wrote:
>> On 2012-10-18 12:46, David Holmes wrote:
>>> So when this hangs can you see a mkdir process and the associated shell?
>> 
>> If it were that simple.. :( No. I can see a make process which has
>> entered the "Suspended" state. Both with and without the LOG=trace,
>> which is slightly weird.
> 
> But indicates to me that it is the process exec of the shell for the mkdir that is causing the hang. Can you test on different machines with vastly different available memory? (Of course it might just be a process management bug in cygwin.)
> 
> David
> 
>> Right now I'm running a test where I explicitely create the
>> images/j2re-image/bin directory before going into the Images.gmk file.
>> While no proof, this has been running for a couple of hours at least
>> now, which is good. (Normally it hangs after 1 or 2 iterations.) I can't
>> really explain why it should help, but then again I can't really explain
>> why it fails either.
>> 
>> /Magnus



More information about the build-infra-dev mailing list