From: Louis Scalbert Date: Wed, 12 Feb 2025 12:09:37 +0000 (+0100) Subject: bgpd: fix process_queue when un-hiding X-Git-Tag: docker/10.3.0~13^2~5 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=cec0da3d9b26b718ae8975e0741c6ffac3bcf750;p=mirror%2Ffrr.git bgpd: fix process_queue when un-hiding bgp_process_queue_init() is not called in bgp_create() when leaving the BGP instance hidden state because of the following goto: > if (hidden) { > bgp = bgp_old; > goto peer_init; > } Upon reconfiguration of the default instance, the prefixes are never set into a meta queue by mq_add_handler(). They are never processed for zebra RIB installation and announcements of update/withdraw. Do not delete the BGP process_queue when hiding. Fixes: 4d0e7a49cf ("bgpd: VRF-Lite fix default bgp delete") Signed-off-by: Louis Scalbert (cherry picked from commit 71a3756f2dda272e69727fa416bca12c016d9567) Signed-off-by: Louis Scalbert --- diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 7b60c4fc17..edda82b63c 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -4257,12 +4257,11 @@ int bgp_delete(struct bgp *bgp) bgp_set_evpn(bgp_get_default()); } - if (bgp->process_queue) - work_queue_free_and_null(&bgp->process_queue); - - if (!IS_BGP_INSTANCE_HIDDEN(bgp)) + if (!IS_BGP_INSTANCE_HIDDEN(bgp)) { + if (bgp->process_queue) + work_queue_free_and_null(&bgp->process_queue); bgp_unlock(bgp); /* initial reference */ - else { + } else { for (afi = AFI_IP; afi < AFI_MAX; afi++) { enum vpn_policy_direction dir;