fix(election-iomgr-refactor): correct task 2.4 review findings
- CRITICAL: single-node shortcircuit enters CTRL_PRIMARY_COMMITTING (not CTRL_PRIMARY directly); phase2 transition deferred to task 4.x - CRITICAL: add n_peers==0 guard in ha_elect_evaluate_and_signal to prevent votes[0] out-of-bounds access - HIGH: wire client_ssl_ctx after endpoint_connect for outgoing votes - HIGH: add timeout_ctx field to ha_elect_ctx_t for task 4.x cancel - HIGH: clarify vote_ep_err_handler ownership (no premature free of vctx; deferred to ha_election_cleanup in task 5.1) - Tests updated: single-node shortcircuit asserts COMMITTING not PRIMARY
This commit is contained in:
parent
e50afd02f6
commit
543981c505
3 changed files with 80 additions and 13 deletions
|
|
@ -92,6 +92,10 @@ typedef struct {
|
|||
int done_posted; /* Guard: non-zero once sem_post(&done) has been called */
|
||||
pthread_mutex_t lock; /* Protects votes_granted/n_replied/max_resp_tag/max_resp_lsn/result */
|
||||
sem_t done; /* Startup thread blocks; dispatch posts when done */
|
||||
/* Fix 4 (HIGH): pointer back to the election_timeout_ctx_t so that task 4.1
|
||||
* (quorum-reached path) can set timeout_ctx->cancelled = 1 to cancel the
|
||||
* watchdog. Set by ha_start_election_async after scheduling the timeout. */
|
||||
void *timeout_ctx; /* election_timeout_ctx_t*; NULL until watchdog scheduled */
|
||||
ha_vote_entry_t votes[]; /* C99 flexible array: n_peers-1 entries */
|
||||
} ha_elect_ctx_t;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue