From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp33.i.mail.ru (smtp33.i.mail.ru [94.100.177.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 42988469719 for ; Thu, 12 Mar 2020 11:39:43 +0300 (MSK) From: "Timur Safin" References: <045901d5f6e7$bc2d47a0$3487d6e0$@tarantool.org> <1e1a11dc-cce3-603d-69f0-3dabf371d59a@tarantool.org> <06c001d5f791$df13e800$9d3bb800$@tarantool.org> In-Reply-To: Date: Thu, 12 Mar 2020 11:39:41 +0300 Message-ID: <08e101d5f849$c605d630$52118290$@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Content-Language: ru Subject: Re: [Tarantool-patches] [PATCH] Work-around WSL assert when SO_LINGER is set on unix sockets List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: 'Vladislav Shpilevoy' , tarantool-patches@dev.tarantool.org, 'Kirill Yukhin' : -----Original Message----- : From: Vladislav Shpilevoy : Subject: Re: [PATCH] Work-around WSL assert when SO_LINGER is set on unix : sockets : : > : > Here I need a help, because evidence is not apparent. The last commit to : > evio.c was not marked with subsystem : > : > tsafin@M1BOOK6319:~/tarantool$ git log --oneline src/lib/core/evio.c : > 835d22aa0 (HEAD -> tsafin/gh-4659-wsl-no-linger-assert, master) : > Work-around WSL assert when SO_LINGER is set on unix sockets : > 3f5f59bb5 Move 'core' and 'uuid' libs to src/lib : > : > Should it be `core` or `coio`? : : I think neither of them. It should be 'evio'. : Ok, will use it for the next incarnation of reworked patch. : : If there is no issue, then you can omit issue link. But it certainly : is not right to take some random other issue number into the branch : name. Just omit the issue number everywhere. : : tsafin/wsl-no-linger-assert : : instead of : : tsafin/gh-4659-wsl-no-linger-assert : Ok, will use such naming schema : > Good question! Never had enough time and motivation to proof this : assumption. : > Now you've asked I'll look into linux kernel tcp implementation. Stay : ktuned. : : The question wasn't really about kernel sources. Rather about : documentation or standards, on which you could rely, when assume, : that SO_LINGER works for some socket types, and does not for : others. : : I don't think we can omit SO_LINGER in case it is not guaranteed : that it is no-op for unix sockets. : : However, we can omit it for WSL specifically, like Cyrill proposed. : Using cmake to add a new macro, and do nothing when macro says we : compile for WSL. Yup, dropped this patch already, and will pass down to sources something like WSL1_WORKAROUND defined. It should work in the nearest time-frame. WSL2 will go out of Insider Rings this April/May, so this workaround should be very short-living. WSL2 is using full Linux kernel (patched by Azure guys) so it will have the same tcp socket implementation, and work-around will be disabled then. Take care, Timur