test(raft-ha-core-safety): fix 2 stale tests surfaced by first full-suite ASAN sweep (task 7.1)

A full 69-group sweep of controller_unit_test (this spec's harness had
never been run end-to-end before) found 2 deterministic failures,
both test-only staleness against already-shipped, already-approved
production behavior from earlier in this same spec:

- test_ha_vote_gate: test_pre_vote_catch_up_denies asserted the
  pre-task-5.3 unconditional in_catch_up PreVote deny. Task 5.3
  (bf88681) deliberately gated that deny on primary_ctrl_fd>=0 &&
  ha_heartbeat_is_fresh to fix a real round-4 election-stall — this
  test's exact scenario (stale heartbeat, primary_ctrl_fd=-1) is the
  case 5.3 intentionally flipped to grant. Split into
  test_pre_vote_catch_up_grants_when_primary_unreachable (matches the
  current contract) and test_pre_vote_catch_up_denies_while_primary_live
  (preserves the original protective intent, correctly scoped).

- test_egress_filter: test_live_submit_tags_submit_lsn called the
  JOB_NEW persist_job_hook_fun AFTER_EVENT hook directly, but task 5.9
  (15be5d9, bug-1306 fix) made that hook's WAL_MODE_WAIT branch
  notify-only, moving the real WAL append + commit barrier into
  persist_submit_wal_and_commit(). 5.9 relocated 4 equivalent tests in
  test_persist_hooks.c but missed this one. Now drives
  persist_submit_wal_and_commit() directly, mirroring that pattern.

No production code changed. Full 69-group suite: 0 Failures, 0 ASAN
reports (independently reproduced 3x: initial sweep, implementer,
reviewer).
This commit is contained in:
Rongsong Shen 2026-07-01 14:31:26 +00:00
parent 9344b8ed60
commit 7eefe769a3
3 changed files with 91 additions and 38 deletions

View file

@ -195,7 +195,7 @@
- _Depends: 2.4, 3.2, 4.2_
- [ ] 7. Validation: regression and acceptance soak gate
- [ ] 7.1 Full controller suite under ASAN with the new harness green
- [x] 7.1 Full controller suite under ASAN with the new harness green
- Build and run the full controller unit suite under ASAN (suite-by-suite if the aggregate hits the known 300s cap); fix any regression from the ingest/persist/election changes
- Observable completion: the full suite is green under ASAN and every `test_ha_core_safety` case passes with no ASAN errors
- _Requirements: 7.4_