Some update on Cygwin hangs
Kelly O'Hair
kelly.ohair at oracle.com
Fri Oct 19 11:13:29 PDT 2012
If we are not seeing this hang with MinGW/MSYS, perhaps we need to make a decision here to abandon CYGWIN?
-kto
On Oct 19, 2012, at 3:04 AM, Magnus Ihse Bursie wrote:
> 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