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)
This commit is contained in:
Yu Ping
2019-12-04 06:49:04 +08:00
committed by Andrew Yourtchenko
parent e09a07826e
commit 9e357046a3

View File

@ -1733,6 +1733,8 @@ vppcom_session_read_internal (uint32_t session_handle, void *buf, int n,
{ {
if (is_nonblocking) if (is_nonblocking)
{ {
if (vcl_session_is_closing (s))
return vcl_session_closing_error (s);
svm_fifo_unset_event (s->rx_fifo); svm_fifo_unset_event (s->rx_fifo);
return VPPCOM_EWOULDBLOCK; return VPPCOM_EWOULDBLOCK;
} }