From 40289934f1b07acf934f26aec63ed523e6889a1d Mon Sep 17 00:00:00 2001 From: Philippe Guibert Date: Wed, 24 Jan 2018 19:06:06 +0100 Subject: [PATCH] zebra: fix assert mpls when terminating zebra The assert appears in zebra_mpls.c when checking default zebra_vrf. It appears that when the mpls entries are flushed, it gets the default vrf which is already flushed by vrf_terminate() function. In order to avoid that assert to trigger a crash, the mpls flush is called before vrf termination. Signed-off-by: Philippe Guibert --- zebra/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zebra/main.c b/zebra/main.c index 3353290816..9cad913f4b 100644 --- a/zebra/main.c +++ b/zebra/main.c @@ -138,6 +138,8 @@ static void sigint(void) if (zvrf) SET_FLAG(zvrf->flags, ZEBRA_VRF_RETAIN); } + if (zebrad.lsp_process_q) + work_queue_free(zebrad.lsp_process_q); vrf_terminate(); ns_walk_func(zebra_ns_disabled); @@ -149,8 +151,6 @@ static void sigint(void) list_delete_and_null(&zebrad.client_list); work_queue_free(zebrad.ribq); - if (zebrad.lsp_process_q) - work_queue_free(zebrad.lsp_process_q); meta_queue_free(zebrad.mq); frr_fini(); -- 2.39.5