From: Yu Ping Date: Tue, 3 Dec 2019 22:49:04 +0000 (+0800) Subject: vcl: resolve VCL part session cleanup issue X-Git-Tag: v20.05-rc0~260 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commitdiff_plain;h=b2955355cc9a654447d8647e33def67cd27892f6 vcl: resolve VCL part session cleanup issue In Nginx performance test, we notice that there are so many session kept open with the state of TRANSPORT_DELETE, and it is root caused that vppcom fails to return close state. Type: fix Change-Id: Ia30f959e0e5adb5b8bcfa13fb1dd7b2cb410a31b Signed-off-by: Yu Ping --- diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c index 0e5d4fab328..0bbdea54940 100644 --- a/src/vcl/vppcom.c +++ b/src/vcl/vppcom.c @@ -1733,6 +1733,8 @@ vppcom_session_read_internal (uint32_t session_handle, void *buf, int n, { if (is_nonblocking) { + if (vcl_session_is_closing (s)) + return vcl_session_closing_error (s); svm_fifo_unset_event (s->rx_fifo); return VPPCOM_EWOULDBLOCK; }