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

Synapse relies on unspecced behaviour for the remote server to resync device lists after prune_outbound_device_list_pokes #7173

@richvdh

Description

@richvdh

Background: each m.device_list_update EDU has a stream_id; receiving servers can check that they haven't missed any in the sequence. If a receiving server receives an update with a prev_id it doesn't recognise, it should do a full resync for that user.

We use this behaviour to prune device list updates for offline server.

However, synapse currently relies on the unspecced behaviour that the remote server will do a full resync if the prev_id is empty. This is wrong - an empty prev_id means 'this is the first ever update', so there should be no need for the remote server to resync.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-Device-List-TrackingTelling clients about other devices. Often related to E2EE.A-FederationA-Spec-Complianceplaces where synapse does not conform to the specO-FrequentAffects or can be seen by most users regularly or impacts most users' first experienceS-MajorMajor functionality / product severely impaired, no satisfactory workaround.T-DefectBugs, crashes, hangs, security vulnerabilities, or other reported issues.z-p2(Deprecated Label)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions