Randomly hang when compiling Cygwin on Cygwin on Wine
Corinna Vinschen
corinna-cygwin@cygwin.com
Mon Nov 2 14:30:00 GMT 2015
On Nov 2 03:08, Qian Hong wrote:
> Update:
>
> I have another case of hang:
>
> ?(1)-+-bash(1419290)
> |-bash(1419318)---make(1423770)---sh(1423783)---sh(1423838)
> |-mintty(1249269)---bash(1249277)
> |-mintty(47)---bash(55)---bash(1132827)---make(1139169)---sh(1139182)---make(1139234)---sh(1206695)---sh(1206721)---make(1206764)---sh(1206770)---make(1206783)---perl(1249042)
> |-mintty(596773)---bash(596790)---pstree(1423865)
> `-mintty(1417449)---bash(1417457)
>
>
> $ ps aux | grep 1249042
> 1249042 1206783 1132827 1249050 pty0 197608 Oct 31 /usr/bin/perl
> 1249077 1249042 1132827 1249092 pty0 197608 Oct 31
> /usr/bin/nm <defunct>
>
>
>
> Here the process perl(1249042) is waiting for a pipe, while its child
> process nm(1249077) is in the status "defunct". nm(1249077) appears in
> output of `ps aux`, but doesn't appear in output of `pstree -p -l`.
>
> Is there any case, where a child process can exit unexpected, but the
> parent process still incorrectly wait for the child process forever?
I don't answer this question conclusively before consulting my lawyer.
It *might* be possible. See fhandler_base_overlapped::close(),
fhandler_base_overlapped::check_later() and flush_async_io(), all three
in fhandler.cc.
No, I'm not happy with using overlapped IO for pipes. I'd prefer to use
nonblocking pipes instead, but the most required resource to fix this,
which is least available, is time :(
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20151102/7009e56b/attachment.sig>
More information about the Cygwin
mailing list