This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
Faster room joins: Device list cache not flushed when it is discovered that we incorrectly thought we shared a room with a remote user for some period in the past #13887
Labels
A-Device-List-Tracking
Telling clients about other devices. Often related to E2EE.
A-Federated-Join
joins over federation generally suck
O-Uncommon
Most users are unlikely to come across this or unexpected workflow
S-Minor
Blocks non-critical functionality, workarounds exist.
T-Defect
Bugs, crashes, hangs, security vulnerabilities, or other reported issues.
See the skipped
TestPartialStateJoin/Device_list_tracking/Device_list_tracking_for_user_incorrectly_believed_to_be_in_room_when_they_rejoin_before_the_partial_state_join_completes
complement test.That test case is roughly:
@charlie:remote
,@derek:remote
(moderator) and@fred:remote
(admin)@fred:remote
leaves the room.@alice:local
partial state joins the room.@elsie:remote
joins the room.@alice:local
does a/keys/query
request and the local homeserver caches@elsie:remote
's device list.@fred:remote
"bans"@derek:remote
, citing their join event as auth. The local homeserver does not know that@fred:remote
is no longer in the room and accepts the event.@derek:remote
kicks@elsie:remote
. The local homeserver incorrectly rejects the kick because it thinks@derek:remote
has been banned.@elsie:remote
stops notifying the local homeserver about device list updates.@elsie:remote
updates their device list.@elsie:remote
rejoins the room (or joins another shared room) and will notify the local homeserver about device list updates again.@elsie:remote
is discovered to not have been in the room / shared a room the whole time.@alice:local
does a /keys/query request, a stale response is returned.The text was updated successfully, but these errors were encountered: