diff options
| author | Barry Warsaw | 2012-05-11 12:16:06 -0700 |
|---|---|---|
| committer | Barry Warsaw | 2012-05-11 12:16:06 -0700 |
| commit | 24f390dcf0158722ec66ada50f22f55b868bc333 (patch) | |
| tree | fb70bb9cb74e85e7d5a1efc3c0536c15b6476eb5 /src/mailman/core/runner.py | |
| parent | fe405ddae97cc792a343e3665b9ea645b9cf4539 (diff) | |
| download | mailman-24f390dcf0158722ec66ada50f22f55b868bc333.tar.gz mailman-24f390dcf0158722ec66ada50f22f55b868bc333.tar.zst mailman-24f390dcf0158722ec66ada50f22f55b868bc333.zip | |
Diffstat (limited to 'src/mailman/core/runner.py')
| -rw-r--r-- | src/mailman/core/runner.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mailman/core/runner.py b/src/mailman/core/runner.py index 39382cea0..a79f19fbc 100644 --- a/src/mailman/core/runner.py +++ b/src/mailman/core/runner.py @@ -32,6 +32,7 @@ import traceback from cStringIO import StringIO from lazr.config import as_boolean, as_timedelta from zope.component import getUtility +from zope.event import notify from zope.interface import implementer from mailman.config import config @@ -39,7 +40,7 @@ from mailman.core.i18n import _ from mailman.core.switchboard import Switchboard from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.listmanager import IListManager -from mailman.interfaces.runner import IRunner +from mailman.interfaces.runner import IRunner, RunnerCrashEvent from mailman.utilities.string import expand @@ -216,7 +217,12 @@ class Runner: language = mlist.preferred_language with _.using(language.code): msgdata['lang'] = language.code - keepqueued = self._dispose(mlist, msg, msgdata) + try: + keepqueued = self._dispose(mlist, msg, msgdata) + except Exception as error: + # Trigger the Zope event and re-raise + notify(RunnerCrashEvent(self, mlist, msg, msgdata, error)) + raise if keepqueued: self.switchboard.enqueue(msg, msgdata) |
