[Tarantool-patches] [PATCH] Work-around WSL assert when SO_LINGER is set on unix sockets

Timur Safin tsafin at tarantool.org
Thu Mar 12 11:39:41 MSK 2020



: -----Original Message-----
: From: Vladislav Shpilevoy <v.shpilevoy at tarantool.org>
: 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 at 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



More information about the Tarantool-patches mailing list