Repository navigation
Replace shared Rust homes with per-job isolation - #9289
Closed
gunbai-bot[bot] wants to merge 1 commit into
Closed
gunbai-bot[bot] wants to merge 1 commit into
gunbai-bot[bot] wants to merge 1 commit into
Conversation
Contributor
Author
|
Closing in favor of #9275, which establishes the stronger single shared isolation authority and already has capability/refusal coverage. Before #9275 is terminal, its shared |
This was referenced Aug 26, 2026
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.
Summary
CARGO_HOMEandRUSTUP_HOMEbefore setup-rust-toolchain in both required witness jobs and fleet-desired admissiongithub.run_id,github.run_attempt, andgithub.job, so concurrent jobs and reruns cannot share one dispatcher or toolchain store.dagauthoritiesWhy this is the terminal construction
The shared mutable directory has produced at least two distinct filesystem events:
Isolation removes the shared mutation boundary itself, covering both write patterns rather than fitting a retry or detector to either symptom.
Both homes are required.
CARGO_HOMEowns the dispatcher and registry;RUSTUP_HOMEowns installed toolchains. Run ID alone is insufficient because build and floor execute concurrently in one workflow run, and run attempt is required because reruns reuse the run ID. No affected job currently has a matrix coordinate; any future matrix consumer must append its coordinate rather than sharing across matrix members.Retention
These directories live under
RUNNER_TEMP. GitHubs runner-variable contract states that this directory is emptied at the beginning and end of each job, except files the runner account cannot delete: https://docs.github.com/en/actions/reference/workflows-and-actions/variables#default-environment-variables . Rustup and Cargo create these stores as the job principal, so their lifecycle is job-bounded rather than unbounded host accumulation.Stack
This PR is based on #9281 only to make the replacement migration explicit: its first commit deletes that mitigation while adding isolation. #9281 remains incident evidence and should not land as a separate scaffold now that this terminal change exists.
Verification
gunbcviadag/tools/generated_artifact_gate.dag main_wetgit diff --checkcargo fmt --all --check