From 10013eaaccd6610486a73196f25460e32fcebe08 Mon Sep 17 00:00:00 2001 From: Sean Quah Date: Fri, 5 Aug 2022 22:29:37 +0100 Subject: [PATCH] Do not wait for full state in a few cases in `_get_rooms_changed` --- synapse/handlers/sync.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index cf6a2d1886..a10a61363b 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -1758,7 +1758,11 @@ class SyncHandler: continue if room_id in sync_result_builder.joined_room_ids or has_join: - old_state_ids = await self.get_state_at(room_id, since_token) + old_state_ids = await self.get_state_at( + room_id, + since_token, + state_filter=StateFilter.from_types([(EventTypes.Member, user_id)]), + ) old_mem_ev_id = old_state_ids.get((EventTypes.Member, user_id), None) old_mem_ev = None if old_mem_ev_id: @@ -1784,7 +1788,13 @@ class SyncHandler: newly_left_rooms.append(room_id) else: if not old_state_ids: - old_state_ids = await self.get_state_at(room_id, since_token) + old_state_ids = await self.get_state_at( + room_id, + since_token, + state_filter=StateFilter.from_types( + [(EventTypes.Member, user_id)] + ), + ) old_mem_ev_id = old_state_ids.get( (EventTypes.Member, user_id), None )