X-Recipient: archive-cygwin@delorie.com
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 15C6B3858D28
Authentication-Results: sourceware.org;
 dmarc=fail (p=none dis=none) header.from=nifty.ne.jp
Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=nifty.ne.jp
DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-04.nifty.com 23ICmJPa020214
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.ne.jp;
 s=dec2015msa; t=1650286100;
 bh=nmIFEqsEILyKPeddRX9n5w1fQ2POujKDzP0B6YxHwHc=;
 h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
 b=a7rQ2OI1wOLdKSwL04s0mTXV9oGvhNPcvHstZDjyRaqkdslBjW5lszrXUAG4wGtHu
 Ln7YNA90/1rlRWN/trCk5rC78S16VWkRoc0bPb2ZnbR1PT2Ry0WH64o/eJwaljUbJt
 QSWso7h6uNV3cL6V+piafMVXnpk6pzStYTje+874UMT86lyVGpr8f2jczfwRksw+/0
 LLbqrv2hFh/+gqwBkQDeFL4JcSP2kNlZxfLDsXWDOKMcs8A7m071d0Xyde2w16uAyd
 4ZVXkZ22IGkpJoUHRHKea6NPY0FFXk2lcABDPe7Irbb1UkNeMdfBOi+NJDLAmrlvVv
 gzQqdkPQJB+9Q==
X-Nifty-SrcIP: [119.150.44.95]
Date: Mon, 18 Apr 2022 21:48:23 +0900
From: Takashi Yano <takashi.yano@nifty.ne.jp>
To: cygwin@cygwin.com
Subject: Re: Deadlock when pressing Ctrl-C at startup of a native console
 application
Message-Id: <20220418214823.a01ed743ceb15d3708ee3fd9@nifty.ne.jp>
In-Reply-To: <20220416181650.cdb31ec9c75189724bf2f498@nifty.ne.jp>
References: <355a1f23bf39b0670110a840075224a2@ispras.ru>
 <20220416181650.cdb31ec9c75189724bf2f498@nifty.ne.jp>
X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32)
Mime-Version: 1.0
X-Spam-Status: No, score=-6.2 required=5.0 tests=BAYES_00, DKIM_SIGNED,
 DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_DNSWL_NONE,
 SPF_HELO_NONE, SPF_PASS, TXREP,
 T_SCC_BODY_TEXT_LINE autolearn=ham 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 <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
Cc: Alexey Izbyshev <izbyshev@ispras.ru>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cygwin-bounces+archive-cygwin=delorie.com@cygwin.com
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie.com@cygwin.com>

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?

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>

-- 
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
