-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
fix: treat uncommitted mutations as local operations when receiving remote updates #9652
Conversation
12af3d3
to
ac7a872
Compare
Performance Report for e418061 Scenario - basic-record-materialization: ☑️ Performance is stable
Scenario - relationship-materialization-simple: ✅ Performance improved
Scenario - relationship-materialization-complex: ✅ Performance improved
Scenario - unload: ☑️ Performance is stable
Scenario - unload-all: ☑️ Performance is stable
Scenario - destroy: ☑️ Performance is stable
Scenario - add-children: ☑️ Performance is stable
Scenario - unused-relationships: ☑️ Performance is stable
|
Commit v Release Performance Report for e418061 Scenario - basic-record-materialization: ✅ Performance improved
Scenario - relationship-materialization-simple: ☑️ Performance is stable
Scenario - relationship-materialization-complex: ☑️ Performance is stable
Scenario - unload: ✅ Performance improved
Scenario - unload-all: ✅ Performance improved
Scenario - destroy: ✅ Performance improved
Scenario - add-children: ✅ Performance improved
Scenario - unused-relationships: ✅ Performance improved
|
…emote updates (#9652) Co-authored-by: Chris Thoburn <[email protected]>
We encountered a bug when upgrading to 4.13 (see also #9639) where the following series of steps resulted in an unexpected outcome in the deprecated code-path for handling of remoteState updates. We traced this down to an issue that originates when support for graph-diffing was first added in 5.x
Steps to reproduce:
await findRecord (backgroundReload)
This can be more tersely described as
The error occurs because are treating the update to the mutation as an operation on remote state. It will be attempting to find the record added via mutation in the existing remote state of the inverse instead of the local state of the inverse.