Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Avoid blocking lazy-loading /syncs during partial joins (#13477)
Browse files Browse the repository at this point in the history
Use a state filter or accept partial state in a few places where we
request state, to avoid blocking.

To make lazy-loading `/sync`s work, we need to provide the memberships
of event senders, which are not guaranteed to be in the room state.
Instead we dig through auth events for memberships to present to
clients. The auth events of an event are guaranteed to contain a
passable membership event, otherwise the event would have been rejected.

Note that this only covers the common code paths encountered during
testing. There has been no exhaustive checking of all sync code paths.

Fixes #13146.

Signed-off-by: Sean Quah <[email protected]>
  • Loading branch information
squahtx authored Aug 18, 2022
1 parent 49d04e4 commit 84169a8
Show file tree
Hide file tree
Showing 3 changed files with 244 additions and 34 deletions.
1 change: 1 addition & 0 deletions changelog.d/13477.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Faster room joins: Avoid blocking lazy-loading `/sync`s during partial joins due to remote memberships. Pull remote memberships from auth events instead of the room state.
Loading

0 comments on commit 84169a8

Please sign in to comment.