From 4fca744234286374a24afd31507be809383fd763 Mon Sep 17 00:00:00 2001 From: liuyacan Date: Fri, 14 May 2021 02:11:03 +0000 Subject: vcl: fix lookup listener assert The following timing may happen: 1. vpp accept new connection, send ACCEPTED to vcl, but vcl has not handle it 2. vcl unbind the listener, go into DISCONNECT state 3. vcl handle the ACCEPTED event Type: fix Signed-off-by: liuyacan Change-Id: If9a96a153af38763db062df133c2fdcc04ceba9b --- src/vcl/vcl_private.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/vcl/vcl_private.h') diff --git a/src/vcl/vcl_private.h b/src/vcl/vcl_private.h index 956f077b880..f68ab45171e 100644 --- a/src/vcl/vcl_private.h +++ b/src/vcl/vcl_private.h @@ -527,6 +527,12 @@ vcl_session_table_lookup_listener (vcl_worker_t * wrk, u64 handle) return 0; } + if (s->session_state == VCL_STATE_DISCONNECT) + { + VDBG (0, "listen session [0x%llx] is closing", s->vpp_handle); + return 0; + } + ASSERT (s->session_state == VCL_STATE_LISTEN || s->session_state == VCL_STATE_LISTEN_NO_MQ || vcl_session_is_connectable_listener (wrk, s)); -- cgit 1.2.3-korg