You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
parity_receipt_denominator.sh reads git's refusal as 0 receipts on container runners — a git failure must be ENV exit 2, never a count #3682
Found in the 0.69 batch #3669: workspace-test shard 3/3 on gx10-pool1 (job 106269529629) failed aprender-contracts-cli --test ont4c3_parity_receipts::the_committed_tree_agrees_with_its_own_denominator with "EXPECTED_RECEIPTS says 7; the tree holds 0".
Cause
scripts/parity_receipt_denominator.sh:17 listed the receipt universe with (cd "$root" && git ls-files … 2>/dev/null | sort -u) inside a process substitution. On the docker runners (gx10, yoga), git refuses the bind-mounted checkout ("detected dubious ownership", exit 128). The 2>/dev/null discarded that message, and nothing reads a process substitution's exit status, so the loop saw an empty universe and reported 0 receipts. The failure is per-host: host runners pass and containers fail. Same class as aprender#3581.
done_when
The listing is git -c safe.directory="$root" -C "$root" ls-files …, and git's stderr is no longer discarded.
A git failure makes the script exit 2 (ENV) with a message naming git. It is never a count of 0. verify propagates that status instead of collapsing it to 1.
A self-test row puts a git stub on PATH that exits 128 with the dubious-ownership message. It requires exit 2 and a message naming git, and it requires that the output NOT contain "holds 0".
Mutation: with the pre-fix count_and_check restored, that row goes RED.
Activity
fix(parity): the denominator read git's refusal as "0 receipts" on co…
audit(PMAT-3682): quorum receipt, 3/3 on 2237f4b (base c0dcf20)
fix(parity): a runner without python3 is UNMEASURED, not "the tree ho…