vcl: resolve VCL part session cleanup issue 76/23776/3
authorYu Ping <ping.yu@intel.com>
Tue, 3 Dec 2019 22:49:04 +0000 (06:49 +0800)
committerFlorin Coras <florin.coras@gmail.com>
Thu, 5 Dec 2019 02:46:58 +0000 (02:46 +0000)
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>
src/vcl/vppcom.c

index 0e5d4fa..0bbdea5 100644 (file)
@@ -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;
        }