BUG/MINOR: peers: Wrong "new_conn" value for "show peers" CLI command.

This counter could be hugely incremented by the peer task responsible of managing
peer synchronizations and reconnections, for instance when a peer is not reachable
there is a period where the appctx is not created. If we receive  stick-table
updates before the peer session (appctx) is instantiated, we reach the code
responsible of incrementing the "new_conn" counter.
With this patch we increment this counter only when we really instantiate a new
peer session thanks to peer_session_create().

May be backported as far as 2.0.
This commit is contained in:
Frdric Lcaille 2021-01-18 15:14:39 +01:00 committed by Willy Tarreau
parent ed84d84a29
commit 2b0ba54ddb

View File

@ -2807,6 +2807,7 @@ static struct appctx *peer_session_create(struct peers *peers, struct peer *peer
struct session *sess;
struct stream *s;
peer->new_conn++;
peer->reconnect = tick_add(now_ms, MS_TO_TICKS(PEER_RECONNECT_TIMEOUT));
peer->heartbeat = TICK_ETERNITY;
peer->statuscode = PEER_SESS_SC_CONNECTCODE;
@ -2931,7 +2932,6 @@ static struct task *process_peer_sync(struct task * task, void *context, unsigne
/* reschedule task for reconnect */
task->expire = tick_first(task->expire, ps->reconnect);
ps->new_conn++;
}
/* else do nothing */
} /* !ps->appctx */