Re: [Bugme-new] [Bug 32832] New: shutdown(2) does not fully shut down socket any more
flat view
From: Simon Horman <horms@verge.net.au>
Date: 2011-04-14 05:54:44
On Wed, Apr 13, 2011 at 04:55:27AM +0200, Eric Dumazet wrote:
Le mardi 12 avril 2011 à 16:17 -0700, David Miller a écrit :quoted
From: Andrew Morton <akpm@linux-foundation.org> Date: Tue, 12 Apr 2011 16:15:56 -0700quoted
(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).Stephen Hemminger forwarded this to the list last week, and Eric Dumazet is actively working on a fix.I worked on it this week end to discover FreeBSD 8.1 would not allow several CLOSE sockets bound to same port even with REUSEADDR. So haproxy claim is a bit wrong (its trick doesnt work on FreeBSD), and used an undocumented linux feature. I feel this case is a call for SO_REUSEPORT, eventually. http://www.unixguide.net/network/socketfaq/4.11.shtml SO_REUSEADDR allows your server to bind to an address which is in a TIME_WAIT state. It does not allow more than one server to bind to the same address. It was mentioned that use of this flag can create a security risk because another server can bind to a the same port, by binding to a specific address as opposed to INADDR_ANY. The SO_REUSEPORT flag allows multiple processes to bind to the same address provided all of them use the SO_REUSEPORT option. Since SO_REUSEPORT is not a 'stable fix', I suggest we revert the patch, and eventually work on SO_REUSEPORT on net-next-2.6 What do you think ?
Not entirely related, but FWIW I think that SO_REUSEPORT would be rather useful for haproxy. I've been working on allowing haproxy to be reconfigured without dropping or reusing connections. I have done this by re-using open sockets. But it would have been rather a lot easier to achieve using SO_REUSEPORT - assuming that I understand SO_REUSEPORT correctly.