From d6f124c160a22744466b2ee6b63e4319cb2636ad Mon Sep 17 00:00:00 2001 From: Mikhailov Nikita <44605908+NikitaMikhailov@users.noreply.github.com> Date: Thu, 22 Oct 2026 09:59:54 +0300 Subject: [PATCH] Fix premature client socket cleanup in test_socket --- Lib/test/test_socket.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index e4b3d848923f8c..55cb6e6062f805 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -6103,6 +6103,8 @@ def clientSetUp(self): self.source_port = socket_helper.find_unused_port() def clientTearDown(self): + # TestCase cleanups run in the server thread and could close the + # socket while the client thread is still using it. if self.cli is not None: self.cli.close() self.cli = None @@ -6116,7 +6118,6 @@ def _justAccept(self): def _testFamily(self): self.cli = socket.create_connection((HOST, self.port), timeout=support.LOOPBACK_TIMEOUT) - self.addCleanup(self.cli.close) self.assertEqual(self.cli.family, 2) testSourceAddress = _justAccept @@ -6124,7 +6125,6 @@ def _testSourceAddress(self): self.cli = socket.create_connection((HOST, self.port), timeout=support.LOOPBACK_TIMEOUT, source_address=('', self.source_port)) - self.addCleanup(self.cli.close) self.assertEqual(self.cli.getsockname()[1], self.source_port) # The port number being used is sufficient to show that the bind() # call happened. @@ -6136,7 +6136,6 @@ def _testTimeoutDefault(self): socket.setdefaulttimeout(42) try: self.cli = socket.create_connection((HOST, self.port)) - self.addCleanup(self.cli.close) finally: socket.setdefaulttimeout(None) self.assertEqual(self.cli.gettimeout(), 42) @@ -6148,7 +6147,6 @@ def _testTimeoutNone(self): socket.setdefaulttimeout(30) try: self.cli = socket.create_connection((HOST, self.port), timeout=None) - self.addCleanup(self.cli.close) finally: socket.setdefaulttimeout(None) self.assertEqual(self.cli.gettimeout(), None) @@ -6161,7 +6159,6 @@ def _testTimeoutValueNamed(self): testTimeoutValueNonamed = _justAccept def _testTimeoutValueNonamed(self): self.cli = socket.create_connection((HOST, self.port), 30) - self.addCleanup(self.cli.close) self.assertEqual(self.cli.gettimeout(), 30)