tests: instrument flaky content-addressed early-cutoff test#1794
Draft
Mic92 wants to merge 2 commits into
Draft
Conversation
early-cutoff.t fails intermittently on 'One downstream build should be cached': the two downstream builds race, and when both finish before either is resolved, neither gets cached. Loop the scenario to reproduce the race in CI and dump per-build state on failure.
Two builds that resolve to the same content-addressed derivation should build it once; the other must be marked cached. The in-memory steps map dedups concurrent resolutions, but its entries are weak and die once the first build finishes. CA floating outputs have no statically-known path, so a later build cannot detect the existing realisation and rebuilds it. Cache each CA derivation's BuildOutput on step success and reuse it when a build resolves to an already-built derivation.
e4828c4 to
e6ea967
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
content-addressed/early-cutoff.tfails intermittently in CI on the "One downstream build should be cached" assertion. The two downstream builds race to completion; when both finish before either is resolved, neither is marked cached.This PR loops the scenario several times per run to make the race reproduce reliably in CI, and dumps per-build state (output paths, cache flags, timings) on failure.
Debugging aid to capture the race — not meant to merge as-is.