]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
bitbake: hashserv: Ensure we don't accumulate sockets in TIME_WAIT state
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 15 Aug 2019 21:54:43 +0000 (22:54 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 16 Aug 2019 09:05:32 +0000 (10:05 +0100)
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>
bitbake/lib/hashserv/__init__.py

index 55966e748ae5f2d8b4c0255cd0c419faf3135601..eb03c32213dc139805cb4c9acdcd9a49fbfbcb9d 100644 (file)
@@ -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: