From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2101.outbound.protection.outlook.com [40.107.244.101]) by sourceware.org (Postfix) with ESMTPS id A4E25383F408 for ; Fri, 21 May 2021 21:54:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A4E25383F408 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=TrtVhAm9piyoijQrthmvNEiJzSQ/wPgtmQ24VZ5NFwCveLIXJ2OlUBDOaW2sHKj38FRV7IYLXuwc7XV2IMIRVosXKYS4jmZmMdr3aCmhoLJo74R1dL1RRMfvAIqPE0B3Vcg/g++9YLVirHoT5bLNp+lLShVxL5GuI82OnwJIn1fQv5OnH1eeGinnP6pa57BDnPyj6xIsgERCPMaG8k8uSTYnxzeTk0uiv7zV2+guSC6ykQmM1hfmxPMh22h2Fsc7a7aby8MQZvuUCeElHAXfdJ4YbDdUF366ojJ2RsKif6vzEOuyDshhq6zYnxv6Gt4mv5Nk3wBi+fOvQYgIcaUsrw== 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=SFGpvh5v6vim1sbl9boKhjq6HI7LOVFYppkM9Xmwtns=; b=D3VS7rPWT6QL9HS74zEMh93FYKOqX1H6hQw30i4bSKMofM3CS5+UINxZOeJxCcgW1QrFyj1qm4pgMmyz2gJd86ur8jemw2AmTpGcUMpIyVKMgObA1udyLvoG/F3U6o7MYYEq0HwEuHITUWqerG5dIWxwKVxWFOPOfqrJbDaIpSd9mECn2EQBH23OsS+rDYye/QOo+if6XGDcDMKbkThiGmyO3nOISwBcmCaYk1qfF4i7XItoU8StgWkcED16Rcpe3ahXsjX/1XSZX8ZeVcrGrkJ9XYS8IScGKfnzZgKNpkmGmNrOlhrYqRTKDzHTKYWZl5jeWwDzIc+DlK8MxVI0Jw== 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=SFGpvh5v6vim1sbl9boKhjq6HI7LOVFYppkM9Xmwtns=; b=Fzrf83Lagq2tXU/g0TwRYG6xASNmZYUSTdH7mPfw+uS3w95Ci1rL5cIiyqAnJB0SV/CONZ9K/NNbChk+FUUBQ0vBguFdVtlR5g1Y79STypcEOPN9Succyvvtr/+ifOfGnklijuadlovq5+jDSeaDpDSfth8O9WH6uLdjUeki9gA= 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 BN3PR04MB2178.namprd04.prod.outlook.com (2a01:111:e400:7bbe::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Fri, 21 May 2021 21:54:40 +0000 Received: from BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::d452:659e:43f2:812b]) by BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::d452:659e:43f2:812b%7]) with mapi id 15.20.4129.033; Fri, 21 May 2021 21:54:39 +0000 Subject: Re: The unreliability of AF_UNIX datagram sockets To: cygwin-developers@cygwin.com References: <58da34ac-f2b6-d8b2-e872-834cfcb1ab51@cornell.edu> <16e13907-8702-2ca2-a28e-f37f4f7f880c@cornell.edu> From: Ken Brown Message-ID: Date: Fri, 21 May 2021 17:54:37 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [2603:7081:7e41:6a00:1499:4269:48f4:2341] X-ClientProxiedBy: CH2PR20CA0014.namprd20.prod.outlook.com (2603:10b6:610:58::24) To BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2603:7081:7e41:6a00:1499:4269:48f4:2341] (2603:7081:7e41:6a00:1499:4269:48f4:2341) by CH2PR20CA0014.namprd20.prod.outlook.com (2603:10b6:610:58::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.26 via Frontend Transport; Fri, 21 May 2021 21:54:39 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e9b14720-5211-487b-f4e2-08d91ca30874 X-MS-TrafficTypeDiagnostic: BN3PR04MB2178: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ohkYCCZnMcFCaWK4rT/WLkUhxt5LmVSpIJNqaqe/C4YSNwEt6icL0zIA8B0uoONBLSL57iFASKuwitGsG7STX5MVoQBq2PUh3AzUOhUTxeoS5KELAgrWJRtKYXg5sr7UguaAgv+mupNGcg34QnhMVnap0iMA66TEj9Un8NRxDHqhy3Qj6RpXvg4vqrjgJtrlWSB0Rj6WxeThciJ9fEX3ZAmDs5Aa5Ja1osHdDzL+j2GjenA5CvZzS9k+qjFfxRsag7J92kt3+bjeF3Qt0iALzeV+FawSFPBNggidm0+0Dmvalzl4yq5syHA4GobX/07tMid+cx13lCNeoUiUYrEJXq2LRPd/JDfZXmyh5OvysXSPigHCvOb8hF0u9zNpagKdB1F1DSzsOBPISgKFC7GBAZ2lQoRZhdqHeVFKiyZOq95nmOYH8PKUtEBrf+gwswxkuURnfSpgGye90JmZDfrodggX+1QDF+XfBdfn8RKnDlFKDDVau0KUBs/KPOPhCVQc7wCaXXb8VDJoDn9z3STrebFgciZSJ09p7xqHMxGrAQtrTGGnVMglBgKOAlV03ql+G3r2keAzOgCPuY+fhoSXBDRAhzKo9u1lGylQi2QvfKHoSecRu+3SmgA2KDQME1wx2lGw6JAwqBnhVSTtTuMbvCkihKBCRxhlMmGRsc5NBOiuAj19sMq7ofgtM6MVpu0Z 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)(346002)(396003)(366004)(39860400002)(376002)(136003)(6486002)(2906002)(2616005)(31696002)(8936002)(5660300002)(478600001)(186003)(16526019)(38100700002)(83380400001)(86362001)(53546011)(8676002)(75432002)(6916009)(31686004)(36756003)(316002)(52116002)(786003)(66556008)(66946007)(66476007)(45980500001)(43740500002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?Windows-1252?Q?jgWMrl5BN0BDvQp6WDnicM2YRpYZFFhXvbtQHi0IqU3ATCqTgNElZeZs?= =?Windows-1252?Q?HbeU9XuEN47OvRskcJeEBDOeGaWbSvWSN8pfH6DOK1vJ512FGOSJmq0n?= =?Windows-1252?Q?sCw4hdINFFi3dua8WoZgEr41RdEBghjM4gmVi4j9qMPbLo4YtUb0M5RV?= =?Windows-1252?Q?lvPZJmeZFMgqK4fbKe3ucpVrV9frM9Fp9ipbXL4w/0J9vhAQv/Kt2RdA?= =?Windows-1252?Q?wV6RO+Q1p3hVAK9mTdhJ8raa8XgdAohIlj7eva97ke3sy6t5TFYmmaAx?= =?Windows-1252?Q?xgEOETkmzcEp8yb3KsTk23cUUT7wQ2buwDvprq1cAubvebyfTjuCi4qa?= =?Windows-1252?Q?d+7RQJwQcfWaeOVEl123j8EqzWsBuVxp5OBOHDtMZ6+3xNNr2qSZXN+B?= =?Windows-1252?Q?yTtfx6A9WW2jo1awRUt4/rKS+GC+gvyvcj6MQ+TxnrSbn7W9O8Nuy844?= =?Windows-1252?Q?NuF5/gWYbRZPg66rQS2jXMpTM2p4pQLVSRTh+9XI92DVXZ7T3+KC7APH?= =?Windows-1252?Q?4NMtwtiFtsaIZ+IoNUSx8zeNgu+jZy620lzVMrgRxHTpg76kWbLvR32M?= =?Windows-1252?Q?qkb3hzZc4+H/Sr9wwemOuL4CG0374EFsEFdeh3qTGGlnWcLEHBfvG3Tp?= =?Windows-1252?Q?/qSDWRXojtThEwB+fV9euNxIFLGqN3ecg7qmYlp5jaiL3ytSNtKGptDo?= =?Windows-1252?Q?w+D5KnBel4S/o/i80vG8TQkPhyYZVUqqM4Cs6V1jjbar0Coy4zb1zRKV?= =?Windows-1252?Q?Wkoa1xXWNtg13j73Ict/AecBj/SZg3xdcG+qKWGt7ALMDnujlsQQVZ0G?= =?Windows-1252?Q?JfvMnbc7koHqH4yFkNZrD0HlnWSludDziQzkaeFJAc4QxQ+zhOtLtDtr?= =?Windows-1252?Q?n+MYwosijFGFwYHPNIQCnGtnEg+59LlZJSN0JOT+/pWqbcSqDiWGqtq2?= =?Windows-1252?Q?1s5lIF1NDEZqjLA0pnh2J7Mo/rh9avcl5huYH/be69rHFMEf4RRtAW4n?= =?Windows-1252?Q?XQuw6i35nOrMMjYE9L5TUB5xPoCRcmLBCU7RZDxQEJyi6W53RMQEOngc?= =?Windows-1252?Q?xMVS/ny+4AWFYBbX6Gahv/vzy5ULNy/7bnZveGXnph17UZO2nuRu9xx9?= =?Windows-1252?Q?7DVipkn9w6us8IDV2XzffCjQyMLHCey8Rg8ULNA9GeT9ZbnX7ssXWIEE?= =?Windows-1252?Q?WHiKl2EhEuX1bYBWbIulGOSBj35KFBXPi6LjEK1jSmCCS4igDYq9RvKg?= =?Windows-1252?Q?mW0xISV4Cy6wAhpsOqOZVk8RnxJao/d74GEmRCibKVWpW2HGmH0sClzY?= =?Windows-1252?Q?FD/q66upEOKJKyFbNIl26QdSEqovDwJzyvbPAZigM5buiDBtBr8fsE/M?= =?Windows-1252?Q?PU1dpUDAzJl5wYJsSIXC/9193zN6uq6EturkZMsDmx8WdSO7dQJbOrOp?= =?Windows-1252?Q?FWBYhsVf6xMR0iNxEdct1cICJq98wmcVd1+1fyiWnYJj+Qvoah4lc8yq?= =?Windows-1252?Q?sDJpSFrB?= X-OriginatorOrg: cornell.edu X-MS-Exchange-CrossTenant-Network-Message-Id: e9b14720-5211-487b-f4e2-08d91ca30874 X-MS-Exchange-CrossTenant-AuthSource: BN7PR04MB4388.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 21:54:39.8784 (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: +xvkL2zewh/hqTLGG2Pzz/9upllVUTVQDmf/DC11KAeOKBdBre3CSe9DTWv3EDdaTSQfeD86MuOApNtM6Ye52g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR04MB2178 X-Spam-Status: No, score=-3.1 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: Fri, 21 May 2021 21:54:44 -0000 On 5/20/2021 3:25 PM, Corinna Vinschen wrote: > On May 20 09:46, Ken Brown wrote: >> On 4/29/2021 7:05 AM, Corinna Vinschen wrote: >>> I think it should be possible to switch to STREAM sockets to emulate >>> DGRAM semantics. Our advantage is that this is all local. For all >>> practical purposes there's no chance data gets really lost. Windows has >>> an almost indefinite send buffer. >>> >>> If you look at the STREAM as a kind of tunneling layer for getting DGRAM >>> messages over the (local) line, the DGRAM content could simply be >>> encapsulated in a tunnel packet or frame, basically the same way the >>> new, boring AF_UNIX code does it. A DGRAM message encapsulated in a >>> STREAM message always has a header which at least contains the length of >>> the actual DGRAM message. So when the peer reads from the socket, it >>> always only reads the header until it's complete. Then it knows how >>> much payload is expected and then it reads until the payload has been >>> received. >> >> I think I'd like to go ahead and try to do this DGRAM emulation in the >> current (AF_LOCAL) code. It shouldn't be too hard, and it would solve the >> unreliability problem while we look for a better way to handle AF_UNIX >> sockets. > > Yeah, sounds like the way to go for now. Unfortunately, I ran into a problem. Trying to emulate DGRAM sockets in STREAM sockets breaks the DGRAM send/recv semantics. For example, WSARecvFrom won't return the source address. I hope I'm just missing something, but I don't see a way around this. Ken