Message sent got completely lost.
Steps to reproduce
- I wrote a msg in HQ, and hit send, and rapidly went to the room list
- later on, went back, and the msg had vanished
- checked on another client; it was never sent.
Outcome
What did you expect?
Never lose msgs.
Your phone model
No response
Operating system version
No response
Application version
778
Homeserver
No response
Will you send logs?
Yes
See also https://github.com/element-hq/element-x-ios/issues/3006 (possibly, although i don't think this was a clean launch)
There might be a relation with https://github.com/element-hq/element-x-ios/issues/3186 too. The scenario to reach the issue is quite similar. The consequense is worse here.
i just had another of these (this time e2ee room)
got this again on build 859. the room in question was e2ee and very busy at the time. have rageshaked
@kegsay's seeing it too on EXA (see rageshakes).
just got it again - see rageshake :|
The two last rageshakes exhibit a bad case of sqlite's database is locked error while trying to push the message in the send queue.
- We're always enabling WAL mode, and the fact it's happening in Android (mono-processed) shows it's not (always) caused by multiprocess access to the DB.
- We've seen this error happen when a read transaction is promoted into a write transaction, in the past, but it's not the case here because the transaction only involves in a single
insertion.
But sqlite's doc says the error can still happen under extraordinary circumstances and must be retried in those cases; this may be what's happening here, so we'll try setting up the busy_timeout so that an operation is automatically retried if it failed because the database was locked, after sleeping for a bit.
https://github.com/matrix-org/matrix-rust-sdk/pull/5025