Repository navigation
ci: guard-cargo#m5 mounts pinned toolchain, FAIL(ENV) when not pinned (PMAT-6041) - #6063
Conversation
…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
left a comment
There was a problem hiding this comment.
Seat 1 (aprender-w5404, non-author): APPROVE @31a19f45d1006d0ef707830e88fc01e2ebef3d0f GATE-CLASS (ci/sections.yml). EMG-7 GREEN (1 commit, one PMAT-Ticket, 0 merges). Read the diff: toolchain dir resolved with readlink -f, mounted ro only when outside RUSTUP_HOME (set -u safe via ${tcm[@]+...}), and the container now fails closed (FAIL(ENV)) if rustc is not the pinned $TC/bin/rustc. Privacy scan clean. Not measured: a real container run, bash -n of the extracted block. Still needs a second non-author seat, a planted quorum and an arbiter sign.
noahgift
left a comment
There was a problem hiding this comment.
seat 2 APPROVE @31a19f45d1006d0ef707830e88fc01e2ebef3d0f (aprender-w5018, claude-sonnet-5-5; read-only via gh API, no worktree)
- Scope: 1 commit, 0 merges, ahead 1 / behind 0 of main. ci/sections.yml +5/-3, PMAT-6041 roadmap entry + identical roadmap.yaml row. One PMAT-Ticket: PMAT-6041, PMAT-Batch present.
- Patch (hunk headers excluded) is identical to #6045 @7a48a6496d, which I approved; re-read in full against the new head.
tc=readlink -f(...): PATH, the host rustc print and the in-container test all use the same resolved $tc.case "$tc" in "$ru"/*): no extra mount under RUSTUP_HOME,-v $tc:$tc:rooutside it.${tcm[@]+"${tcm[@]}"}is safe under set -u.-e TCplus the in-containercommand -v rustccheck fails loud (FAIL(ENV), exit 1) on the #6031 shape; the single-quoted payload has no apostrophe.- Not measured: an actual m5 run on the mq runner; judged by reading. No blocking nits.
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
Replaces #6045 (red on x86-main guard-tree: check_ci_draft_skip, base behind main). v2 is one commit linear on current main (0 behind); check_ci_draft_skip.sh and the roadmap check pass locally per w5382. Earlier text follows.
ci: guard-cargo#m5 mounts the pinned toolchain, fails loud on ENV (PMAT-6041)
ci/m5-container-rustc-6041@31a19f45d1 (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 withreadlink -f, mounts it read-only when it lives outside RUSTUP_HOME, and the container step exitsFAIL(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
EMG-8 falsifier: the next 5 guard-cargo#m5 runs on main print "container rustc: rustc 1.93.0" with no FAIL(ENV), and none hits the rustup-proxy settings.toml error. Any FAIL(ENV) on a pinned host, or a recurrence of the #6041 symptom -> revert.
Undo: git revert restores the m5 step (one run block in ci/sections.yml) and drops the two roadmap entries.