delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2022/04/15/14:09:28

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 28F613858C2C
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: Fri, 15 Apr 2022 21:09:05 +0300
From: Alexey Izbyshev <izbyshev AT ispras DOT ru>
To: cygwin AT cygwin DOT com
Subject: Deadlock when pressing Ctrl-C at startup of a native console
application
User-Agent: Roundcube Webmail/1.4.4
Message-ID: <355a1f23bf39b0670110a840075224a2@ispras.ru>
X-Sender: izbyshev AT ispras DOT ru
X-Spam-Status: No, score=0.0 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
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com>

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019