[Python-checkins] [3.6] bpo-31234: Fix dangling thread in test_ftp/poplib (#3554)
Victor Stinner
webhook-mailer at python.org
Wed Sep 13 18:56:17 EDT 2017
https://github.com/python/cpython/commit/ef323e8d82b07d4e7e4303c360dc32d3de0b3147
commit: ef323e8d82b07d4e7e4303c360dc32d3de0b3147
branch: 3.6
author: Victor Stinner <victor.stinner at gmail.com>
committer: GitHub <noreply at github.com>
date: 2017年09月13日T15:56:14-07:00
summary:
[3.6] bpo-31234: Fix dangling thread in test_ftp/poplib (#3554)
* bpo-31234: Fix dangling thread in test_ftp/poplib (#3540)
Explicitly clear the server attribute in test_ftplib and test_poplib
to prevent dangling thread.
(cherry picked from commit d403a29c0055de6b03ed5ae7a5c564e1c95a5950)
* bpo-31234: Fix dangling thread in test_ftplib (#3544)
Clear also self.server_thread attribute in TestTimeouts.tearDown().
(cherry picked from commit b157ce1e58b03988ce4340a55d0b856125833cc5)
files:
M Lib/test/test_ftplib.py
M Lib/test/test_poplib.py
diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
index a561e9efa03..b593313db09 100644
--- a/Lib/test/test_ftplib.py
+++ b/Lib/test/test_ftplib.py
@@ -470,6 +470,9 @@ def setUp(self):
def tearDown(self):
self.client.close()
self.server.stop()
+ # Explicitly clear the attribute to prevent dangling thread
+ self.server = None
+ asyncore.close_all(ignore_all=True)
def check_data(self, received, expected):
self.assertEqual(len(received), len(expected))
@@ -799,6 +802,9 @@ def setUp(self):
def tearDown(self):
self.client.close()
self.server.stop()
+ # Explicitly clear the attribute to prevent dangling thread
+ self.server = None
+ asyncore.close_all(ignore_all=True)
def test_af(self):
self.assertEqual(self.client.af, socket.AF_INET6)
@@ -857,6 +863,9 @@ def setUp(self):
def tearDown(self):
self.client.close()
self.server.stop()
+ # Explicitly clear the attribute to prevent dangling thread
+ self.server = None
+ asyncore.close_all(ignore_all=True)
def test_control_connection(self):
self.assertNotIsInstance(self.client.sock, ssl.SSLSocket)
@@ -979,6 +988,8 @@ def setUp(self):
def tearDown(self):
ftplib.FTP.port = self.old_port
self.server_thread.join()
+ # Explicitly clear the attribute to prevent dangling thread
+ self.server_thread = None
def server(self):
# This method sets the evt 3 times:
diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py
index 6bc97397808..1269199423c 100644
--- a/Lib/test/test_poplib.py
+++ b/Lib/test/test_poplib.py
@@ -254,6 +254,8 @@ def setUp(self):
def tearDown(self):
self.client.close()
self.server.stop()
+ # Explicitly clear the attribute to prevent dangling thread
+ self.server = None
def test_getwelcome(self):
self.assertEqual(self.client.getwelcome(),
@@ -436,6 +438,8 @@ def tearDown(self):
# this exception
self.client.close()
self.server.stop()
+ # Explicitly clear the attribute to prevent dangling thread
+ self.server = None
def test_stls(self):
self.assertRaises(poplib.error_proto, self.client.stls)
@@ -461,7 +465,8 @@ def setUp(self):
def tearDown(self):
self.thread.join()
- del self.thread # Clear out any dangling Thread objects.
+ # Explicitly clear the attribute to prevent dangling thread
+ self.thread = None
def server(self, evt, serv):
serv.listen()
More information about the Python-checkins
mailing list