mirror of
https://github.com/element-hq/synapse
synced 2024-08-19 01:00:54 +00:00
Trap exceptions thrown within run_in_background
Turn any exceptions that get thrown synchronously within run_in_background into Failures instead.
This commit is contained in:
parent
0ced8b5b47
commit
13843f771e
1 changed files with 7 additions and 1 deletions
|
@ -308,7 +308,13 @@ def run_in_background(f, *args, **kwargs):
|
|||
on.
|
||||
"""
|
||||
current = LoggingContext.current_context()
|
||||
try:
|
||||
res = f(*args, **kwargs)
|
||||
except: # noqa: E722
|
||||
# the assumption here is that the caller doesn't want to be disturbed
|
||||
# by synchronous exceptions, so let's turn them into Failures.
|
||||
return defer.fail()
|
||||
|
||||
if isinstance(res, defer.Deferred) and not res.called:
|
||||
# The function will have reset the context before returning, so
|
||||
# we need to restore it now.
|
||||
|
|
Loading…
Reference in a new issue