summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Galindo <Pablogsal@gmail.com>2019-02-09 17:35:05 (GMT)
committerGitHub <noreply@github.com>2019-02-09 17:35:05 (GMT)
commit7b2a37b728b37e7da6d3f48c24c93a9dd0daa0fc (patch)
tree0b773a5b2d3578b253153240c4ad3a9639faaf81
parent613f729e5ddd201765a9a04efc1c76decb3a19c4 (diff)
downloadcpython-7b2a37b728b37e7da6d3f48c24c93a9dd0daa0fc.zip
cpython-7b2a37b728b37e7da6d3f48c24c93a9dd0daa0fc.tar.gz
cpython-7b2a37b728b37e7da6d3f48c24c93a9dd0daa0fc.tar.bz2
Make sure the BaseManager in test_multiprocessing is cleaned up correctly (GH-11653)
-rw-r--r--Lib/test/_test_multiprocessing.py35
1 files changed, 20 insertions, 15 deletions
diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
index d3cb195..bc1072d 100644
--- a/Lib/test/_test_multiprocessing.py
+++ b/Lib/test/_test_multiprocessing.py
@@ -2817,6 +2817,7 @@ class _TestRemoteManager(BaseTestCase):
address=(test.support.HOST, 0), authkey=authkey, serializer=SERIALIZER
)
manager.start()
+ self.addCleanup(manager.shutdown)
p = self.Process(target=self._putter, args=(manager.address, authkey))
p.daemon = True
@@ -2836,7 +2837,6 @@ class _TestRemoteManager(BaseTestCase):
# Make queue finalizer run before the server is stopped
del queue
- manager.shutdown()
class _TestManagerRestart(BaseTestCase):
@@ -2852,25 +2852,29 @@ class _TestManagerRestart(BaseTestCase):
authkey = os.urandom(32)
manager = QueueManager(
address=(test.support.HOST, 0), authkey=authkey, serializer=SERIALIZER)
- srvr = manager.get_server()
- addr = srvr.address
- # Close the connection.Listener socket which gets opened as a part
- # of manager.get_server(). It's not needed for the test.
- srvr.listener.close()
- manager.start()
+ try:
+ srvr = manager.get_server()
+ addr = srvr.address
+ # Close the connection.Listener socket which gets opened as a part
+ # of manager.get_server(). It's not needed for the test.
+ srvr.listener.close()
+ manager.start()
- p = self.Process(target=self._putter, args=(manager.address, authkey))
- p.start()
- p.join()
- queue = manager.get_queue()
- self.assertEqual(queue.get(), 'hello world')
- del queue
- manager.shutdown()
+ p = self.Process(target=self._putter, args=(manager.address, authkey))
+ p.start()
+ p.join()
+ queue = manager.get_queue()
+ self.assertEqual(queue.get(), 'hello world')
+ del queue
+ finally:
+ if hasattr(manager, "shutdown"):
+ manager.shutdown()
manager = QueueManager(
address=addr, authkey=authkey, serializer=SERIALIZER)
try:
manager.start()
+ self.addCleanup(manager.shutdown)
except OSError as e:
if e.errno != errno.EADDRINUSE:
raise
@@ -2879,7 +2883,8 @@ class _TestManagerRestart(BaseTestCase):
time.sleep(1.0)
manager = QueueManager(
address=addr, authkey=authkey, serializer=SERIALIZER)
- manager.shutdown()
+ if hasattr(manager, "shutdown"):
+ self.addCleanup(manager.shutdown)
#
#