diff options
| author | Barry Warsaw | 2012-05-14 11:20:51 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2012-05-14 11:20:51 -0400 |
| commit | 3c8a07fc76176a8ea89ee6b73aef571d0b2c81ed (patch) | |
| tree | 050093ca9114e40da200d7cebb2e1565bafd7d33 /src/mailman/core/runner.py | |
| parent | feb7316c554db4df76fd021468df2f1a69d894dd (diff) | |
| parent | cc449f1910f84894a2431920d9349bffe4cea7ab (diff) | |
| download | mailman-3c8a07fc76176a8ea89ee6b73aef571d0b2c81ed.tar.gz mailman-3c8a07fc76176a8ea89ee6b73aef571d0b2c81ed.tar.zst mailman-3c8a07fc76176a8ea89ee6b73aef571d0b2c81ed.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) |
