-
Notifications
You must be signed in to change notification settings - Fork 269
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
refactor(crypto): Make memory store behave more like other stores #4558
base: main
Are you sure you want to change the base?
refactor(crypto): Make memory store behave more like other stores #4558
Conversation
Why squash at the end? |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4558 +/- ##
=======================================
Coverage 85.42% 85.42%
=======================================
Files 286 286
Lines 32213 32247 +34
=======================================
+ Hits 27517 27548 +31
- Misses 4696 4699 +3 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks sensible to me.
Attempt to make the memory store behave more like other stores.
This is following reports of Playwright flaky tests that are showing some panics of the memory store (used by the bots not the tested app).
The idea is to make the memory store works more like other stores by removing
unwrap()
s, serializing/deserialising structures instead of keep them around to be mutated by everyone. Add a global save_changes lockPRO
Will behave more like other stores (might help and make the tests less flaky)
CONS
Might be slower
Breakdown
Best reviewed commit per commit (will squash at the end):
Replace unwrap with expect 17fa2c7
Serialize account and cache static account data b7ac36f
Serialize/Deserialise olm sessions 7c87d13
Ser/Deser inbound group sessions 9262c30
Add a global save change lock similar to other stores 70c2baf
Public API changes documented in changelogs (optional)
Signed-off-by: