From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2098.outbound.protection.outlook.com [40.107.220.98]) by sourceware.org (Postfix) with ESMTPS id 875ED3857818 for ; Tue, 6 Apr 2021 17:37:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 875ED3857818 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=cornell.edu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kbrown@cornell.edu ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ChuW5fF5k0eqlj5LMROZY4s1GIuUgTtn6qAzGwOmR/uufljs956q3iE55z22fQP4NMlqT49KBcD2lIGAsJtldOUwIaYO4fi36rImflpr25eipEuQohgWnVah+bTqicxCptghV71aUgZMBsk5yLkhLA8aJvtTc+HmY0lXLBAIfGdAXOI71+vGISPwWcGktELItWXJYlrij0yzuQ+1M6ReAuewQe8dB2jRFseuHOk91FiQJv+6PE8Sz6A0OSwSfOdDYgUwzi1jy+A0b+abtnwq4ZGlY7a47BxUCUKXjwhGMSvFvPaqVRmupULB34CYgQd3y96FdsD6FIddNh3YjYLQ0A== 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-SenderADCheck; bh=AM+FT18Wm0//lcHiSmE+WpPOZdQ+oHIdyduPmLQH5NY=; b=bMEnV/nQ3GxymARTieNSGHs6P+IOasHtJO4ggbm8jmudY7utqKZMYzgeVGPNmDYcTw23crerO/RHUmp9b8023Ovs86ljJroVV31xRRULFYwazggtdScaPcX+Ad0kElzpKSg1RS7OAPvQfluY+QE+1qOLaN6JxP+ccNP8x19j/jebU+YT9hlwpQ7YLXUhxBAh9iBIYm6ZQ2hjqe28tw4U0UJgzRlAwHWC44XZTSu8UKit3GXYLxVEo02gteNiRKF4vuVrwZGkUmrp2/iwASlShJ7IAVvL72/NcQ7IUGjVOGJW40nqYxZARKMgR2XBGktG+s/jgN9aDpfzYNDpZjsmSA== 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=AM+FT18Wm0//lcHiSmE+WpPOZdQ+oHIdyduPmLQH5NY=; b=IEF99jP8JDcxlpsX8pWHOuCXqyDsiOaEGSt8FjelLS0377MFsYyRVuVmxBA4OEtW8KaDVw1/DFTp+Cu5r9V4tDcJNkRn+RZpDDpynSFttgrYAlQo7pecad2qtl9l5FrSrV+lxpnYbia+/0eeWyXZwNw5mzoZhrUSwIyIs9ZLUDw= Authentication-Results: cygwin.com; dkim=none (message not signed) header.d=none;cygwin.com; dmarc=none action=none header.from=cornell.edu; Received: from BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) by BN6PR04MB1029.namprd04.prod.outlook.com (2603:10b6:405:3c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.32; Tue, 6 Apr 2021 17:37:15 +0000 Received: from BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::59f8:fcc4:f07e:9a89]) by BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::59f8:fcc4:f07e:9a89%4]) with mapi id 15.20.3999.033; Tue, 6 Apr 2021 17:37:15 +0000 Subject: Re: Questions about select for sockets To: cygwin-developers@cygwin.com References: <6b50ec89-5c02-c49f-ad85-e581589d21d3@cornell.edu> From: Ken Brown Message-ID: <6306d8f3-cf05-07bb-e944-05aed69266f3@cornell.edu> Date: Tue, 6 Apr 2021 13:37:13 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.9.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [24.194.34.31] X-ClientProxiedBy: MN2PR06CA0026.namprd06.prod.outlook.com (2603:10b6:208:23d::31) To BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.0.17] (24.194.34.31) by MN2PR06CA0026.namprd06.prod.outlook.com (2603:10b6:208:23d::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.16 via Frontend Transport; Tue, 6 Apr 2021 17:37:15 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 57399f17-429f-4ab6-99bd-08d8f9229e41 X-MS-TrafficTypeDiagnostic: BN6PR04MB1029: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:330; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vykBlercL474qbRpwP2KOBmiSyEUtfTf7VqqofSeoB1iT0CVo4JckBYBd2OfO7XwznmMkI6USEwXpuMs24vILZ4BS/vshWV2ozr/TELDVLRKpCNQMNgyp48GmXI2Y/LowTGBNTNrokHkUtr2Rl9yXrlkVV/ZXWBUpcszfz+Ts5U0NnsWppwYgKgHRupamHLD2GOx6aTMaVhcp9mIaY8hGrMFiZ3ZmKB7VQCPhZZUbe9cJa6uXVgZq7mHkKbIz9wiEUpvrZEq0TWyfFie6PG8PRbBOv99QgHIhRNBJK3vEr1ube2BmTGjS4iD6Nrk+e68z20/KGt/JWwUIO6FiHMhcYdCX5Quti+xyN6tfqJDr5bXNyx+S47hma7akhppIiMPQPvz0Y3NK44sxDjbguf6YmW6zCcdsKkXcRob0XBwFNO4QV76hnh2bcpxJ7DVOmMp0v6UsgFO+TSjHcQKBw715YTA3vCKkYoB+7WnRkED6qENoGjEYW1jP8zI05d69kYVY03CCJ9N0LRoWLNl8u8kmeHIwlXkERQw3ZDFkXApCrG+LRLERE8ojns6HKRxruLEZWn8WySNxqNlv+dwibz/vxiLbNRp5NMf5elbg7jorJjFoDL2N2IOpcw8YnAZP4epUREnLmk3+ogd+rvwQ1YHqwB3gRoBQvVUsAOPdT029NjAY9mCiiCaDuV/x45Oa3ymuJdSjaswbsri1lswKdBJlb6lFQQk9NckkcRhodw51Zopx014CWKTqeTpyjPxPXZW 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)(136003)(376002)(396003)(346002)(366004)(39860400002)(186003)(16576012)(83380400001)(8676002)(8936002)(75432002)(2616005)(956004)(6916009)(31696002)(53546011)(16526019)(6486002)(38100700001)(316002)(786003)(36756003)(478600001)(66946007)(31686004)(52116002)(2906002)(5660300002)(86362001)(66556008)(26005)(66476007)(38350700001)(45980500001)(43740500002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?Windows-1252?Q?+9FsHpQL0AhDoHjCVMkNQ3byNNPeRNLraIDjelBMaEKJIz9lz+5/fA7V?= =?Windows-1252?Q?dlFzG13jnonsfGJxlNV0Yrj7C7g+tDWhsNXox27aGXBsawtrE4rIHqCn?= =?Windows-1252?Q?DzIyEY8oEOdiQjCwfaPtuKf+s/JyXj/lVUd1/2S4kwT7EOocoyUojMBd?= =?Windows-1252?Q?KsrBnGUyamoY4oLmuTzZzok9M5LDetUvMxNJjlr0pDZjIty3KY0sIQLy?= =?Windows-1252?Q?Oldq0QqlEc3I7DlD7f76rF5+ucC0ZtMfKVF9iZMUPOez5d07ETfKluFE?= =?Windows-1252?Q?K5BSZMtHIKHR5l5kZhvpIfN8PsQ+7/IUmNXlyecomdn9wMMnEESqHIP7?= =?Windows-1252?Q?Y6eA4ijNou6iKk2KwSaz7yGBaZuh0akGwHuzDbYCD1PW0vnukJHH0sxl?= =?Windows-1252?Q?vpQa195IC5gMV75iSKxLkNm/F7reuh/GcskPQX25ZHkIssZ7ygsX5v++?= =?Windows-1252?Q?4KgEAXLoHZBYHpdoAON8EtQ+LpxZdq0pO4OQM3cvYJXeQbsjthflQypi?= =?Windows-1252?Q?8GEFzT8niFHCMevwnxYMoimDuEi5QWkCt6Hb9ISKRez+q36/chLT7gEo?= =?Windows-1252?Q?Hoqlumim+b9Y4A3pnr+FGSCp0ifjlph42f0tQEvCPhHERjLJMGmGCulU?= =?Windows-1252?Q?25AyQAerBCIWkUO22ev5X9feu6h1fX72iFAQ9sBZrOtoDyItMFFoAMdH?= =?Windows-1252?Q?Yc2klAiA7tlaKlPX7oa3CdtzpMZPchaciHDnvGSAAbDxeQCt5SrPbGeQ?= =?Windows-1252?Q?BUoeBxafTfhKdi9RooxU6DqYDBIbyhuXl3/fXoT70S1CmH0MCAYPQ9/Q?= =?Windows-1252?Q?SOjF4uyYGQ4fe5mUvuhInB6FIXOf6pJahtSV4ZG85YxkdcPOJdzPE5Om?= =?Windows-1252?Q?viiv8wOqkAwE25h6Ny+LW8UnB+DKk+7G4czogsy8a/PZaqu457E/hlXY?= =?Windows-1252?Q?pQyJlPJZhS8g/KebeDZgb2H5MrX0lVtOe0rhL2HCFiUQWen76R0j0+Ih?= =?Windows-1252?Q?2B7SENi4TtfzAT79Gi3BI26XTS28L3aNCDT0ECTQtUtSHxL9Gfa5pTmR?= =?Windows-1252?Q?9UumTe8ME9kijYk5pucdPg6aPPAxscah9bRnltI1N/3UzjzE9juSihUC?= =?Windows-1252?Q?+MJ2kFuRu1IfAu22Aq4k7O3sVbR5Zl3ieqZTPMGhXqwC1xNgJscTEsUq?= =?Windows-1252?Q?CB5bhsA9XfQRcfw1S2a3KftCjndRfLqGICskJpKc5HonSFrin18EumTA?= =?Windows-1252?Q?kBzznz4AH1MvL0oiSi7+1T9LtBcziSd1eFBa1d9qSAnU3aTrucNlHTrS?= =?Windows-1252?Q?Hwtx72SArFtNYy6+nlgBawdVNEuN35+9qCPw2vFFODNCJ1U4dQqOhaVp?= =?Windows-1252?Q?/v5aaWvzcZmvh9IS/KaDj+9QeQByvZe2gTrTRUGcSnWyDKNlecT6P8MI?= X-OriginatorOrg: cornell.edu X-MS-Exchange-CrossTenant-Network-Message-Id: 57399f17-429f-4ab6-99bd-08d8f9229e41 X-MS-Exchange-CrossTenant-AuthSource: BN7PR04MB4388.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2021 17:37:15.4267 (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: Nt3pNlqo3Vg+UJL9HKAejIub+x36ff9N+74zP3Z/NlXT52YXB0Kzr1+9sHivMSv7wa5ip19P4lUK1oByW5nrng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR04MB1029 X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, 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.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Tue, 06 Apr 2021 17:37:19 -0000 On 4/6/2021 12:28 PM, Corinna Vinschen wrote: > On Apr 6 11:44, Ken Brown wrote: >> On 4/6/2021 10:33 AM, Corinna Vinschen wrote: >>> On Apr 6 16:20, Corinna Vinschen wrote: >>>> On Apr 3 14:16, Ken Brown via Cygwin-developers wrote: >>>>> 4. Why do we set >>>>> >>>>> except_ready = saw_shutdown_write () || saw_shutdown_read () ? >>>>> >>>>> I can't find any documentation that says that a shutdown should be >>>>> considered an exceptional condition. On the other hand, POSIX does say, >>>>> "Other circumstances under which a socket may be considered to have an >>>>> exceptional condition pending are protocol-specific and >>>>> implementation-defined." So maybe there's some Cygwin-specific reason for >>>>> doing this? >>>> >>>> Nope, this is old (and wrong) cruft. Neither Steven's book nor the >>>> Linux man pages, nor testing on Linux imply that ready for exception >>>> is used to indicate anything other than out-of-band data. This should >>>> be fixed. >>> >>> We may also have to change the saw_shutdown_read/saw_shutdown_write >>> handling. I checked this on Linux and what happens is: >>> >>> After shutdown (fd, SHUT_RD), the socket is ready for reading and writing >> >> This seems surprising to me. Is it really the shutdown that caused it to be >> ready for writing in your test, or was it ready for writing anyway (e.g., >> because the relevant buffer was empty)? > > I guess so, too. How to make sure the socket isn't ready for writing > without going to great lengths? I guess you could have a subprocess write to the socket in a loop, so that its buffer will quickly fill up and a further write will block. Ken