You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
@alice:local partial state joins a room
The local homeserver thinks @elsie:remote is not in the room and does not send them device list updates, either because the /send_joinservers_in_room response was incorrect or it has calculated incorrect state.
@elsie:remote queries @alice:local's device list and caches it.
@alice:local updates their device list.
@elsie:remote joins another room shared with @alice:local.
@alice:local leaves the partial state room.
(bad) @elsie:remote thinks their cached device list for @alice:local is up to date when it's actually stale.
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
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.
@alice:local
partial state joins a room@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.@elsie:remote
queries@alice:local
's device list and caches it.@alice:local
updates their device list.@elsie:remote
joins another room shared with@alice:local
.@alice:local
leaves the partial state room.@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:
The text was updated successfully, but these errors were encountered: