diff options
author | Erik Johnston <erik@matrix.org> | 2019-06-05 15:45:46 +0100 |
---|---|---|
committer | Amber Brown <hawkowl@atleastfornow.net> | 2019-06-06 00:45:46 +1000 |
commit | 75538813fcd0403ec8915484a813b99e6eb256c6 (patch) | |
tree | 89735486b44fb3c5572f6bc38524dd231eed6233 /synapse/handlers/presence.py | |
parent | Fix notes about well-known and acme (#5357) (diff) | |
download | synapse-75538813fcd0403ec8915484a813b99e6eb256c6.tar.xz |
Fix background updates to handle redactions/rejections (#5352)
* Fix background updates to handle redactions/rejections In background updates based on current state delta stream we need to handle that we may not have all the events (or at least that `get_events` may raise an exception).
Diffstat (limited to 'synapse/handlers/presence.py')
-rw-r--r-- | synapse/handlers/presence.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py index 6209858bbb..e49c8203ef 100644 --- a/synapse/handlers/presence.py +++ b/synapse/handlers/presence.py @@ -828,14 +828,17 @@ class PresenceHandler(object): # joins. continue - event = yield self.store.get_event(event_id) - if event.content.get("membership") != Membership.JOIN: + event = yield self.store.get_event(event_id, allow_none=True) + if not event or event.content.get("membership") != Membership.JOIN: # We only care about joins continue if prev_event_id: - prev_event = yield self.store.get_event(prev_event_id) - if prev_event.content.get("membership") == Membership.JOIN: + prev_event = yield self.store.get_event(prev_event_id, allow_none=True) + if ( + prev_event + and prev_event.content.get("membership") == Membership.JOIN + ): # Ignore changes to join events. continue |