mirror of
https://github.com/element-hq/synapse.git
synced 2026-11-04 19:57:45 +00:00
Fixes https://github.com/element-hq/synapse/issues/18793 When the last local user leaves a room, Synapse clears `current_state_events` and writes `null` `event_id` entries into the `current_state_delta_stream`. The incremental sync code for MSC4222's state_after skipped those `null` deltas entirely, and `get_current_state_ids` also returned nothing (table already cleared). Result: clients using `state_after` never learned about the leave. Fix by falling back to state groups (which are preserved) to look up the actual state at `end_token` for any cleared state keys. ### Pull Request Checklist * [x] Pull request is based on the develop branch * [x] Pull request includes a [changelog file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog). The entry should: - Be a short description of your change which makes sense to users. "Fixed a bug that prevented receiving messages from other servers." instead of "Moved X method from `EventStore` to `EventWorkerStore`.". - Use markdown where necessary, mostly for `code blocks`. - End with either a period (.) or an exclamation mark (!). - Start with a capital letter. - Feel free to credit yourself, by adding a sentence "Contributed by @github_username." or "Contributed by [Your Name]." to the end of the entry. * [x] [Code style](https://element-hq.github.io/synapse/latest/code_style.html) is correct (run the [linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters)) --------- Co-authored-by: Paul Chobert <paul@chobert.fr> Co-authored-by: Quentin Gliech <quenting@element.io> Co-authored-by: Eric Eastwood <madlittlemods@gmail.com>
2 lines
210 B
Plaintext
2 lines
210 B
Plaintext
Fix the leave event being missing from `state_after` ([MSC4222](https://github.com/matrix-org/matrix-spec-proposals/pull/4222)) on incremental `/sync` when the leaving user was the last local user in the room.
|