This repository has been 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
Labels
A-Federated-Join
joins over federation generally suck
S-Minor
Blocks non-critical functionality, workarounds exist.
T-Task
Refactoring, removal, replacement, enabling or disabling functionality, other engineering tasks.
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:
The 429 gets raised in
EventCreationHandler.handle_new_client_event
. Event contexts are computed in orange methods.The text was updated successfully, but these errors were encountered: