BBlack has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/71625


Change subject: minor tweak for socket reuse
......................................................................

minor tweak for socket reuse

Change-Id: I0bf459360899a1df3c476a81fdf67dda19f8aa5e
---
M src/purger.c
1 file changed, 6 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/software/varnish/vhtcpd 
refs/changes/25/71625/1

diff --git a/src/purger.c b/src/purger.c
index c479baf..4763e3d 100644
--- a/src/purger.c
+++ b/src/purger.c
@@ -356,6 +356,12 @@
     if(fcntl(s->fd, F_SETFL, (fcntl(s->fd, F_GETFL, 0)) | O_NONBLOCK) == -1)
         dmn_log_fatal("Failed to set O_NONBLOCK on TCP socket: %s", 
dmn_logf_errno());
 
+    // Atypical with no intent to bind(), but may help with racing other 
threads for
+    //  ephemeral port allocation in Linux leading to random socket errors, 
supposedly?
+    int opt_one = 1;
+    if(setsockopt(s->fd, SOL_SOCKET, SO_REUSEADDR, &opt_one, sizeof(int)))
+        dmn_log_warn("Failed to set SO_REUSEADDR on TCP socket: %s", 
dmn_logf_errno());
+
     // Initiate a connect() attempt.  In theory this always returns 
-1/EINPROGRESS for
     //   a nonblocking socket, but it's possible it succeeds immediately for 
localhost...
     if(connect(s->fd, &s->daddr.sa, s->daddr.len) == -1) {

-- 
To view, visit https://gerrit.wikimedia.org/r/71625
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0bf459360899a1df3c476a81fdf67dda19f8aa5e
Gerrit-PatchSet: 1
Gerrit-Project: operations/software/varnish/vhtcpd
Gerrit-Branch: master
Gerrit-Owner: BBlack <bbl...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to