Make sure the BaseManager in test_multiprocessing is cleaned up correctly (GH-11653)
(cherry picked from commit 7b2a37b728
)
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
This commit is contained in:
parent
36ed5b3c4e
commit
6f0f764820
|
@ -2779,6 +2779,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
|
||||
|
@ -2798,7 +2799,6 @@ class _TestRemoteManager(BaseTestCase):
|
|||
|
||||
# Make queue finalizer run before the server is stopped
|
||||
del queue
|
||||
manager.shutdown()
|
||||
|
||||
class _TestManagerRestart(BaseTestCase):
|
||||
|
||||
|
@ -2814,25 +2814,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
|
||||
|
@ -2841,7 +2845,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)
|
||||
|
||||
#
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue