vcl: Don't use app_socket_api to notify VPP in parent when child exited 31/32931/2
authorwanghanlin <wanghanlin@corp.netease.com>
Tue, 29 Jun 2021 08:01:55 +0000 (16:01 +0800)
committerDave Wallace <dwallacelf@gmail.com>
Tue, 29 Jun 2021 18:49:15 +0000 (18:49 +0000)
Type: fix

Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: Icd2fc3cc2d0a0a6060abfb262044cf9e09ab4ba2
(cherry picked from commit b940fd4d5a16b62a5aa09b924140a135fd06c6bb)

src/vcl/vcl_locked.c

index 2f1bcca..9948bb1 100644 (file)
@@ -1490,7 +1490,11 @@ vls_cleanup_vcl_worker (vcl_worker_t * wrk)
   /* Unshare sessions and also cleanup worker since child may have
    * called _exit () and therefore vcl may not catch the event */
   vls_unshare_vcl_worker_sessions (wrk);
-  vcl_worker_cleanup (wrk, 1 /* notify vpp */ );
+
+  /* Since child may have exited and thereforce fd of vpp_app_socket_api
+   * may have been closed, so DONOT notify VPP.
+   */
+  vcl_worker_cleanup (wrk, vcm->cfg.vpp_app_socket_api ? 0 : 1);
 
   vls_worker_free (vls_wrk);
 }