Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Faster room joins: Outgoing device list updates not sent if we leave the room before join completes #13894

Open
matrixbot opened this issue Dec 20, 2023 · 0 comments

Comments

@matrixbot
Copy link
Collaborator

matrixbot commented Dec 20, 2023

This issue has been migrated from #13894.


When a local user updates their device list while in a partial state room, their device list updates are buffered up, since it's not known for sure which servers are in the room and expecting device list updates. #13891 ensures that buffered device list updates are sent once the room transitions to full state.

However, if the room is left before then, there is no transition to full state and some remote homeservers will miss updates.

eg.

  1. @alice:local partial state joins a room
  2. The local homeserver thinks @elsie:remote is not in the room and does not send them device list updates, either because the /send_join servers_in_room response was incorrect or it has calculated incorrect state.
  3. @elsie:remote queries @alice:local's device list and caches it.
  4. @alice:local updates their device list.
  5. @elsie:remote joins another room shared with @alice:local.
  6. @alice:local leaves the partial state room.
  7. (bad) @elsie:remote thinks their cached device list for @alice:local is up to date when it's actually stale.

We're missing complement tests for this too.

related:

@matrixbot matrixbot changed the title Dummy issue Faster room joins: Outgoing device list updates not sent if we leave the room before join completes Dec 21, 2023
@matrixbot matrixbot reopened this Dec 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant