-
Notifications
You must be signed in to change notification settings - Fork 302
Closed as not planned
Closed as not planned
Copy link
Labels
QA/dev-automationIssues that engineers have written automation around so QA doesn't have look at thisIssues that engineers have written automation around so QA doesn't have look at thisarea/server-side-paginationkind/enhancement
Milestone
Description
This is a backport issue for #15414, automatically created via GitHub Actions workflow initiated by @richard-cox
Original issue body:
Scenario 2 - Stale cache in replicate that handles http request
- ui watches a resource
- ui receives a resource.changes socket message provided by up-to-date replicate
A - ui makes http request.
- it's handled by stale replica
B - response contains stale resources
- it's handled by stale replica
- ui shows stale resources, not the ones that caused the resource.changes event
Solution: Following rancher/rancher#51254 the revision will be included in resource.changes events. The UI will then include this in the resulting http request. If this is received by a stale replicate it will reject the request. The UI will then try again (but backoff if there are failures)
Scenario 3 - Old revision returned from replicate with stale cache, request also handled by replica with stale cache
This is a gap in scenario 2
- ui makes a http request & watches the resource for changes
- ui receives a resource.changes socket message provided by lagging replicate
A- for example revision 5
- ui makes http request with the lagging revision (5)
- it's handled by up-to-date replica
B - response contains latest revision (10)
- it's handled by up-to-date replica
- ui receives a resource.changes socket message provided by lagging replicate
A- for example revision 6
- ui makes http request with the lagging revision (5)
- it's handled by lagging replica
A - response contains stale data from 6 (10 has not made it to replica 'A')
- it's handled by lagging replica
Solution: When the UI receives a resource.changes message it will check that it's revision is higher than the revision the UI has locally (assigned from the previous http request)
Metadata
Metadata
Assignees
Labels
QA/dev-automationIssues that engineers have written automation around so QA doesn't have look at thisIssues that engineers have written automation around so QA doesn't have look at thisarea/server-side-paginationkind/enhancement