The feature to bind multiple socket listeners (servers) to the same port on the same host was introduced in Linux kernel 3.9 (https://lwn.net/Articles/542629) and is not supported yet on LXz.
This gap was found when running Python's regression test suite. Multiple test failed with the error below:
ERROR: testTimeoutConnect (test.test_ftplib.TestTimeouts)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/share/python/test/test_ftplib.py", line 671, in setUp
self.port = test_support.bind_port(self.sock)
File "/usr/share/python/test/test_support.py", line 308, in bind_port
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1:
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 92] Protocol not available
The unit test code is attached to the ticket. Refer to OS-4014#icft=OS-4014 for instructions on running the Python regression test suite.
Former user commented on 2015-07-17T14:47:12.000-0400:
Added Zendesk ticket id 183359 as the issue is also reported by a customer.
Former user commented on 2015-07-20T20:20:58.000-0400:
Raised the priority of this defect as more use cases are now affected by the socket feature gaps.
Former user commented on 2015-12-07T15:58:09.000-0500:
illumos-joyent commit 3100843 (branch master, by Patrick Mooney)
OS-4018#icft=OS-4018 lxbrand support TCP SO_REUSEPORT
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Cody Mello <cody.mello@joyent.com>