From: Emeric Brun Date: Wed, 28 Apr 2021 07:49:33 +0000 (+0200) Subject: BUG/MEDIUM: peers: register last acked value as origin receiving a resync req X-Git-Tag: v2.4-dev18~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=437e48ad9244eaea63881b6c8a86a380c4eecc23;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: peers: register last acked value as origin receiving a resync req Receiving a resync request, the origins to start the full sync and to reset after the full resync are mistakenly computed based on the last update on the table instead of computed based on the the last update acked by the node requesting the resync. It could result in disordered or missing updates pushing to the requester This patch sets correctly those origins. This patch should be backported on all supported branches ( >= 1.6 ) --- diff --git a/src/peers.c b/src/peers.c index 295b0eccf8..cff5696b82 100644 --- a/src/peers.c +++ b/src/peers.c @@ -2068,7 +2068,7 @@ static inline int peer_treat_awaited_msg(struct appctx *appctx, struct peer *pee NULL, &msg_head[1], peers->local->id, peer->id); /* prepare tables for a global push */ for (st = peer->tables; st; st = st->next) { - st->teaching_origin = st->last_pushed = st->table->update; + st->teaching_origin = st->last_pushed = st->update; st->flags = 0; }