Skip to content

Commit dadeb0c

Browse files
committed
Merge branch 'bpo-37193/test' into fix-issue-37193
2 parents d99817e + 7d1f367 commit dadeb0c

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

Lib/test/test_socketserver.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,23 @@ def shutdown_request(self, request):
497497
self.assertEqual(server.shutdown_called, 1)
498498
server.server_close()
499499

500+
def test_threads_reaped(self):
501+
"""
502+
In #37193, users reported a memory leak
503+
due to the saving of every request thread. Ensure that the
504+
threads are cleaned up after the requests complete.
505+
"""
506+
class MyServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
507+
pass
508+
509+
server = MyServer((HOST, 0), socketserver.StreamRequestHandler)
510+
for n in range(10):
511+
with socket.create_connection(server.server_address):
512+
server.handle_request()
513+
[thread.join() for thread in server._threads]
514+
self.assertEqual(len(server._threads), 0)
515+
server.server_close()
516+
500517

501518
if __name__ == "__main__":
502519
unittest.main()

0 commit comments

Comments
 (0)