From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam08on2124.outbound.protection.outlook.com [40.107.101.124]) by sourceware.org (Postfix) with ESMTPS id E4A563858D39 for ; Mon, 15 Nov 2021 15:27:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E4A563858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=cornell.edu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cornell.edu ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dWND1dte7x2Ahr0Z2YhnlkN+FbdKeoyZgbPrrueUrXueLjrO8oSDpeBxAp5BCzRo7fKkzM0E6b7TaOdnP3m9F7OFpWhS1YPTpG5q5K00LUxo4Ssc2MJS5dRmHYUYc+0H2XoV3tnUiwIhoLRlbTFF8yjCyhvQloMr/YazqpMxyklHlDCMlBoU3GJCYH6rRqkU+8i4e8vlWzFRYO1awF9e0NbKuTAxewd4wTSVkU3lWe56T8HCe+XA/6lKCE6aNt1sF0Bf3XFa1fmt4vN2YQ0ULxPU6F+ieQcjmXXBBtT8aZHtM0bAbvHwyq4JZfxhdo0ombZ3QbUOHZs2Y2XCK8Ximw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ShK9lwjJ72Z09tUDTVw3bmXB6JwszMP8qg6TC4H/na4=; b=mYKY9UgawLUDPcohGy8D9K8xquAEd3bTALMnpHlNIhPTRe4bXGYCXxRpmTMDNfLIiIffEuNyDUQIsdlzA0dTVtkx1O8tni9Jmdyb2W0uiIrqRr7m/C8HrQB9JiWyagYWeRdDbH9CTYK9TQVAEJV/OW5frxLYe2l4+eWnReAOLGIklMRa0ZDh9mW0kJrWsHvfol/pwE2n8WMSZ3UaRJ0HsygQUy6bPpcN3qvs/i6gT97T0gyOTcS6UdZNrXv9Zp6ljZmMKAsidNpK7QRP2XhxQcb75ZIfVrCkEsi+yZrPcjS0SD1CihxrkhJYTz9dQ8ZlcaLtvuUqLYz+DJb80M/YRA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu; dkim=pass header.d=cornell.edu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cornell.edu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ShK9lwjJ72Z09tUDTVw3bmXB6JwszMP8qg6TC4H/na4=; b=HaZ1g/7t+rPDl2ZLX5U2vyHr4YC5OEzPdnAUcGmlH9aGZ6+nsMDNKikP5vWYAWjnuuNV6ttxonY5kSXD2KrZfx4uYtVtaV0NzVggHsVTI0wt/ww8PPxyr7+uhSLom+4SPsfsbK73QbaF+twQ3d6lxf6qlqSLANzzlv/c6HGRSh4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cornell.edu; Received: from BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) by BN7PR04MB5346.namprd04.prod.outlook.com (2603:10b6:408:b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov 2021 15:27:03 +0000 Received: from BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::88c4:79c5:1eb1:b969]) by BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::88c4:79c5:1eb1:b969%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021 15:27:03 +0000 Message-ID: Date: Mon, 15 Nov 2021 10:27:02 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0 Subject: Re: cygwin 3.3.x: another problem that may be related to pipes Content-Language: en-US To: cygwin-developers@cygwin.com References: <115203324.649908.1636923059546.ref@mail.yahoo.com> <115203324.649908.1636923059546@mail.yahoo.com> <20211115171811.844dce9cce2b4d13262d64f2@nifty.ne.jp> <1f94e84c-59de-bf2c-f244-e4672b981987@cornell.edu> <20211115233601.f0c9717ee00908505534c976@nifty.ne.jp> <20211116001137.7daf62c9f2815d5a92a56df0@nifty.ne.jp> From: Ken Brown In-Reply-To: <20211116001137.7daf62c9f2815d5a92a56df0@nifty.ne.jp> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: MN2PR15CA0037.namprd15.prod.outlook.com (2603:10b6:208:237::6) To BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) MIME-Version: 1.0 Received: from [IPV6:2603:7081:7e3f:3419:9143:86f9:2cbf:bd4f] (2603:7081:7e3f:3419:9143:86f9:2cbf:bd4f) by MN2PR15CA0037.namprd15.prod.outlook.com (2603:10b6:208:237::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend Transport; Mon, 15 Nov 2021 15:27:03 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2dc97820-26db-45e4-7527-08d9a84c604e X-MS-TrafficTypeDiagnostic: BN7PR04MB5346: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aIuzbSAmRFhdcy6DJUMxK/KMT7mQ72oZUdlDVjjF6bJkhioMzLJwGHV878jIKwFX/YgOs0CCOlPDJLMlsvKdS3xp8lHOe5gGZxVCANtv15tU4EJ2esUpadeVwJeqhiALpNtAH7f/lC/1nhDJkFut5Df9xsR6+0+E+FYuGfsXKcJJB6Uadp8lskU2CYZQyoJvalhJ/wOcKBAueca5eaI7vkzthzc13iL1QzCGRKzxIdooIKBw5TutaUQgI3Kp4k5RoppcAA8puq2AlUWVNKwwqOJBDGxuI3d7QQwtbsjbNkzpGHf+mvtyqHCrXInb/G+xq0EQA6dvjMhq45T7xr2wH9g8jDl20iQInzhhCrci5kM4bFcCq4cDDOBxWFaKXT/wZF/KinkRv5eCYfSzJ4keeQvtFo4jOMExT8yM7lmN44ecB6HP30KBba+uAvOMXsyOKWJxv+Da1yEz/5Yw8dg1hDZd4nnMeFMdfHqbxSW1+dPmXrfICoe/YC+kaCkV0jz/teDFKbx2UWxSkvyFun0fNM+HPZzSrYealmtbAuMytk/SafrAl9tRhHrluuyVZuIdy00gzCNYez5LKJH3st43PLIN8ZRZF8vhynGp9QL6IPcXivJzInDocKuFMWvzTy/H2MhuwX9gx/XzXEDc6JzskH4R2SaTlfXWnZb8X5q3Izwo6h+mUtTTD6B3zBztSOHp+Qao5c6/eUtvn3Ttan9iFUGhyNNYhx3rhtNTQ0nAPoUuWehmJC7MP2pZ7EO/KcbuitSmb/wux2Ltqahh3YK+O5H6qGc7aQ3oG3APC6g7XF99M+dyokNViPK2gJ9Aou6O X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN7PR04MB4388.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(31686004)(6486002)(31696002)(38100700002)(83380400001)(6916009)(966005)(316002)(186003)(53546011)(8936002)(786003)(36756003)(8676002)(5660300002)(66476007)(66556008)(66946007)(2906002)(75432002)(86362001)(2616005)(508600001)(45980500001)(43740500002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WDBoTjVYSVRxdnJNeTBObXBBZ3puM0JGbXVUcThoTmxIZWQ3VFRCcmdLdzNU?= =?utf-8?B?NEJkQ3F0MGtzbHEvcjYwL3BSNi96L0phc2EyNzNMUW0rVCtqTm9uWnhoQzVG?= =?utf-8?B?NURmMm1XdzJFNFNRZzZDa1UwVkdQZzUxU3dKeFJSTU9lSEVPdTZKS3FFV2M3?= =?utf-8?B?d0FleEZYWXVWTVlYMUpSWGczWFBHenN1T29EVVd2N0NVUk9ySFFxSzYyNmkz?= =?utf-8?B?K0l4N0Y3WjJJQjAxMFZyR3RVM3I5VXhlSUwxb0VEVjZnTzZvWFZpS0FjWnF3?= =?utf-8?B?eFJUQlNhWkphU0dtOVVSdFhVWDdvRFF1aU9KSmZpTTc4V3dseU9FTGZnS2VU?= =?utf-8?B?ZGZydlBqRE5BaktEVTR0WmZQRVIxYmpsWHRHdnIrdGUrN0FFWmxCcDJTNHR6?= =?utf-8?B?ZjQ5NVYrRkNMQzRvSzV4WHNvWEovczQvbDBvR3pHazV6MXZocWNySGxXWExO?= =?utf-8?B?VHhWOHNlY2hPSjQvenczcDhVTVR2TmNUVWNvMEJnVmdtOXczbmdiMTlFbGdi?= =?utf-8?B?QXM3UHZIODRPYWFmbVo3eDlNbmVXRmdKajg1NmN6Z0krUmw1NXFaQ2ZwbDVk?= =?utf-8?B?ZFNEa0hWdDJ6L0VXSnNOU1FjWXpobHRBN3JIOUxKbWxxcVp4NUI3bnVrVmNP?= =?utf-8?B?ZURYR0kvSHJlTUova0NSV2NINit1bmZkU0ZQRDBKczdBZFJCWUx0WkpPZisy?= =?utf-8?B?L2VHTVhWbm9qNWlRbzFrSEQ4cTMvZmxhYUJVaVRJc3NndGdxc3hHRmUxaTVm?= =?utf-8?B?WEhoM3U3T2xJckxEdUdrZVJCOUwwTnBBTjZVYnhUNWEyYlFaLy9hVFh2ZzZh?= =?utf-8?B?Q3BnWk90SjJoYzM3ZUdKYWJ0ZUVQeVRwMDF6Uzkyc0RSS1gyU3lzRG50dzBJ?= =?utf-8?B?YTU4VG9EVUljK2xTZHp1YXdyMzYxUnE2SDg0cGY1NkhzUlpMcm43UGtQYTFV?= =?utf-8?B?dElmR3MzaHdJZWh1dWhXY1d2dVBwT3hVREdpeFZ5Q1BiL0F2cDl6SHF3OUE2?= =?utf-8?B?L3pPNml0WE9WTFRlV2lvZ1Zoc2F2YmF4QXZrK1VvMW40N1JpcEVoeUVEbjY5?= =?utf-8?B?cVFDcGFKeUsvSUpqc240OElQZ2JnOXp0VU0rZjBEcTRMcGlOajJZdVhwNUQr?= =?utf-8?B?VjNOeEVhcXlEb1pJMC8vWU51b01PbzFFUWRtYU5PRWV5MXdoUXp1UkgrWDZq?= =?utf-8?B?b1ZPeW9mZFFaVGdhZ0FQcUt1eW44SDErSGZsbmc2aTFmaG5QQUF1NUFwNno1?= =?utf-8?B?NnZuc0YvUWxtcU8xZ1l1LzYyMmw0cnpjT2l2N3g2VzljRUljdkc0QVJMeDFl?= =?utf-8?B?czhiaHBqcmkyT284aTNhR0FEMnBKMEVIZ0QrTWtSMmlrZTRSS0s1eEt6OGRN?= =?utf-8?B?MEtvOVE3TFlvYWdURFVycDZwSUNhQmVRRkZ1SWpTTUVYVlRUOGwxeDVDUnBh?= =?utf-8?B?dURDSkd6MU5qRTZoejA5UVRzdm9PMzBUN1dybFVTTGtSek9RL2Z5R1BJaVp4?= =?utf-8?B?VXcxZUZlQ2ZnaEhZeC9NbGFQbWYyOW94alpyMm1XRXFqaXhjQ1NqbG11MklB?= =?utf-8?B?KzlFa3NOWEY3T1BCMzZUU1JoTERxb1VVWS9KVjZtck03UUppUjVONXc5cmlD?= =?utf-8?B?M1pPQlJHb3NLL2tkQkxLcTIzdlV5SVZmbkFCYTd5YStKbEFNN292UVZYek1M?= =?utf-8?B?a1VCTGhkQzZ5OHlRQlJNSXR5SGRMeGYwa0dqdU9vT3RnZzhiS2ZQR0xncHJP?= =?utf-8?B?elFwWW5zQUp0ZnZrMU5CQW1UVDZqalF2N0ZnY1hWR1FYbkJzbzd3bStCQ3Zy?= =?utf-8?B?SGExN2RoTzlmVy9HSnRDcE1VVThJaUgvZ0pBRG1HRE5XWFdrQmlZMlFMS0RS?= =?utf-8?B?eC92djZaZkNpSXdXSmVEUldmV2JMZFlhQmRWck1GdUVpSTl0SlM5YS9oZUFv?= =?utf-8?B?QVVWQlBpSVhFQ3RQSWI1Rk9XM09OYWFBMmNvTXpLS2RsaHpJMHFVZVhOVUtY?= =?utf-8?B?UlFIbTk2Y0Q0ZXNmWjNMUEdSU1lPOElLcmZUL1pDVlJXeklxSXFLbytDNkdX?= =?utf-8?B?akpINFJoNUN6TTN3VGs4WHcxUCtORnA3cEVOQTUzQk41QTdaT0ZWZ2huWjlH?= =?utf-8?B?TzlFVDZWY2k5TWhVaFltb1FYRnVmcHJ0TmtBejdEY1l5M2xGS2wzK1Njd041?= =?utf-8?B?L2IxVmtVSmI1eHNJL1pzWHdISTQzK05zWE5wR3lHd1JDajdnTDc5L2RhSlVa?= =?utf-8?Q?QbfuzDpg5y8nOTcBmqHegJ21v74TOvlXkKonXlSmbE=3D?= X-OriginatorOrg: cornell.edu X-MS-Exchange-CrossTenant-Network-Message-Id: 2dc97820-26db-45e4-7527-08d9a84c604e X-MS-Exchange-CrossTenant-AuthSource: BN7PR04MB4388.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 15:27:03.7600 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d7e4366-1b9b-45cf-8e79-b14b27df46e1 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: izxyKx5xhG7TxRfEnNTHv82eBGoh+0ePb+EWYPnlNeDWzfgRYH2zI5XFa0TdOdvHKmIB+B2jlRNVumpe60M0hg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR04MB5346 X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP 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-developers@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component developers mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Nov 2021 15:27:08 -0000 On 11/15/2021 10:11 AM, Takashi Yano wrote: > On Mon, 15 Nov 2021 23:36:01 +0900 > Takashi Yano wrote: >> On Mon, 15 Nov 2021 08:57:43 -0500 >> Ken Brown wrote: >>> On 11/15/2021 8:01 AM, Corinna Vinschen wrote: >>>> [Redirected to cygwin-developers] >>>> >>>> On Nov 15 17:18, Takashi Yano via Cygwin wrote: >>>>> raw_read()/raw_write() in fhandler_pipe.cc seems to need handling >>>>> of STATUS_PENDING in nonblocking mode. >>>>> >>>>> I also confirmed the following patch fixes the issue. However, I >>>>> am not very sure that this is the right thing. >>>>> >>>>> Corinna, Ken, what do you think? >>>> >>>> I'm puzzled. non-blocking pipes return STATUS_PENDING? What on earth >>>> is that supposed to mean on non-blocking (as opposed to asynchronous) >>>> pipes? The problem is that STATUS_PENDING theoretically requires >>>> to wait for... something, the pipe handle, perhaps, and then to check >>>> io.Status. >>> >>> I noticed last week when I was debugging the XEmacs problem that NtReadFile >>> occasionally returned STATUS_PENDING. I commented on it here: >>> >>> https://cygwin.com/pipermail/cygwin/2021-November/249827.html >>> >>> But I promptly forgot about it when that turned out not to be the problem for >>> that bug. My thought at the time was that we needed something like this: >>> >>> diff --git a/winsup/cygwin/fhandler_pipe.cc b/winsup/cygwin/fhandler_pipe.cc >>> index 9392a28c1..aaf09829d 100644 >>> --- a/winsup/cygwin/fhandler_pipe.cc >>> +++ b/winsup/cygwin/fhandler_pipe.cc >>> @@ -336,9 +336,10 @@ fhandler_pipe::raw_read (void *ptr, size_t& len) >>> break; >>> status = NtReadFile (get_handle (), evt, NULL, NULL, &io, ptr, >>> len1, NULL, NULL); >>> - if (evt && status == STATUS_PENDING) >>> + if (status == STATUS_PENDING) >>> { >>> - waitret = cygwait (evt, INFINITE, cw_cancel | cw_sig); >>> + /* Very short-lived in the non-blocking case. */ >>> + waitret = cygwait (evt ?: get_handle (), INFINITE, cw_cancel | cw_sig); >>> /* If io.Status is STATUS_CANCELLED after CancelIo, IO has actually >>> been cancelled and io.Information contains the number of bytes >>> processed so far. >>> >>> Takashi, does that fix the problem? >> >> IIUC, WaitForMultipleObject() cannot wait for pipe object. >> Only the following objects are allowed to be waited. >> >> Change notification >> Console input >> Event >> Memory resource notification >> Mutex >> Process >> Semaphore >> Thread >> Waitable timer >> >> Note that the problem reported is not in raw_read(), but in raw_write(). >> >> If you mean applying above patch for raw_write(), it proberbly fixes the >> issue as well. >> >> This is because ... >> >> If you pass the pipe handle to WFMO, it imediately returns WAIT_OBJECT_0, >> so your patch will work almost same with my patch. > > I might be wrong. Your code certainly waits for something happening. > I am not sure why it works... FWIW, I got the idea for this from the following code in fhandler_socket_unix::listen_pipe: io.Status = STATUS_PENDING; if (!is_nonblocking () && !(evt = create_event ())) return -1; status = NtFsControlFile (get_handle (), evt, NULL, NULL, &io, FSCTL_PIPE_LISTEN, NULL, 0, NULL, 0); if (status == STATUS_PENDING) { waitret = cygwait (evt ?: get_handle (), cw_infinite, cw_cancel | cw_sig_eintr); if (waitret == WAIT_OBJECT_0) status = io.Status; } Ken