From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.ispras.ru (mail.ispras.ru [83.149.199.84]) by sourceware.org (Postfix) with ESMTPS id 3B6683858C83 for ; Fri, 8 Apr 2022 08:42:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3B6683858C83 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=ispras.ru Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ispras.ru Received: from mail.ispras.ru (unknown [83.149.199.84]) by mail.ispras.ru (Postfix) with ESMTPSA id 5CB5640D403D; Fri, 8 Apr 2022 08:42:29 +0000 (UTC) MIME-Version: 1.0 Date: Fri, 08 Apr 2022 11:42:29 +0300 From: Alexey Izbyshev To: cygwin@cygwin.com Subject: Re: Deadlock of the process tree when running make In-Reply-To: <23e627a3-39a7-e22f-6372-65d50f1a63d6@SystematicSw.ab.ca> References: <9388316255ada0e0fcb2d849cce5a894@ispras.ru> <23e627a3-39a7-e22f-6372-65d50f1a63d6@SystematicSw.ab.ca> User-Agent: Roundcube Webmail/1.4.4 Message-ID: <5c00c0cd21bac6b4564fe5d2721520f1@ispras.ru> X-Sender: izbyshev@ispras.ru Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-0.1 required=5.0 tests=BAYES_00, DOS_RCVD_IP_TWICE_B, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: cygwin@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Apr 2022 08:42:37 -0000 On 2022-04-08 02:54, Brian Inglis wrote: > I've seen infinite loops with readlink in build scripts under Cygwin. > Seeing that readlink in a process tree makes me suspicious that > something in a shell script is looping because two paths never match > or always match under Cygwin. > Often there is one constant path and a varying path which is subjected > to readlink in a loop. > Under Cygwin, you may have to pass the first path through readlink and > compare that resulting path against the varying value. Thanks, but I don't think I have such loops in this project. Also, other processes hang in independent make jobs, so a hang around readlink wouldn't explain that. There is also an additional detail that I forgot to mention: in the stack trace of all leaf processes as displayed by ProcessHacker, it seems that the executable entry point is not reached yet. The only non-Windows-DLL location is in cygwin1.dll, so I suspect that all processes hang at early initialization in Cygwin's DLL entry point. Thanks, Alexey