Issue #14574: Ignore socket errors raised when flushing a connection on close.
diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst
index c34b486..d225392 100644
--- a/Doc/library/socketserver.rst
+++ b/Doc/library/socketserver.rst
@@ -306,8 +306,8 @@
.. method:: RequestHandler.finish()
Called after the :meth:`handle` method to perform any clean-up actions
- required. The default implementation does nothing. If :meth:`setup` or
- :meth:`handle` raise an exception, this function will not be called.
+ required. The default implementation does nothing. If :meth:`setup`
+ raises an exception, this function will not be called.
.. method:: RequestHandler.handle()
diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py
index 1594321..26611b7 100644
--- a/Lib/SocketServer.py
+++ b/Lib/SocketServer.py
@@ -701,7 +701,12 @@
def finish(self):
if not self.wfile.closed:
- self.wfile.flush()
+ try:
+ self.wfile.flush()
+ except socket.error:
+ # An final socket error may have occurred here, such as
+ # the local error ECONNABORTED.
+ pass
self.wfile.close()
self.rfile.close()