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 BE3233858D28 for ; Mon, 18 Apr 2022 15:12:47 +0000 (GMT) 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 Received: from mail.ispras.ru (unknown [83.149.199.84]) by mail.ispras.ru (Postfix) with ESMTPSA id EC94F40755C1; Mon, 18 Apr 2022 15:07:16 +0000 (UTC) MIME-Version: 1.0 Date: Mon, 18 Apr 2022 18:07:16 +0300 From: Alexey Izbyshev To: Takashi Yano Cc: cygwin@cygwin.com Subject: Re: Deadlock when pressing Ctrl-C at startup of a native console application In-Reply-To: <20220418214823.a01ed743ceb15d3708ee3fd9@nifty.ne.jp> References: <355a1f23bf39b0670110a840075224a2@ispras.ru> <20220416181650.cdb31ec9c75189724bf2f498@nifty.ne.jp> <20220418214823.a01ed743ceb15d3708ee3fd9@nifty.ne.jp> User-Agent: Roundcube Webmail/1.4.4 Message-ID: X-Sender: izbyshev@ispras.ru Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit 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@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: Mon, 18 Apr 2022 15:12:49 -0000 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