Fix log streamer closing

For some reason, it can (rarely) happen that the socket used by the log
streamer is already closed when we are in server_close(). Since
our intent is to close it anyway, do not raise an exception on an
already closed socket.

Change-Id: I5828f6351341bac5e55ae2211e8a3b3f94032899
This commit is contained in:
David Shrewsbury
2017-06-01 15:55:47 -04:00
parent 20088e1632
commit 27a7c0c537

View File

@@ -172,8 +172,14 @@ class CustomForkingTCPServer(ss.ForkingTCPServer):
'''
Overridden from base class to shutdown the socket immediately.
'''
self.socket.shutdown(socket.SHUT_RD)
self.socket.close()
try:
self.socket.shutdown(socket.SHUT_RD)
self.socket.close()
except socket.error as e:
# If it's already closed, don't error.
if e.errno == socket.EBADF:
return
raise
class LogStreamer(object):