diff options
author | Yu Ping <ping.yu@intel.com> | 2019-12-04 06:49:04 +0800 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2019-12-05 02:46:58 +0000 |
commit | b2955355cc9a654447d8647e33def67cd27892f6 (patch) | |
tree | 95fe264c0434755e59ccd0162655c13577602484 | |
parent | ce9bdfe5fcfa6e2acd670ea0063ce5e0fde15096 (diff) |
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 <ping.yu@intel.com>
-rw-r--r-- | src/vcl/vppcom.c | 2 |
1 files changed, 2 insertions, 0 deletions
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; } |