summaryrefslogtreecommitdiffstats
path: root/zebra
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2022-08-11 20:59:17 +0200
committerDonald Sharp <sharpd@nvidia.com>2022-08-11 22:31:28 +0200
commit86c4fdfac8feef6766615a5687c1aff560c99e23 (patch)
treeac8afb430d5661c47c80429f73d940930b30c62c /zebra
parentMerge pull request #11778 from AbhishekNR/ttable_mroute (diff)
downloadfrr-86c4fdfac8feef6766615a5687c1aff560c99e23.tar.xz
frr-86c4fdfac8feef6766615a5687c1aff560c99e23.zip
zebra: Fix crash in shutdown w/ pw thread still running
I am seeing the zebra_pw_install_retry timer thread crashing on shutdown The shutdown of the timer is only in an if () { ... } else if Let's just always shut it down. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'zebra')
-rw-r--r--zebra/zebra_pw.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/zebra/zebra_pw.c b/zebra/zebra_pw.c
index 6dde513f4..be089fc75 100644
--- a/zebra/zebra_pw.c
+++ b/zebra/zebra_pw.c
@@ -101,13 +101,15 @@ void zebra_pw_del(struct zebra_vrf *zvrf, struct zebra_pw *pw)
if (pw->status == PW_FORWARDING) {
hook_call(pw_uninstall, pw);
dplane_pw_uninstall(pw);
- } else if (pw->install_retry_timer)
- THREAD_OFF(pw->install_retry_timer);
+ }
+
+ THREAD_OFF(pw->install_retry_timer);
/* unlink and release memory */
RB_REMOVE(zebra_pw_head, &zvrf->pseudowires, pw);
if (pw->protocol == ZEBRA_ROUTE_STATIC)
RB_REMOVE(zebra_static_pw_head, &zvrf->static_pseudowires, pw);
+
XFREE(MTYPE_PW, pw);
}
@@ -230,7 +232,6 @@ static void zebra_pw_install_retry(struct thread *thread)
{
struct zebra_pw *pw = THREAD_ARG(thread);
- pw->install_retry_timer = NULL;
zebra_pw_install(pw);
}