forked from lei.chen/myxce
finalize configuration replication
This commit is contained in:
parent
e1517bbf28
commit
fa66d1ba9c
30 changed files with 8867 additions and 1560 deletions
|
|
@ -3544,6 +3544,9 @@ static void on_standby_connected(endpoint_t *ep)
|
|||
pthread_mutex_unlock(&ha->lock);
|
||||
}
|
||||
|
||||
/* Reset failure counter so the next disconnect restarts logging from attempt 1. */
|
||||
ha->peer_connect_fail_count[sctx->peer_idx] = 0;
|
||||
|
||||
/* Record last_push_time before any send so the first heartbeat tick after
|
||||
* connect does not immediately send a redundant NOP (Req 3.3, task 2.2). */
|
||||
{
|
||||
|
|
@ -3639,10 +3642,18 @@ static void ha_connect_to_peer(cluster_t *c, int peer_idx)
|
|||
endpoint_set_on_connected(ep, on_standby_connected);
|
||||
endpoint_set_err_handler(ep, standby_ep_err_handler_primary);
|
||||
|
||||
int n = ++ha->peer_connect_fail_count[peer_idx];
|
||||
int should_log = (n == 1) || (n % HA_CONNECT_LOG_THROTTLE == 0);
|
||||
|
||||
if (should_log)
|
||||
INFO("HA: peer[%d] (%s) not connected — initiating outbound connect (attempt %d)",
|
||||
peer_idx, peer->hostname, n);
|
||||
|
||||
int rc = endpoint_connect(ep, peer->hostname, peer->port);
|
||||
if (rc < 0) {
|
||||
WARN("HA: connect to peer[%d] (%s:%u) failed: %d",
|
||||
peer_idx, peer->hostname, peer->port, rc);
|
||||
if (should_log)
|
||||
WARN("HA: connect to peer[%d] (%s:%u) failed: %d",
|
||||
peer_idx, peer->hostname, peer->port, rc);
|
||||
/* endpoint_fini calls FREEUP(ep->data) which frees sctx — do not
|
||||
* double-free sctx here. */
|
||||
ep->data = NULL;
|
||||
|
|
@ -3754,11 +3765,8 @@ static int primary_heartbeat_fn(void *arg)
|
|||
pthread_mutex_unlock(&ha->lock);
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
INFO("HA: peer[%d] (%s) not connected — initiating outbound connect",
|
||||
i, pcfg->candidates[i].name ? pcfg->candidates[i].name : "?");
|
||||
if (!found)
|
||||
ha_connect_to_peer(c, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue