From 400ded36422689c1783e220a1846447bc0058234 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Wed, 3 Oct 2018 01:00:57 -0700 Subject: [PATCH] session: fix first segment manager cleanup Change-Id: I750db7617ff9fd36647743094e0fa855e7dada86 Signed-off-by: Florin Coras --- src/vnet/session/application.c | 7 +++---- src/vnet/session/session.c | 2 ++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/vnet/session/application.c b/src/vnet/session/application.c index 7d0fd5567a3..260ae588209 100644 --- a/src/vnet/session/application.c +++ b/src/vnet/session/application.c @@ -557,13 +557,12 @@ app_worker_free (app_worker_t * app_wrk) && app_wrk->first_segment_manager != app_wrk->connects_seg_manager) { sm = segment_manager_get (app_wrk->first_segment_manager); + sm->first_is_protected = 0; + sm->app_wrk_index = SEGMENT_MANAGER_INVALID_APP_INDEX; /* .. and has no fifos, e.g. it might be used for redirected sessions, * remove it */ if (!segment_manager_has_fifos (sm)) - { - sm->app_wrk_index = SEGMENT_MANAGER_INVALID_APP_INDEX; - segment_manager_del (sm); - } + segment_manager_del (sm); } /* diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c index 372a6f93a95..83b96d317dc 100644 --- a/src/vnet/session/session.c +++ b/src/vnet/session/session.c @@ -760,6 +760,8 @@ stream_session_disconnect_notify (transport_connection_t * tc) stream_session_t *s; s = session_get (tc->s_index, tc->thread_index); + if (s->session_state >= SESSION_STATE_TRANSPORT_CLOSING) + return; s->session_state = SESSION_STATE_TRANSPORT_CLOSING; app_wrk = app_worker_get_if_valid (s->app_wrk_index); if (!app_wrk) -- 2.16.6