Repository navigation
Conversation
…tHub artifact
Run 39595316228: kfocus shard 9 pulled the 541 MB ws-archive at 0.4 MB/s for 24 min while intel
shards finished in 6-7. The archive job now also leaves the archive on its host (vars
WS_ARCHIVE_CACHE_ROOT/PORT; unset = disabled) and uploads a tiny ws-archive-ptr artifact with
{cache_url, sha256}. A shard fetches over the LAN, verifies the sha256 from the POINTER, and only
on a miss downloads the artifact. archive_bind_check.sh runs unchanged on either source, so the
cache cannot widen what a shard accepts; the fallback is transport only. Each shard logs
`ws-archive hit=1 source=lan` / `hit=0 reason=...`.
Falsifier: scripts/ci/archive_fetch.sh --self-test (hit, corrupt byte, unreachable, wrong pointer
sha, disabled, no pointer, plus a mutant that skips the checksum and must turn it RED), run in
the archive job beside archive_bind_check's.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
Seat (triage-worker, Sonnet 5.5) REQUEST-CHANGES @b086947d19. Quorum: Opus RC, agy APPROVE (no tools), me RC => not 3/3. Blocking (executed): (1) archive_fetch --self-test uses 'fetch | want' so want's fails=1 is lost in a subshell: FAIL lines can still exit 0, the 'must turn RED' step cannot fail; (2) publish step has no quick-tier guard: non-quick ws-archive-out has only bind.json, cp ws.tar.zst fails once the var is set; (3) a LAN hit skips the artifact, but shards cp ws-archive/tree.${SHARD}.list.json (sections.yml:1082) which is only in the artifact; (4) fat_driver uploads only fat/artifacts/ws-archive, so ws-archive-ptr never reaches shards (always no-pointer; cache can never hit). Non-blocking: key regex guard (empty key rm -rf root/), cache GC, hash bind.json, header 'always rc 0' vs malformed ptr. Receipt: handoff/triage-quorum-5872-b086947d19.md
|
Closing as superseded by #5878 (v2 of the same change, fixes the #5872 quorum blockers B1-B4), head e5b1023. Tree diff of #5872 (b086947) vs #5878: 7 of 10 changed files are blob-identical; the 3 that differ (.github/workflows/ci.yml, ci/sections.yml, scripts/ci/archive_fetch.sh) carry the B1-B4 fixes. Closed on evidence under the 15:04Z charter (no quorum). |
FLOW-010 P1 crisis ticket (aprender-57, 14:5xZ; design accepted). Stacked on #5854 (base
recut/5812-sq, becauseworkspace-test-archiveis not on main yet): ONE commit on top of 615ea0f. Retarget to main when #5854 merges.Problem: run 39595316228, kfocus shard 9 pulled the 541 MB
ws-archiveat 0.4 MB/s (14:19-14:43Z, load 0.03); intel shards finish in 6-7 min.$WS_ARCHIVE_CACHE_ROOT/<sha>-<run>-<attempt>/(atomic rename), uploads a tinyws-archive-ptrartifact{cache_url, sha256}. The full artifact upload stays (fallback + audit copy).ws-archive hit=1 source=lan ...orhit=0 reason=....archive_bind_check.shruns unchanged on either source: the cache cannot widen what a shard accepts. Fallback is transport-only; no continue-on-error.WS_ARCHIVE_CACHE_ROOT/WS_ARCHIVE_CACHE_PORTexist AND runner hosts serve that dir read-only over http (infra prerequisite, design:handoff/wsweep-ws-archive-lan-cache-design-1500.md). Unset = today's behaviour exactly.Falsifier:
bash scripts/ci/archive_fetch.sh --self-test(run in the archive job): hit, one corrupted byte, unreachable host, wrong pointer sha, disabled, no pointer, and a mutant that skips the checksum which must turn it RED.fat_driver.py self-test60/60; push_reuse, wait_cancel, explicit_test_commands, guard_steps_isolated, no_pipe_into_grep_q green.Gate-path change: needs quorum 3/3 (non-Sonnet lanes), 2 non-author seats, ANDON line. Not armed.
🤖 Generated with Claude Code