summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYu Ping <ping.yu@intel.com>2019-12-04 06:49:04 +0800
committerAndrew Yourtchenko <ayourtch@gmail.com>2020-08-12 07:43:14 +0000
commit9e357046a319ef1b01fa81743ae819ff5f63f87a (patch)
tree7c38a8fb11a91923959d23c18ae1deba1a7dbe1b
parente09a07826e699f9e1bee93c8ed4457eecd941790 (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> (cherry picked from commit b2955355cc9a654447d8647e33def67cd27892f6)
-rw-r--r--src/vcl/vppcom.c2
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;
}