diff options
author | Sean Quah <8349537+squahtx@users.noreply.github.com> | 2023-02-14 12:32:19 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-14 12:32:19 +0000 |
commit | 463c19ac3648b242c480e299349d2ef90bf38a0b (patch) | |
tree | 3b1b72dff067cbe9b6e99bee4ce136c50f2ff2ed | |
parent | Fix clashing DB txn name (#15070) (diff) | |
download | synapse-463c19ac3648b242c480e299349d2ef90bf38a0b.tar.xz |
Faster joins: Omit device list updates from partial state rooms in /sync (#15069)
...when lazy loading of members is not enabled. It's weird to notify a client that another user's device list has changed when the client doesn't think that they share a room. Note that when a room is un-partial stated, device list updates are emitted for every member in that room over /sync. Signed-off-by: Sean Quah <seanq@matrix.org>
-rw-r--r-- | changelog.d/15069.misc | 1 | ||||
-rw-r--r-- | synapse/handlers/sync.py | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/changelog.d/15069.misc b/changelog.d/15069.misc new file mode 100644 index 0000000000..e7a619ad2b --- /dev/null +++ b/changelog.d/15069.misc @@ -0,0 +1 @@ +Faster joins: omit device list updates originating from partial state rooms in /sync responses without lazy loading of members enabled. diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index 3a9cddf15a..4e4595312c 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -1399,6 +1399,11 @@ class SyncHandler: for room_id, is_partial_state in results.items() if is_partial_state ) + membership_change_events = [ + event + for event in membership_change_events + if not results.get(event.room_id, False) + ] # Incremental eager syncs should additionally include rooms that # - we are joined to |