New test_job_array_fence.c exercises the full Requirement 9.4-9.6 engage-refuse-clear-recover sequence through real production seams: forced array-expansion failure -> fence engages -> promotion refused at a real ha.c gate site -> zero partial elements visible -> a second, independent node's progress is unaffected -> clearing the failure and retrying self-heals the fence and re-opens promotion eligibility. Deliberately drives this through task 3.1's construction-phase (scratch-build) seam rather than the bulk-insert-phase seam: the bulk-insert seam has a known, separately-tested residual gap (an already-inserted element prefix can survive a mid-pass key_add() failure with no key_del to undo it), so asserting "no partial set" against it would misrepresent an already-documented open gap as resolved. That gap remains open and unowned (see tasks.md Implementation Notes) -- Phase 4 delivers the generic halt/fence/gate machinery for it, not the partial-visibility guarantee itself. Task 4.4 of job-array-single-wal-record (Requirements 9.4, 9.5, 9.6). This completes Phase 4 (Live Apply Resource Fence). |
||
|---|---|---|
| .. | ||
| settings | ||
| specs | ||
| steering | ||