Two $minFreeGb assignments with different values, and the gate pinning them matches whole-file so it only ever sees the first — the Windows reclaim can never fire #193
Labels
No labels
code-review
correctness
dos
performance
security
severity/high
severity/low
severity/medium
tech-debt
Kind/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
h-dv/code-index#193
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found during close-out verification and confirmed at source. This is why the Windows leg cannot recover on its own, and it is #178's class occurring inside the fix for #179.
Measured
The gate meant to pin these:
It searches the whole file for
$minFreeGb, finds= 40at line 150, and is satisfied. The= 20at line 456 is invisible to it.The consequence, observed twice
The pre-flight refuses below 40 GB. The reclaim fires only below 20 GB. Both dispatched Windows runs ended at exactly 20 GB free — and
20 < 20is false, so the reclaim did not fire, and by construction never can from that state. The volume sits in a band where the job refuses to start and the automated recovery declines to act, which is the worst of both.That also explains a result previously attributed to something else: the earlier report that "the prune found 0.0 GB stale" is true but not the whole story — even had there been stale bytes, the threshold that gates the reclaim was never crossed.
Two defects, and they need separating
containssatisfied by the first occurrence, where the hazard lives in the second. Eleven population gates were audited this week and eleven were confirmed vulnerable; this is the twelfth, in a file written after that audit. Fix it the way the others were fixed — grade every assignment of the name, not the first — and reuse the shared lexer atcrates/test-support/src/source.rsrather than writing anothercontains.What must NOT be done
Verification owed
The mutation that matters: change the second assignment only and confirm the gate goes RED. If it stays green, the fix is not done. Note that this change is unverifiable except by dispatch — the Windows runner is the only place this executes.
Related
#179 (the pre-flight, whose measured floor is correct), #178 and #180 (the gate-blindness class), #169 (masked CI steps, same file).
🤖 Generated with Claude Code
https://claude.ai/code/session_01K1zj5VcFJvJt3pQxe9259K
FIXED in
38ccbd2, merged asa3f2218.There is now one
$minFreeGbassignment (ci-windows.yml:155), and the gate that pins it sees every assignment rather than matching whole-file and stopping at the first. That was the actual defect this issue named: a gate matching on a shape that a second occurrence could hide behind.Closing.