diff options
Diffstat (limited to 'Mailman/Deliverer.py')
| -rw-r--r-- | Mailman/Deliverer.py | 18 |
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', |
