From c941fcbc783bc83461422a3f975d24a5c0ef6a77 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Tue, 20 Jul 2021 19:08:12 -0700 Subject: [PATCH] session: fix unlisten rpc barrier release Type: fix Signed-off-by: Florin Coras Change-Id: I9301fbbcd611033b4b6ad5313edbc66840f5bb3a --- src/vnet/session/session_node.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c index 8817b08f3d2..b8b5ce2d8de 100644 --- a/src/vnet/session/session_node.c +++ b/src/vnet/session/session_node.c @@ -401,8 +401,6 @@ session_mq_unlisten_rpc (session_unlisten_msg_t *mp) sh = mp->handle; context = mp->context; - vlib_worker_thread_barrier_sync (vm); - app = application_lookup (mp->client_index); if (!app) return; @@ -411,15 +409,18 @@ session_mq_unlisten_rpc (session_unlisten_msg_t *mp) a->app_index = app->app_index; a->handle = sh; a->wrk_map_index = mp->wrk_index; + + vlib_worker_thread_barrier_sync (vm); + if ((rv = vnet_unlisten (a))) clib_warning ("unlisten returned: %d", rv); + vlib_worker_thread_barrier_release (vm); + app_wrk = application_get_worker (app, a->wrk_map_index); if (!app_wrk) return; - vlib_worker_thread_barrier_release (vm); - mq_send_unlisten_reply (app_wrk, sh, context, rv); clib_mem_free (mp); } -- 2.16.6