CI queue guard: the FIXED wrapper has never reached the hosts that run it (installed artifact is the pre-fix blob) #1063

Open
opened 2026-08-05 21:53:35 +00:00 by Mos · 0 comments
Contributor

Summary

#1019's defect was fixed in this repository on 2026-08-01 by 58b971ab (#1032) and the fix has
never reached the machine that runs it.
#1019 is closed; the defect it describes is live.

Measured

repo origin/main   packages/mosaic/framework/tools/git/ci-queue-wait.sh
                   `python3 - <<` parsers: 0   ·   `python3 -c`: 3   ·   CANNOT_ASSERT/exit 75: 5
INSTALLED ~/.config/mosaic/tools/git/ci-queue-wait.sh
                   sha256 19cda2f7009c  ==  the blob at `58b971ab^` (the fix's PARENT)
                   `python3 - <<` parsers: 2   ⇐ the pre-fix code

The installed wrapper is byte-identical to the version immediately before the fix. On that code a
heredoc binds stdin to the program text, json.load(sys.stdin) hits EOF, the guard prints unknown and
exits 0 — on every invocation, every branch, every repo, both platforms.

Why this is filed separately

  • #1019 is CLOSED. A closed issue describing a live defect is not tracked by anything.
  • The code fix is not the deployment. PR #1062 merged the harness determinism fix; it does not ship
    the wrapper to any host.
  • The sync path works. Seeding a temp target with the stale blob and running MOSAIC_SYNC_ONLY=1
    brought it to main's hash — so this is not a manifest exclusion and not a sync bug. Package
    metadata read 0.0.48 while the source changed, so the published 0.0.48 artifact is the pre-fix blob
    and no successful 0.0.49 update+reseed ever reached this host. .install-manifest.json is absent
    at all three plausible paths.

Observed consequence

The guard returned state=unknown while Woodpecker pipeline 2214 was running; a careful seat
distrusted the string, enumerated Woodpecker directly, and waited. The safe behaviour was a property of
the seat, not of the tool.
It also printed state=unknown during the merge of #1062 itself.

Not in scope

  • Fixing ci-queue-wait.sh — already fixed in main.
  • The C1 installer work. This may be a C1 input (a host can sit on an exact pre-fix framework tool,
    unable to state its source revision or prove a successful update) but this issue is the deployment gap,
    not the detector.

Done when

A host running the fleet can be shown to carry main's ci-queue-wait.sh, and the mechanism that left it
stale is identified.

## Summary `#1019`'s defect was fixed in this repository on **2026-08-01** by `58b971ab` (#1032) and **the fix has never reached the machine that runs it.** `#1019` is **closed**; the defect it describes is **live**. ## Measured repo origin/main packages/mosaic/framework/tools/git/ci-queue-wait.sh `python3 - <<` parsers: 0 · `python3 -c`: 3 · CANNOT_ASSERT/exit 75: 5 INSTALLED ~/.config/mosaic/tools/git/ci-queue-wait.sh sha256 19cda2f7009c == the blob at `58b971ab^` (the fix's PARENT) `python3 - <<` parsers: 2 ⇐ the pre-fix code The installed wrapper is **byte-identical to the version immediately before the fix**. On that code a heredoc binds stdin to the *program text*, `json.load(sys.stdin)` hits EOF, the guard prints `unknown` and **exits 0 — on every invocation, every branch, every repo, both platforms.** ## Why this is filed separately - **`#1019` is CLOSED.** A closed issue describing a live defect is not tracked by anything. - **The code fix is not the deployment.** PR #1062 merged the *harness determinism* fix; it does not ship the wrapper to any host. - **The sync path works.** Seeding a temp target with the stale blob and running `MOSAIC_SYNC_ONLY=1` brought it to `main`'s hash — so this is **not** a manifest exclusion and **not** a sync bug. Package metadata read `0.0.48` while the source changed, so the published `0.0.48` artifact *is* the pre-fix blob and no successful `0.0.49` update+reseed ever reached this host. `.install-manifest.json` is **absent** at all three plausible paths. ## Observed consequence The guard returned `state=unknown` while Woodpecker pipeline **2214** was *running*; a careful seat distrusted the string, enumerated Woodpecker directly, and waited. **The safe behaviour was a property of the seat, not of the tool.** It also printed `state=unknown` during the merge of #1062 itself. ## Not in scope - Fixing `ci-queue-wait.sh` — already fixed in `main`. - The C1 installer work. **This may be a C1 input** (a host can sit on an exact pre-fix framework tool, unable to state its source revision or prove a successful update) **but this issue is the deployment gap, not the detector.** ## Done when A host running the fleet can be shown to carry `main`'s `ci-queue-wait.sh`, and the mechanism that left it stale is identified.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1063