← Back to team overview

sts-sponsors team mailing list archive

[Merge] ~ack/maas:workers-stop-no-change-iter into maas:master

 

Alberto Donato has proposed merging ~ack/maas:workers-stop-no-change-iter into maas:master.

Commit message:
materialize a list of workers before signaling them to stop

The workers might unregister themselves while the dict is iterated on.



Requested reviews:
  MAAS Lander (maas-lander): unittests
  MAAS Maintainers (maas-maintainers)

For more details, see:
https://code.launchpad.net/~ack/maas/+git/maas/+merge/443645
-- 
Your team MAAS Committers is subscribed to branch maas:master.
diff --git a/src/maasserver/workers.py b/src/maasserver/workers.py
index 11c3a03..9e9a0b1 100644
--- a/src/maasserver/workers.py
+++ b/src/maasserver/workers.py
@@ -74,7 +74,9 @@ class WorkersService(service.Service):
     def stopService(self):
         """Stop the workers."""
         self.stopping = True
-        for pid, worker in self.workers.items():
+        # get a list of the workers since they might unregister while this is
+        # running
+        for pid, worker in list(self.workers.items()):
             log.msg("Killing worker pid:%d." % pid)
             worker.signal("KILL")