DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 57S3aYwU817928
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 57S3aYwU817928
Authentication-Results: delorie.com;
	dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=ms64KRab
X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5E94D38515CB
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1756352191;
	bh=yK+lwcocMnGZIStVgyadmDwkfl+JTe5LkQoiHS7rRnI=;
	h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:
	 List-Help:List-Subscribe:From:Reply-To:From;
	b=ms64KRab+hNlvzAwaGI8olgOtEFj7oaRpPOdDDunnKO+2Xtg2n3FWkl3qvOAia0Ok
	 aonNb/lXBQWVlC1++iQj39spksTW1s4w2TvtGIjP48JQSDqFYsv6vrJisEGZKuwQCB
	 3uJQSc4rfXKTOZBTgvVZugbQSc/J0vDZy+KxeADE=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 12B5C3858C60
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 12B5C3858C60
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1756352162; cv=none;
 b=ZBrEtNcq+JZ56L/2DC7D8GdsBqPZFMPwKkp0R4HFUZQLUxTcoN8wU1VlIZkmbCpwa8uiqr0hMz2Ew9NmU3sCefE3UfXFEmrm0TVwg1EQe5rfY4eJqZW/KGcoSwXe4rQ3UG4z9Dp/qb6GVpAp+oYf4d9drk1//SrhmSBjus4iOyo=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
 t=1756352162; c=relaxed/simple;
 bh=jPk+4H0IMCt4vOgm9mJuTocaj0c+7c2GVK++eII1sF8=;
 h=DKIM-Signature:Message-ID:Date:MIME-Version:From:To:Subject;
 b=nJZWsoCgZnxRo9Se/79Ob7p/OW+Jy/rCv6hOf7yP7zBX7uGraEsMse//3gNbYky6XOf+tcYqP3nyGyprv9iKrMEfcNHdT7yZiwE4JBlfCr/yUiMbNUrOoH4fMyPLxBTtZSWT7IDJRyKsQGoW8Z/0x49Mr2Z2l9v672BxJAIM/w0=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 12B5C3858C60
X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6
Message-ID: <1b1e8e7f-0ee9-41b8-931f-202af6704c4d@towo.net>
Date: Thu, 28 Aug 2025 05:36:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: cygwin@cygwin.com
Subject: pty read loop losing data in wsl context
Autocrypt: addr=towo@towo.net; keydata=
 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 kQ==
X-Provags-ID: V03:K1:TSaIDm2h9IUGCd+y9dx8r3oMzA98pGSWf52Qcg4oFzMg6B/rByB
 9dLvD9WxdWsVnELIjE4jXQManogCYO6gKj1651hKMSymIV35bVsjgOJztWi9Yv5o48jp24t
 FBH9Gv90YykEO8rOr7JJEi0fcVGTuhaswi+1wDRb8vU8EA2M4dYu+yO0cuJ14Rxkp5LRju+
 kOpAVRp5T6jtteRqK7y8g==
