From c181f8df82d3a948ad138cd063a071b524638ee2 Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Sat, 10 Dec 2016 10:43:01 +0900 Subject: [PATCH] Put a try/except around socket.shutdown --- server/protocol.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server/protocol.py b/server/protocol.py index dd6c855..b1be03d 100644 --- a/server/protocol.py +++ b/server/protocol.py @@ -514,14 +514,19 @@ class ServerManager(util.LoggedClass): for session in self.sessions: if session.is_closing(): if session.stop <= shutdown_cutoff and session.socket: - # Should trigger a call to connection_lost very soon - session.socket.shutdown(socket.SHUT_RDWR) + try: + # Force shut down - a call to connection_lost + # should come soon after + session.socket.shutdown(socket.SHUT_RDWR) + except socket.error: + pass else: if session.last_recv < stale_cutoff: self.close_session(session) stale.append(session.id_) if stale: self.logger.info('closing stale connections {}'.format(stale)) + # Clear out empty groups for key in [k for k, v in self.groups.items() if not v]: del self.groups[key]