diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2018-04-27 11:47:49 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-27 11:47:49 +0100 |
commit | 9c3da2456183172677c27fbe6e0243af1a2c68a6 (patch) | |
tree | f022f1fc5930a11c0d9058544dc480cfbb7fdf9f /synapse/appservice | |
parent | Merge pull request #3139 from matrix-org/rav/consume_errors (diff) | |
parent | Improve exception handling for background processes (diff) | |
download | synapse-9c3da2456183172677c27fbe6e0243af1a2c68a6.tar.xz |
Merge pull request #3138 from matrix-org/rav/catch_unhandled_exceptions
Improve exception handling for background processes
Diffstat (limited to 'synapse/appservice')
-rw-r--r-- | synapse/appservice/scheduler.py | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/synapse/appservice/scheduler.py b/synapse/appservice/scheduler.py index 6da315473d..dfc8d1b42e 100644 --- a/synapse/appservice/scheduler.py +++ b/synapse/appservice/scheduler.py @@ -176,17 +176,20 @@ class _TransactionController(object): @defer.inlineCallbacks def _start_recoverer(self, service): - yield self.store.set_appservice_state( - service, - ApplicationServiceState.DOWN - ) - logger.info( - "Application service falling behind. Starting recoverer. AS ID %s", - service.id - ) - recoverer = self.recoverer_fn(service, self.on_recovered) - self.add_recoverers([recoverer]) - recoverer.recover() + try: + yield self.store.set_appservice_state( + service, + ApplicationServiceState.DOWN + ) + logger.info( + "Application service falling behind. Starting recoverer. AS ID %s", + service.id + ) + recoverer = self.recoverer_fn(service, self.on_recovered) + self.add_recoverers([recoverer]) + recoverer.recover() + except Exception: + logger.exception("Error starting AS recoverer") @defer.inlineCallbacks def _is_service_up(self, service): |