Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sliding sync: handle lone DELETE and INSERT operations #2610

Merged
merged 1 commit into from
Aug 23, 2022

Conversation

kegsay
Copy link
Member

@kegsay kegsay commented Aug 22, 2022

If you leave a room you can get a lone DELETE op.
If you join a room you can get a lone INSERT op.

Up until now, we've assumed these operations happen at the ends
of the list (e.g [0] or [length-1]) which is not guaranteed as it
depends on the sort order (e.g sort alphabetically and join a room
called 'D'). In this scenario, the indexes would not be tracked
correctly. Fixed with integration tests.

Checklist

  • Tests written for new code (and old code if feasible)
  • Linter and other CI checks pass
  • Sign-off given on the changes (see CONTRIBUTING.md)

Notes: fixed a sliding sync bug which could cause the roomIndexToRoomId map to be incorrect when a new room is added in the middle of the list or when an existing room is deleted from the middle of the list.


Here's what your changelog entry will look like:

🐛 Bug Fixes

  • fixed a sliding sync bug which could cause the roomIndexToRoomId map to be incorrect when a new room is added in the middle of the list or when an existing room is deleted from the middle of the list. (#2610).

If you leave a room you can get a lone DELETE op.
If you join a room you can get a lone INSERT op.

Up until now, we've assumed these operations happen at the ends
of the list (e.g [0] or [length-1]) which is not guaranteed as it
depends on the sort order (e.g sort alphabetically and join a room
called 'D'). In this scenario, the indexes would not be tracked
correctly. Fixed with integration tests.
@kegsay kegsay requested a review from a team as a code owner August 22, 2022 13:41
Copy link
Member

@dbkr dbkr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for factoring those operations out.

@kegsay kegsay merged commit 1df329d into develop Aug 23, 2022
@kegsay kegsay deleted the kegan/ss-bugfix branch August 23, 2022 07:42
su-ex added a commit to SchildiChat/matrix-js-sdk that referenced this pull request Sep 1, 2022
* Re-emit room state events on rooms ([\matrix-org#2607](matrix-org#2607)).
* Add ability to override built in room name generator for an i18n'able one ([\matrix-org#2609](matrix-org#2609)).
* Add txn_id support to sliding sync ([\matrix-org#2567](matrix-org#2567)).
* Refactor Sync and fix `initialSyncLimit` ([\matrix-org#2587](matrix-org#2587)).
* Use deep equality comparisons when searching for outgoing key requests by target ([\matrix-org#2623](matrix-org#2623)). Contributed by @duxovni.
* Fix room membership race with PREPARED event ([\matrix-org#2613](matrix-org#2613)). Contributed by @jotto.
* fixed a sliding sync bug which could cause the `roomIndexToRoomId` map to be incorrect when a new room is added in the middle of the list or when an existing room is deleted from the middle of the list. ([\matrix-org#2610](matrix-org#2610)).
* Fix: Handle parsing of a beacon info event without asset ([\matrix-org#2591](matrix-org#2591)). Fixes element-hq/element-web#23078. Contributed by @kerryarchibald.
* Fix finding event read up to if stable private read receipts is missing ([\matrix-org#2585](matrix-org#2585)). Fixes element-hq/element-web#23027.
* fixed a sliding sync issue where history could be interpreted as live events. ([\matrix-org#2583](matrix-org#2583)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants