Repository navigation
feat(validation): nightly heal sweep with source-bound tools - #132
Merged
Merged
Conversation
Run every runnable heal.* catalog case (71: procedure-ready minus the 13 operator-assisted environment scenarios) nightly against the newest successful nightly candidate, like the other suites. Each run dispatches a validation-tools build on rustfs/rustfs bound to the exact candidate source SHA, waits, downloads the tools/native/shared artifacts, verifies the inspector binding, then executes the cases via the same run_validation_case.sh entry as the interactive job. The 13 environment scenarios are reported as BLOCKED (they need operator resources by design); a per-case 900s timeout bounds the run.
The native and manager-native tool builds are pinned to reviewed reference candidates (REVIEWED_CANDIDATES allowlists in native_regressions and race contracts) and hard-fail on any other source SHA — verified on run 41650347338 where both jobs failed for the current nightly. Dispatch the tools build with shared-only; the inspector and shared encoder build for any candidate. Exclude the candidate-pinned executors (6 races, A09 nolock, I05/F07 and the C11/J02 diagnostics) alongside the 13 environment scenarios: 60 cases run unattended. Record each case's authoritative verdict from its result JSON — self-reported BLOCKED stays informational; only FAIL/INFRA_ERROR/TIMEOUT keep the sweep red.
Collaborator
Author
Design correction after live verificationDispatched a real validation-tools build for the current nightly candidate (run 41650347338):
Follow-up inspection of the executors showed the same allowlists gate the case runners: Branch updated (d180d62):
|
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.
Why
The catalog's 85 heal cases never ran unattended: they need validation-tools artifacts (bitrot shard verifiers, heal metadata inspector, native regressions) compiled from the exact candidate source SHA, which only the interactive validation job wired up. This brings heal into the nightly fold like every other suite — closing the last coverage gap from #113's catalog.
What it does (nightly 07:00 UTC + manual dispatch)
rustfs-validation-tools.ymlon rustfs/rustfs withcandidate_sha+auto_testing_sha+ all three build flags, poll to completion (~20-40 min)tools/native/sharedartifacts and verify the inspector binding to the candidate (inspector.py --candidate— the same identity gate the interactive job uses)run_validation_case.shentry, with per-case 900 s timeout and fleet hygiene between casesNotes
skip_toolsdispatch input reuses the newest existing tools run for debuggingVerification plan
Dispatch from this branch with
limit: 5for a smoke pass, then a full run.