UI-OutboundReport: notjunk:1;M01:P0:bS6pbJKQ3ME=;TwPQZ+8UTXoaN97a5KDG2Vp3GUq
 HtHoA2DAPmXGijGoZ7Q3pPuI5EOkYFhN9xR6uilwhrufEiuJg8FoU52aJYBhud1ChdYj9L1D8
 GDLbDooKctDoiTNg+fP7eRqJkHSyPYq0Ss8fhex7BjqUOuEhqGUf9rbvLZcdmOUR4MVpdxtII
 KmmrbI7I2KUgiZzrAhDjGnICgunyDMttWOLYyyi3r0HSP10SrhzDXzNCtZa+t1ZUrdfvrTfoc
 D4v6rXM7BxrvbM35CCQLns307Ql7yMgJ4edZHn5ic7Ink8+BC1Fa09+lUnVZHPodC5qxnON7A
 Y/7fhzV1xpPm/ryxlxSA+cK2junpuz9kcGyax0CqXker3VUY5TjR+QQCFMMkWkLjjw3yzVire
 drXbOcN8wqy/e7jHcYHeKUrcWyB21Lp1dwYuH0o0RWC59RmYMDz3DmRqK9IJaic2F7WLIbaE4
 j6TOFlCKqyN/dh9mYDCCXiUqPE1OfLphxt/9eeqWXpWON5mFmiK06KaiXgt4XOElIvtwZEB8c
 EWryKrnHCIiiLOUMAB5rR0W4LVLzZCxT3SZ9lTJw+CnSx9Lqm7gEnzP9TsSgLSY3ECewx+UR3
 DyQ4i+pyt6AtMetAaQjFRPn6qxaNGOnea8hUMh5xOr9ileyLdmB8h5xFqQyZDJRoK/bxjRvqL
 k6ft0UwtvU8Spzi+hJET6bCO3ekwc74I8HY7CXHustGvjNpO9waNKVQbmzMGAVXTRacRCGjv6
 +M9rBv4EhEQUDWsn005wJICMdR84gc6xwuaQcHy41RPARivJBmQ9/A2dxecCrIoUMnSNIemIy
 YlrbJW1TKNyc9wfvQ4VgcEq2F2p/asINpNUVD7FAIPhLKimYyh0F8vzYxBN8appsjk6QMu7uz
 Pik7ODGlbiGLYimzT27j8wG67UBkuS11aDCidFTATz9HfFkkJfojRyz8IDoWIq1C3IiqbyVLR
 M4eksnMRjePtM1lRMAlEKXyiH71JpjO4Ed7omyrC9UR3PZog/geqkJld1EfnP7qPkeVlLcWuP
 tD63ZkjknjfMIkVOLK7i9wqKlHY1ZQ0Peh4oGL0lRLIClNx8oAG1oxd7qQlwIgGUwtS0kSMPz
 Wsv9dxL2Su4pqkH/EmHCMnM+gn5JahdUcnFjL8yX5z0PhBiyRp7T17rzS8ebO01ebf2EjiUgp
 2m7IPOwLvnuMMY2D5QXs9lwthhIWULvnSM1t6sx5JCLyCepMiLrunI/yEW+BAy9X13Rpruinz
 OWxeDcAGAwYvkr1ivv2JgvbhoyDAAa7Jhy/Ia5H1EDSb1L1dGtABR9ZbCF/LjLz7HKYqwzZ6U
 xwYt60KgfNGIoYjSI4I4L20xrFIyLtYdlmLs1Pw+jWaUfyBfjh+rHPTjlRWDEd62x5xqyh6g7
 3u4ljgLLl0csfZ7QCQdsX7N+Ojk0/f79Rw+NN4Enjy55ZehhOOLQ2xO0Swx1Jpytrgyy2Lhdf
 dbookp0aGcczVVtBfrhOUheMn9I9n9KrjFxvNcvXXeHl2Fg1yyT4s18jAl72FMymMLpytWnHe
 UCup0jTP801IGKSmomLbQS7r2AvxdTE9gZ0waqz1RyczpcpX5MBXTDQc4Cau8NqpMscUbIVdN
 jJCDlL08/wDpuEvIQUdijeQpt8s5beG
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
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>
From: Thomas Wolff via Cygwin <cygwin@cygwin.com>
Reply-To: Thomas Wolff <towo@towo.net>
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie.com@cygwin.com>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 57S3aYwU817928

When running wsl.exe from mintty, typing ^O corrupts terminal display.
This was reported in
https://github.com/mintty/mintty/issues/1332
and I later reported it towards Windows conpty
https://github.com/microsoft/terminal/issues/19285
but conpty is unlikely the cause, as testing suggests.

Test case, in mintty:
wsl
ls -1 /bin
^O # enter the control character
ls -1 /bin # repeat

The same happens in xterm and some other terminals, but not all.

Mintty uses a loop to read terminal output from the pty and fill its buffer:
         do {
           int ret = read(pty_fd, buf + len, sizeof buf - len);
           if (ret > 0)
             len += ret;
           else
             break;
         } while (len < sizeof buf);
Tracing the loop shows that, while running wsl, after having entered ^O, 
every subsequent read returns -1.
Taking out the loop (by patching it, or currently by using option Baud 
with some high value) fixes the problem.
I suspect some very obscure interworking problem between wsl/conpty and 
cygwin pty handling. As noted in the latter issue, it does not happen 
with terminals running remotely, so the suspicion goes more to the 
cygwin side.
What’s the role of ^O in this puzzle? Does it trigger something in cygwin?
Is there anything peculiar that would cause pty chunks not be recognised 
and then skipped in such a loop?
Thomas

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

