diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2022-12-02 10:28:41 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-02 10:28:41 -0500 |
commit | fac8a38525387e344e3595a092578e0ffedd49ae (patch) | |
tree | 0969d1222b23d9d15267b0d4e2cff2aadeeb6b62 /synapse/handlers | |
parent | Update worker docs to update preferred settings for pusher and federation_sen... (diff) | |
download | synapse-fac8a38525387e344e3595a092578e0ffedd49ae.tar.xz |
Properly handle unknown results for the stream change cache. (#14592)
StreamChangeCache.get_all_changed_entities can return None to signify it does not have information at the given stream position. Two callers (related to device lists and presence) were treating this response the same as an empty list (i.e. there being no updates).
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/presence.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py index cf08737d11..1799174c2f 100644 --- a/synapse/handlers/presence.py +++ b/synapse/handlers/presence.py @@ -1764,14 +1764,14 @@ class PresenceEventSource(EventSource[int, UserPresenceState]): Returns: A list of presence states for the given user to receive. """ + updated_users = None if from_key: # Only return updates since the last sync updated_users = self.store.presence_stream_cache.get_all_entities_changed( from_key ) - if not updated_users: - updated_users = [] + if updated_users is not None: # Get the actual presence update for each change users_to_state = await self.get_presence_handler().current_state_for_users( updated_users |