[Lldb-commits] [PATCH] D21088: Don't use SO_REUSEADDR for *client* sockets

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Tue Jun 7 11:16:55 PDT 2016


labath created this revision.
labath added a reviewer: clayborg.
labath added a subscriber: lldb-commits.
Herald added subscribers: danalbert, tberghammer.

In the case of client sockets, we are not binding to a specific port, so we
should be able to just request a new one. Disregarding refactors, this code
has been here since the initial LLDB checkin, so I was unable to figure out
whether it was added as a fix for a specific problem, or just for symmetry
with server sockets, but I see no side-effect from removing it now. I was
still able to create 10000 connections within a couple of seconds, so I think
it's unlikely we will exhaust the port space (previously, I would get an
error after a couple thousand connections).

This fixes an occasional issue with connecting to the android debug bridge
deamon on OSX when running the test suite, which would occasionaly fail with
EADDRINUSE. My best guess is that this was happening because two processes
were assigned the same client port number, and then things blew up because
they were both trying to connect to the same ADB server port. I have not
observed this issue happening on Linux or Windows.

http://reviews.llvm.org/D21088

Files:
  source/Host/common/TCPSocket.cpp

Index: source/Host/common/TCPSocket.cpp
===================================================================
--- source/Host/common/TCPSocket.cpp
+++ source/Host/common/TCPSocket.cpp
@@ -112,9 +112,6 @@
     if (!DecodeHostAndPort (name, host_str, port_str, port, &error))
         return error;
 
-    // Enable local address reuse
-    SetOptionReuseAddress();
-
     struct sockaddr_in sa;
     ::memset (&sa, 0, sizeof (sa));
     sa.sin_family = kDomain;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21088.59916.patch
Type: text/x-patch
Size: 459 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160607/e5bfd47b/attachment-0001.bin>


More information about the lldb-commits mailing list