summaryrefslogtreecommitdiff
path: root/Mailman/Deliverer.py
diff options
context:
space:
mode:
authorbwarsaw1999-01-08 06:37:22 +0000
committerbwarsaw1999-01-08 06:37:22 +0000
commitb9461fcfb3564f8a708a9daafda98273a16bf4d1 (patch)
tree4850f37dcb6e24d3af7741504ed66b32ee7005d7 /Mailman/Deliverer.py
parenta34762ab857cc7e2fd37ac84ca5ccf58b2cfcbe6 (diff)
downloadmailman-b9461fcfb3564f8a708a9daafda98273a16bf4d1.tar.gz
mailman-b9461fcfb3564f8a708a9daafda98273a16bf4d1.tar.zst
mailman-b9461fcfb3564f8a708a9daafda98273a16bf4d1.zip
Diffstat (limited to 'Mailman/Deliverer.py')
-rw-r--r--Mailman/Deliverer.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/Mailman/Deliverer.py b/Mailman/Deliverer.py
index 754374db8..f01142844 100644
--- a/Mailman/Deliverer.py
+++ b/Mailman/Deliverer.py
@@ -20,6 +20,7 @@
import string, os, sys
import operator
+import errno
import mm_cfg
import Errors
import Utils
@@ -169,7 +170,22 @@ class Deliverer:
if footer:
cmdproc.write(footer)
- status = cmdproc.close()
+ # TBD: this potentially masks a real bug. We have been getting
+ # several reports from Linux users that this line is raising the
+ # following exception:
+ #
+ # IOError: (10, 'No child processes')
+ #
+ # I don't know how this can happen, I can't reproduce it on Solaris,
+ # and it doesn't seem to affect anything. So I'm chalking it up to a
+ # harmless Linux artifact that we can safely ignore.
+ try:
+ status = cmdproc.close()
+ except IOError, (code, msg):
+ if errcode <> errno.ECHILD:
+ Utils.reraise()
+ # otherwise just ignore it
+ status = 0
if status:
self.LogMsg('deliverer',
'Non-zero exit status: %d\nCommand: %s',