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.

Faster joins: improve handling of race where we can fail to persist a client event with partial state after _sync_partial_state_room clears the partial state flag for a room #13173

@squahtx

Description

@squahtx

Follow on from #12988.

Currently, when we encounter the race in #12988, we send a 429 Too Many Requests back to clients with the expectation that a retry happens.

@reivilibre notes that some clients may require retries to be manually initiated, which is not good UX.

We can improve things by doing some of the retries internally in synapse.


A handy plot of code paths which create client events:
graphviz
The 429 gets raised in EventCreationHandler.handle_new_client_event. Event contexts are computed in orange methods.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-Federated-Joinjoins over federation generally suckS-MinorBlocks non-critical functionality, workarounds exist.T-TaskRefactoring, removal, replacement, enabling or disabling functionality, other engineering tasks.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions