matrix-org / matrix-org/matrix-rust-sdk
event cache: failure with the ordering tracker
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 2.3k
- Forks
- 500
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 106
Description
We had to [disable](https://github.com/matrix-org/matrix-rust-sdk/pull/5332) the ordering tracker assertions in emergency because they were crashing the `reldbg` iOS builds. @stefanceriu reported the following set of actions:
- Having the app (or perhaps the sliding sync loop) not running seems to be what actually does it
- I have a room with a thread and a bunch of messages in both the thread and the main timeline
- I kill the app and send 2 messages in that room: one in the main timeline and one in the thread. This order is important
- I restart the app and re-enter the room, triggering backpaginations
- 💥
We should try to reproduce this in a test, and see how to fix it, since the order tracker may be useful for read receipts as well as threads soon enough.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the reported sequence in the event cache and ordering tracker: stop the app, send one main-timeline message followed by one thread message, restart, and re-enter the room to trigger backpaginations. Add a regression test for the crash and confirm that the ordering tracker assertions remain valid without disabling them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100