Replies: 1 comment
-
Hello, |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
I am experiencing an issue where the data in SyncIDictionary is not synchronized correctly between the server and client. After investigating the Mirage source code, I found the following:
During the initial synchronization (OnDeserializeAll), the full list is deserialized, and _changesAhead is set to the number of changes that have already been applied.
When processing deltas (OnDeserializeDelta), the code checks if _changesAhead is greater than 0. If so, it skips applying the change and simply decrements _changesAhead.
This means that some operations, such as REMOVE, are skipped during this phase.
As a result, the actual removal of items from the dictionary is not performed if the change is skipped, which can lead to inconsistencies between the server and client state.
Question:
Is this the intended behavior? If not, what is the recommended way to ensure that the server and client dictionaries remain consistent, especially regarding removal operations that might be skipped due to _changesAhead?
Thank you for your help.
Beta Was this translation helpful? Give feedback.
All reactions