Skip to content

ci: guard-cargo#m5 mounts pinned toolchain, FAIL(ENV) when not pinned (PMAT-6041) - #6045

Closed
noahgift wants to merge 1 commit into
mainfrom
ci/m5-container-rustc-6041
Closed

noahgift wants to merge 1 commit into
mainfrom
ci/m5-container-rustc-6041

Conversation

@noahgift

@noahgift noahgift commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

ci: guard-cargo#m5 mounts the pinned toolchain, fails loud on ENV (PMAT-6041)

ci/m5-container-rustc-6041 @7a48a6496d (w5382), one commit, linear on main 45aa5d1. Gate-class (CI file): DRAFT and unarmed until seat 2 + quorum + arbiter sign.

#6031 x86-main (run 39875925063) went red on m5: empty "container rustc:" and "could not write settings file /home/runner/.rustup/settings.toml: Read-only file system", so rustc in the container resolved to the rustup proxy.

  • ci/sections.yml (~line 1969): m5 resolves the toolchain with readlink -f, mounts it read-only when it lives outside RUSTUP_HOME, and the container step exits FAIL(ENV) naming the resolved rustc when it is not the pinned $TC/bin/rustc.
  • docs/roadmaps/entries/PMAT-6041.yaml: ticket entry (epic 5510).
  • docs/roadmaps/roadmap.yaml: regenerated roadmap.

Checks run by the author: pre-push four green, fat_driver self-test 60/60, roadmap check ok. Caveat: the runner-side cause (pinned toolchain not visible in the container) is a hypothesis the author could not verify; in the local container probe the assertion passes. If wrong, the new FAIL(ENV) line names the real path on the next run.

Refs #6041

keep-open: #6041 stays open until the m5 fix is seen green on a runner.

ont-delta: none no new type, shape or reason

🤖 Generated with Claude Code

…when the container does not run the pinned rustc

#6031 x86-main (run 39875925063) went red on m5 with an empty "container rustc:" and
"could not write settings file /home/runner/.rustup/settings.toml: Read-only file system":
rustc in the container resolved to the rustup proxy. m5 now resolves the toolchain
with readlink -f, mounts it read-only when it lives outside RUSTUP_HOME (a linked
toolchain or a symlink target is otherwise invisible), and the container step exits
FAIL(ENV) naming the resolved rustc when it is not the pinned $TC/bin/rustc.
Refs #6041

PMAT-Ticket: PMAT-6041
PMAT-Batch: BATCH-aprender-m5-6041
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seat 2 (w5018, non-author): APPROVE @7a48a6496d0cacd716b9c2d265c46d7cd3c96771

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seat 1 (aprender-w5404, non-author): APPROVE @7a48a6496d0cacd716b9c2d265c46d7cd3c96771 — gate-class (ci/sections.yml guard-cargo#m5). Read the full diff: tc is resolved with readlink -f; a toolchain outside RUSTUP_HOME gets its own read-only mount (case table checked: under ru -> no extra mount, outside -> -v tc:tc:ro; empty array is safe under set -u via the ${tcm[@]+...} idiom); the container now fails with FAIL(ENV) if rustc does not resolve to the pinned $TC/bin/rustc, so the empty 'container rustc:' symptom from run 39875925063 becomes a loud named failure instead of a silent proxy fallthrough. sections.yml parses (15 jobs). EMG-7 GREEN (1 commit, one PMAT-Ticket, 0 merges); roadmap.yaml +19 matches the PMAT-6041 entry; privacy scan clean. Not measured: a real m5 run on the runner (the fix is only proven when the m5 step goes green), clippy/hooks. Needs a second non-author seat, planted quorum and arbiter sign (gate-class).

@noahgift
noahgift marked this pull request as ready for review October 23, 2026 01:08
@github-actions

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=6045 head=7a48a6496d0cacd716b9c2d265c46d7cd3c96771 verdict=REFUSE class=Q1 arm_rc=1

Shadow mode: this records a verdict and merges nothing. A refusal
to arm is not a block (§13 adds zero rows to §7) — the pull request is
exactly as green as it was.

@noahgift
noahgift marked this pull request as draft October 23, 2026 01:42
@noahgift
noahgift marked this pull request as ready for review October 23, 2026 01:43
@noahgift

Copy link
Copy Markdown
Member Author

Snapshot before close: head 7a48a64; last run id/name/status: 39885595256 CI completed/failure. Superseded by #6063 (cop order, aprender-57; arbiter OK). Branch kept.

@noahgift noahgift closed this Oct 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant