[3.6] bpo-31234: Fix dangling thread in test_ftp/poplib (#3554) · python/cpython@ef323e8 (original) (raw)

Original file line number Diff line number Diff line change
@@ -470,6 +470,9 @@ def setUp(self):
470 470 def tearDown(self):
471 471 self.client.close()
472 472 self.server.stop()
473 +# Explicitly clear the attribute to prevent dangling thread
474 +self.server = None
475 +asyncore.close_all(ignore_all=True)
473 476
474 477 def check_data(self, received, expected):
475 478 self.assertEqual(len(received), len(expected))
@@ -799,6 +802,9 @@ def setUp(self):
799 802 def tearDown(self):
800 803 self.client.close()
801 804 self.server.stop()
805 +# Explicitly clear the attribute to prevent dangling thread
806 +self.server = None
807 +asyncore.close_all(ignore_all=True)
802 808
803 809 def test_af(self):
804 810 self.assertEqual(self.client.af, socket.AF_INET6)
@@ -857,6 +863,9 @@ def setUp(self):
857 863 def tearDown(self):
858 864 self.client.close()
859 865 self.server.stop()
866 +# Explicitly clear the attribute to prevent dangling thread
867 +self.server = None
868 +asyncore.close_all(ignore_all=True)
860 869
861 870 def test_control_connection(self):
862 871 self.assertNotIsInstance(self.client.sock, ssl.SSLSocket)
@@ -979,6 +988,8 @@ def setUp(self):
979 988 def tearDown(self):
980 989 ftplib.FTP.port = self.old_port
981 990 self.server_thread.join()
991 +# Explicitly clear the attribute to prevent dangling thread
992 +self.server_thread = None
982 993
983 994 def server(self):
984 995 # This method sets the evt 3 times: