forked from lei.chen/myxce
fix(ha-bootstrap): register listener with iomgr epoll before election
vote_request_thread connects to peers via SSL. iomgr was started before election but c->ep was only registered with epoll inside cluster_start(), which runs after election. The TCP connect succeeded (kernel accepts it) but SSL_accept was never called server-side, so SSL_connect failed immediately — both vote threads went to deny in <1ms and ctrl-a could never win a quorum. Fix: add cluster_register_listener() that wires c->ep into iomgr's epoll watch. Call it from myapp_run() right after iomgr_start/vtaskmgr_start, before election. cluster_start() still calls iomgr_monitor again (idempotent via EPOLL_CTL_MOD).
This commit is contained in:
parent
6753b364c8
commit
fe37f4d692
3 changed files with 30 additions and 0 deletions
|
|
@ -24,6 +24,7 @@ typedef int (*collect_check_fn_t)(void*);
|
|||
extern int check_controller(void*);
|
||||
extern int cluster_init_phase1(cluster_t*);
|
||||
extern int cluster_open_listener(cluster_t*);
|
||||
extern int cluster_register_listener(cluster_t*);
|
||||
extern int cluster_init_phase2(cluster_t*);
|
||||
extern int cluster_init(cluster_t*);
|
||||
extern int cluster_start(cluster_t*);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue