feat(ha-prevote): rewire failover triggers through PreVote, defer destructive step (task 4.2)
ha_on_primary_ctrl_fd_rdhup + liveness_poll_fn now begin a PreVote round via ha_begin_failover -> ha_start_prevote_async instead of electing directly; WAL truncate + CTRL_ELECTING deferred to PreVote WON (ha_enter_real_election). Connection teardown + config-less voter guard preserved at the trigger. ha_on_heartbeat_received cancels an in-progress round and re-attaches as standby with no term change. Single-node immediate-WON synchronously enters the real election. PreVote now live; full controller suite 563 pass / 0 fail; bug-339/340 preserved. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7e19bf6110
commit
b765fc4705
6 changed files with 492 additions and 124 deletions
|
|
@ -50,6 +50,7 @@ extern void test_ha_connection_reuse(void);
|
|||
extern void test_ha_rdhup_integration(void);
|
||||
extern void test_ha_liveness(void);
|
||||
extern void test_ha_prevote(void);
|
||||
extern void test_ha_failover_prevote(void);
|
||||
extern void test_commit_engine(void);
|
||||
extern void test_commit_barrier_rollout(void);
|
||||
extern void test_commit_barrier_reply(void);
|
||||
|
|
@ -176,6 +177,7 @@ int main(int argc, char* argv[])
|
|||
TEST(test_ha_rdhup_integration);
|
||||
TEST(test_ha_liveness);
|
||||
TEST(test_ha_prevote);
|
||||
TEST(test_ha_failover_prevote);
|
||||
TEST(test_commit_engine);
|
||||
TEST(test_commit_barrier_rollout);
|
||||
TEST(test_commit_barrier_reply);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue