From: wanghanlin Date: Mon, 16 Dec 2019 11:14:39 +0000 (+0800) Subject: vcl: RX event may lost when accept session repeatedly X-Git-Tag: v19.08.3~238 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=889ea0f54c42e3a592625f2bfd480bf3c13ab1bc;p=vpp.git vcl: RX event may lost when accept session repeatedly Type: fix Some applications may call accept repeatedly to process all connect request until get EAGIAIN error. Subsequent call may get RX event of previous accepted session, then should process it rather than just discard it. Signed-off-by: wanghanlin Change-Id: Ice53442de66289a62591b79a9cc31e883e894c23 (cherry picked from commit 96453fd2417ebd1d69354a7fb692976129cea80e) --- diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c index 0bbdea54940..52639c4e2b0 100644 --- a/src/vcl/vppcom.c +++ b/src/vcl/vppcom.c @@ -1475,7 +1475,7 @@ vppcom_session_accept (uint32_t listen_session_handle, vppcom_endpt_t * ep, e = svm_msg_q_msg_data (wrk->app_event_queue, &msg); if (e->event_type != SESSION_CTRL_EVT_ACCEPTED) { - VDBG (0, "discarded event: %u", e->event_type); + vcl_handle_mq_event (wrk, e); svm_msg_q_free_msg (wrk->app_event_queue, &msg); continue; }