From: Christopher Faulet Date: Wed, 24 Apr 2024 08:18:07 +0000 (+0200) Subject: BUG/MEDIUM: peers: Automatically start to learn on local peer X-Git-Tag: v3.0-dev9~63 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3541c5448118df710e8c5d00d8c7ad2a900c0cd3;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: peers: Automatically start to learn on local peer The previous fix (c0b2015aae "BUG/MEDIUM: peers: Don't set PEERS_F_RESYNC_PROCESS flag on a peer") was made due to lack of knowledge on the peers. A local peer, when assigned to learn, must start to learn immediately without sending any request. This happens on reload. Thus, in this case, the PEER_F_LEARN_PROCESS flag must be set with PEER_F_LEARN_ASSIGN flag from the sync task. This patch must only be backported if the above commit is backported. --- diff --git a/src/peers.c b/src/peers.c index 8331068885..55af758535 100644 --- a/src/peers.c +++ b/src/peers.c @@ -3404,7 +3404,7 @@ static void __process_peer_state(struct peers *peers, struct peer *peer) if ((peers->flags & PEERS_RESYNC_STATEMASK) == PEERS_RESYNC_FROMLOCAL && !(peers->flags & PEERS_F_RESYNC_ASSIGN)) { /* assign local peer for a lesson, consider lesson already requested */ - peer->flags |= PEER_F_LEARN_ASSIGN; + peer->flags |= (PEER_F_LEARN_ASSIGN|PEER_F_LEARN_PROCESS); peers->flags |= (PEERS_F_RESYNC_ASSIGN|PEERS_F_RESYNC_PROCESS); peers->flags |= PEERS_F_RESYNC_LOCALASSIGN; }