diff options
author | Erik Johnston <erik@matrix.org> | 2018-02-26 13:49:24 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2018-02-26 13:49:24 +0000 |
commit | 45b5fe91225e9188ccd2a3983b125d0c6901fbb9 (patch) | |
tree | 63c99e09fabe0a21f9465b1c3bf14cbef493d708 /synapse/handlers | |
parent | Actually use new param (diff) | |
parent | Merge pull request #2900 from matrix-org/erikj/split_event_push_actions (diff) | |
download | synapse-45b5fe91225e9188ccd2a3983b125d0c6901fbb9.tar.xz |
Merge branch 'develop' of github.com:matrix-org/synapse into erikj/handle_unpersisted_events_push
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/federation.py | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py index 46bcf8b081..8832ba58bc 100644 --- a/synapse/handlers/federation.py +++ b/synapse/handlers/federation.py @@ -1447,16 +1447,24 @@ class FederationHandler(BaseHandler): auth_events=auth_events, ) - if not event.internal_metadata.is_outlier() and not backfilled: - yield self.action_generator.handle_push_actions_for_event( - event, context - ) + try: + if not event.internal_metadata.is_outlier() and not backfilled: + yield self.action_generator.handle_push_actions_for_event( + event, context + ) - event_stream_id, max_stream_id = yield self.store.persist_event( - event, - context=context, - backfilled=backfilled, - ) + event_stream_id, max_stream_id = yield self.store.persist_event( + event, + context=context, + backfilled=backfilled, + ) + except: # noqa: E722, as we reraise the exception this is fine. + # Ensure that we actually remove the entries in the push actions + # staging area + logcontext.preserve_fn( + self.store.remove_push_actions_from_staging + )(event.event_id) + raise if not backfilled: # this intentionally does not yield: we don't care about the result |