-
Notifications
You must be signed in to change notification settings - Fork 38
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
Room name/avatar replaced with older value after historical events emitted #1772
Comments
Hello @PhantomRay can you try this again with 0.27.0? We have refactored the logic there how to handle incoming events |
Thanks a lot @krille-chan. I cannot test it directly in my app. But can certain use your demo app. We rely on modified matrix api lite which supports jwt. Hopefully you guys can support it very soon. Only a few lines of code. |
In fact, I will try to integrate jwt feature to 0.27 now. |
@krille-chan I just tested it in fluffychat with 0.27.0, the issue still remains. |
Hi @krille-chan could you please treat this bug as high priority? |
Thanks @krille-chan Much appreciated. |
@PhantomRay I've tried to reproduce the bug in this way:
Do you have better way how to reproduce this? |
I think my scenario might be different to yours, because you must be editing data using client API. We use But either way, this shouldn't happen. |
Btw, I'm currently testing direct chat (1 to1) only. |
This should be fixed in 0.29.10, please reopen, if you can still reproduce it with that. |
Thanks a lot! |
In 0.29.10, it's still not fixed. Just to re-iterate, both of the following are overridden by older events:
|
Are you sure this isn't just an effect of not having cleared the cache? Does this affect new sessions or existing ones? |
Our test is comprehensive including deleting the app. Checked your recent code, noticed that you put some checks on event types. However I think that's not enough because we also have to compare the events' timestamps. If it's older than the time when room was loaded, or user's info previously set, then ignore. |
The checks are on the event update types. We should only apply the state updates, if the update is a forward update, i.e. when there is a new sync response. Could you describe in more detail, where you are seeing the wrong state updates, i.e. what steps you are doing like jumping to some timeline location and then paginating forward or similar? Timestamps would be incorrect, but we really should only be writing event updates to the database in the sync loop and we might still be missing some cases, where they get written outside of that loop? |
Steps To Reproduce
|
Thank you for the report, I will try to reproduce that. |
Checklist
In which Project did the bug appear?
Matrix dart SDK
On which platform did the bug appear?
Android, iOS
SDK Version
0.27
Describe the problem caused by this bug
Room info replaced after
timeline. timeline.requestHistory()
. From this point onwards, the room's state is changed in memory and local database.Steps To Reproduce
Tasks
The text was updated successfully, but these errors were encountered: