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 AT delorie DOT 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 AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT 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 AT cygwin DOT com Subject: pty read loop losing data in wsl context Autocrypt: addr=towo AT towo DOT 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 AT cygwin DOT com X-Mailman-Version: 2.1.30 List-Id: General Cygwin discussions and problem reports List-Archive: List-Post: List-Help: List-Subscribe: , From: Thomas Wolff via Cygwin Reply-To: Thomas Wolff Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Cygwin" 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