summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mailman/bin/master.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mailman/bin/master.py b/src/mailman/bin/master.py
index c6a8bcd2d..ef64f3d83 100644
--- a/src/mailman/bin/master.py
+++ b/src/mailman/bin/master.py
@@ -230,6 +230,9 @@ class PIDWatcher:
def __init__(self):
self._pids = {}
+ def __contains__(self, pid):
+ return pid in self._pids.keys()
+
def __iter__(self):
# Safely iterate over all the keys in the dictionary. Because
# asynchronous signals are involved, the dictionary's size could
@@ -447,6 +450,10 @@ class Loop:
continue
else:
raise
+ if pid not in self._kids:
+ # Not a runner subprocess, maybe a plugin started one
+ # ignore it
+ continue
# Find out why the subprocess exited by getting the signal
# received or exit status.
if os.WIFSIGNALED(status):