summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2019-08-15 22:54:43 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-08-16 10:05:32 +0100
commit0b38a37e59eebd33d3b42359ed79c5f3e36e01b9 (patch)
tree267d25e2bde8835cf95cb2cbf9d5936c8ddc8626
parent2cb6a75b5ad54fb4224a41a65a4f2bcc902f5b94 (diff)
downloadopenembedded-core-contrib-0b38a37e59eebd33d3b42359ed79c5f3e36e01b9.tar.gz
bitbake: hashserv: Ensure we don't accumulate sockets in TIME_WAIT state
This can cause a huge backlog of closing sockets on the server and in our case we don't really want/need the protection TCP is trying to give us so work around it. (Bitbake rev: 7bc79fdf60519231da7c0c7b5b6143ce090ed830) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/hashserv/__init__.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/bitbake/lib/hashserv/__init__.py b/bitbake/lib/hashserv/__init__.py
index 55966e748a..eb03c32213 100644
--- a/bitbake/lib/hashserv/__init__.py
+++ b/bitbake/lib/hashserv/__init__.py
@@ -14,6 +14,8 @@ import socketserver
import queue
import threading
import signal
+import socket
+import struct
from datetime import datetime
logger = logging.getLogger('hashserv')
@@ -157,6 +159,10 @@ class ThreadedHTTPServer(HTTPServer):
self.server_close()
os._exit(0)
+ def server_bind(self):
+ HTTPServer.server_bind(self)
+ self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack('ii', 1, 0))
+
def process_request_thread(self):
while not self.quit:
try: