X-Recipient: archive-cygwin AT delorie DOT com X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BE3233858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=ispras.ru Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ispras.ru MIME-Version: 1.0 Date: Mon, 18 Apr 2022 18:07:16 +0300 From: Alexey Izbyshev To: Takashi Yano Subject: Re: Deadlock when pressing Ctrl-C at startup of a native console application In-Reply-To: <20220418214823.a01ed743ceb15d3708ee3fd9@nifty.ne.jp> References: <355a1f23bf39b0670110a840075224a2 AT ispras DOT ru> <20220416181650 DOT cdb31ec9c75189724bf2f498 AT nifty DOT ne DOT jp> <20220418214823 DOT a01ed743ceb15d3708ee3fd9 AT nifty DOT ne DOT jp> User-Agent: Roundcube Webmail/1.4.4 Message-ID: X-Sender: izbyshev AT ispras DOT ru X-Spam-Status: No, score=-0.6 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 AT cygwin DOT 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: , Cc: cygwin AT cygwin DOT com Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com Sender: "Cygwin" On 2022-04-18 15:48, Takashi Yano wrote: > On Sat, 16 Apr 2022 18:16:50 +0900 > Takashi Yano wrote: >> On Fri, 15 Apr 2022 21:09:05 +0300 >> Alexey Izbyshev wrote: >> > Hi, >> > >> > I've discovered that pressing Ctrl-C in a Cygwin ssh session running the >> > following command can cause a deadlock: >> > >> > $ while python -c ''; do :; done >> > >> > The exact native application doesn't matter here, e.g. "ping -n 1 >> > localhost >/dev/null" instead of "python -c ''" also "works". >> > >> > The deadlock is most easily triggered when CPU is fully loaded. It takes >> > no more than 20 tries on my machine to hit it (and when I first saw it, >> > it was on the first try). >> > >> > When the deadlock is triggered, there are conhost.exe and >> > cygwin-console-helper.exe processes, but there is no python. >> > >> > The exact process tree varies depending on Cygwin version. With the >> > vanilla 3.3.4 (the root is bash spawned by sshd): >> > >> > bash---bash-+-conhost.exe >> > `-cygwin-console-helper.exe >> > >> > With 20220301 snapshot >> > (https://cygwin.com/snapshots/x86/cygwin1-20220301.dll.xz), I get one of >> > the two following trees with an extra conhost.exe process: >> > >> > bash---bash-+-conhost.exe >> > |-conhost.exe >> > `-cygwin-console-helper.exe >> > >> > or >> > >> > bash---bash-+-conhost.exe >> > | `-cygwin-console-helper.exe >> > `-conhost.exe >> > >> > I was testing with 32-bit Cygwin on x64 Windows 10 21H2. >> >> Thanks for the report. I could reproduce the issue. >> I also found the current git master does not have this issue, >> while cygwin-3_3-branch does. >> >> Now I am identifying which patch solved the issue. >> One is obviously: >> https://cygwin.com/pipermail/cygwin-patches/2022q2/011870.html >> however, this was applied also for cygwin-3_3-branch. Therefore, >> another patch also should affect this issue. > > I identified the cause and applied a workaround patch. > The countermeasure version is available at: > https://tyan0.yr32.net/cygwin/x86/test/cygwin1-20220418.dll.xz > https://tyan0.yr32.net/cygwin/x86_64/test/cygwin1-20220418.dll.xz > > Could you please test? I've tested the 32-bit version, and Ctrl-C in my original test works as expected (no deadlock or other issues after multiple tries). Thank you for the fix! Alexey -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple