feat(job-array-single-wal-record): gate promotion on the live apply fence

Threads !persist_apply_resource_fenced(&c->persist) as a required
conjunct into both existing promotion-eligibility call sites in ha.c:
the periodic fence-release check (promotion_fence_timeout_fn) and the
election-time check (raft_cb_become_leader). A node with the fence
engaged is refused promotion at both points; once it self-clears
(task 4.2), the node is eligible again with no other action.

Task 4.3 of job-array-single-wal-record (Requirements 9.4, 9.5).
This commit is contained in:
Rongsong Shen 2026-07-15 04:21:35 +00:00
parent b47cc660ba
commit 8cb8c25d4d
4 changed files with 288 additions and 22 deletions

View file

@ -95,7 +95,7 @@
- _Requirements: 9.4, 9.5_
- _Boundary: Live Apply Resource Fence_
- [ ] 4.3 Gate promotion on the live fence
- [x] 4.3 Gate promotion on the live fence
- Add the new fence state as a required condition at both existing points where a node's eligibility for promotion is decided (the periodic release check and the election-time check)
- Observable: a node with the fence engaged is refused promotion at both points; once the fence clears, the node is eligible again without any other change
- _Requirements: 9.4, 9.5_