summaryrefslogtreecommitdiff
path: root/src/mailman/core/runner.py
diff options
context:
space:
mode:
authorBarry Warsaw2012-05-11 12:16:06 -0700
committerBarry Warsaw2012-05-11 12:16:06 -0700
commit24f390dcf0158722ec66ada50f22f55b868bc333 (patch)
treefb70bb9cb74e85e7d5a1efc3c0536c15b6476eb5 /src/mailman/core/runner.py
parentfe405ddae97cc792a343e3665b9ea645b9cf4539 (diff)
downloadmailman-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.py10
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)