Deadlock of the process tree when running make

Alexey Izbyshev izbyshev@ispras.ru
Sat Apr 9 16:07:08 GMT 2022


On 2022-04-09 14:46, Takashi Yano wrote:
> On Sat, 09 Apr 2022 14:02:38 +0300
> Alexey Izbyshev wrote:
>> 
>> Missed the line in the link above:
>> https://cygwin.com/git?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/fhandler_tty.cc;h=7bef6958c106c5e78cc90e014081022fd3a205bc;hb=cygwin-3_3_4-release#l1199
> 
> Thanks for finding that. It would be very helpfull if you could
> find another process which holds pcon_mutex and where it is stopping.

ProcessHacker showed that the owner of the pcon mutex is bash.exe with 
(Windows) PID 6276. However, Cygwin ps doesn't list such a process. Its 
parent, however, has a Cygwin PID 37961 and is in the hanging tree:

make(32651)-+-make(32656)-+-bash(37296)---find(38057)
             |             |-bash(37632)---find(38061)
             |             |-bash(37415)---find(38064)
             |             |-bash(37852)---find(38062)
             |             |-bash(37896)---find(38063)
             |             `-bash(37961)---javac(38032)
             
`-make(32657)-+-bash(38025)---bash(38054)---bash(38055)---readlink(38056)
                           
`-bash(37722)---bash(37825)---bash(38058)-+-grep(38060)
                                                                     
`-grep(38059)

Since javac(38032) is a zombie, my guess is that missing bash.exe (win 
6276) is an intermediate process that Cygwin created when bash(37961) 
forked to run javac.

bash.exe (win 6276) has two threads. The first one is blocked at 
ClosePseudoConsole() (which according to stack trace eventually calls 
NtWaitForSingleObject()) [1] and the second one is at [2].

[1] 
https://cygwin.com/git?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/fhandler_tty.cc;h=7bef6958c106c5e78cc90e014081022fd3a205bc;hb=cygwin-3_3_4-release#l3615

[2] 
https://cygwin.com/git?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/sigproc.cc;h=02d875a7fc947d628ca933690ed43ef03d767d53;hb=cygwin-3_3_4-release#l1359

Hope this is helpful,
Alexey


More information about the Cygwin mailing list