-
Notifications
You must be signed in to change notification settings - Fork 7
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
Upstream inconsistent graph state fix #58
Closed
Closed
Commits on May 2, 2024
-
solver: fix printing progress messages after merged edges
When different LLB vertexes (eg. parallel requests referencing local sources from different sessions) generate same cache keys during solve they are merged together into a single operation. Currently, when this happened the progress for the vertex that was dropped got lost. This fixes this case by adding the progressWriter of the redirected vertex as a target to the source one. This should also work with multiple levels of merged edges, just multiple nested multiwriters as well. Signed-off-by: Tonis Tiigi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 194d14c - Browse repository at this point
Copy the full SHA 194d14cView commit details -
solver: prevent edge merge to inactive states
Before this, it was possible for an edge merge to happen to a target edge/state that is no longer in the actives map, e.g. 1. Job A solves some edges 2. Job B solves some edges that get merged with job A's edges 3. Job A is discarded 4. Job C solves some edges that get merged with job B's edges, which recursively end up merging to job A's, which no longer exist in the actives map. While this doesn't always result in an error, given the right state and order of operations this can result in `getState` or `getEdge` being called on the "stale" edges that are inactive and an error. E.g. if a stale dep transitions from desired state `cache-fast` to `cache-slow`, the slow cache logic will call `getState` on it and return a `compute cache` error. I also *suspect* this is the same root cause behind `inconsistent graph state` errors still seen occasionally, but have not repro'd that error locally so can't be 100% sure yet. The fix here updates `state.setEdge` to register all the jobs in the source edge's state with the target edge's state. This works out because: 1. edges that are the target of a merge will not have their state removed from the actives map if only the original job creating them is discarded 1. those edges are still removed eventually, but only when all jobs referencing them (now including jobs referencing them via edge merges) are discarded Signed-off-by: Erik Sipsma <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0f03167 - Browse repository at this point
Copy the full SHA 0f03167View commit details -
solver: recursively add merge source jobs to target and ancestors
Signed-off-by: Erik Sipsma <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4dfd605 - Browse repository at this point
Copy the full SHA 4dfd605View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5dee576 - Browse repository at this point
Copy the full SHA 5dee576View commit details
Commits on May 8, 2024
-
Configuration menu - View commit details
-
Copy full SHA for b6cea87 - Browse repository at this point
Copy the full SHA b6cea87View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3a830dc - Browse repository at this point
Copy the full SHA 3a830dcView commit details
Commits on May 9, 2024
-
Configuration menu - View commit details
-
Copy full SHA for aa44507 - Browse repository at this point
Copy the full SHA aa44507View commit details
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.