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