New submission from Kristján Valur Jónsson <krist...@ccpgames.com>:
When an error occurs in a StreamRequestHandler, its wfile and rfile members are not closed. This causes the underlaying socket to stay alive and and it is therefore not closed, even when the SocketServer closes it in server.close_request(). This means that a client will not know that there is no one listening on the other end. This is due to incorrect error handling semantics in BaseRequestHandler. This patch fixes the error handling in BaseRequestHandler, ensuring that request.finish() is called when request.setup() has completed. I also add an explicit socket.shutdown() in TCPServer.close_request() to make sure that at least a half-close occurs even in the face of socket reference leaks. ---------- components: Library (Lib) files: socketserver.patch keywords: needs review, patch, patch messages: 89152 nosy: krisvale severity: normal status: open title: TCP Sockets not closed by TCPServer and StreamRequestHandler type: behavior versions: Python 2.7 Added file: http://bugs.python.org/file14245/socketserver.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue6248> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com