From a5efca30f569ff93cfb85ed1bc7742cee824426d Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Wed, 20 Mar 2019 08:33:10 -0700 Subject: vcl: mark app state as failed if attach fails Change-Id: If6c3b9a9136390fb740e5c00fd270b7962a1c4ab Signed-off-by: Florin Coras --- src/vcl/vcl_bapi.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/vcl/vcl_bapi.c') diff --git a/src/vcl/vcl_bapi.c b/src/vcl/vcl_bapi.c index 68284aec146..b9f621d356d 100644 --- a/src/vcl/vcl_bapi.c +++ b/src/vcl/vcl_bapi.c @@ -118,9 +118,8 @@ vl_api_application_attach_reply_t_handler (vl_api_application_attach_reply_t * if (mp->retval) { - clib_warning ("VCL<%d>: attach failed: %U", getpid (), - format_api_error, ntohl (mp->retval)); - return; + VERR ("attach failed: %U", format_api_error, ntohl (mp->retval)); + goto failed; } wrk->app_event_queue = uword_to_pointer (mp->app_event_queue_address, @@ -128,8 +127,8 @@ vl_api_application_attach_reply_t_handler (vl_api_application_attach_reply_t * segment_handle = clib_net_to_host_u64 (mp->segment_handle); if (segment_handle == VCL_INVALID_SEGMENT_HANDLE) { - clib_warning ("invalid segment handle"); - return; + VERR ("invalid segment handle"); + goto failed; } if (mp->n_fds) @@ -141,12 +140,12 @@ vl_api_application_attach_reply_t_handler (vl_api_application_attach_reply_t * if (vcl_segment_attach (vcl_vpp_worker_segment_handle (0), "vpp-mq-seg", SSVM_SEGMENT_MEMFD, fds[n_fds++])) - return; + goto failed; if (mp->fd_flags & SESSION_FD_F_MEMFD_SEGMENT) if (vcl_segment_attach (segment_handle, (char *) mp->segment_name, SSVM_SEGMENT_MEMFD, fds[n_fds++])) - return; + goto failed; if (mp->fd_flags & SESSION_FD_F_MQ_EVENTFD) { @@ -161,11 +160,15 @@ vl_api_application_attach_reply_t_handler (vl_api_application_attach_reply_t * { if (vcl_segment_attach (segment_handle, (char *) mp->segment_name, SSVM_SEGMENT_SHM, -1)) - return; + goto failed; } vcm->app_index = clib_net_to_host_u32 (mp->app_index); vcm->app_state = STATE_APP_ATTACHED; + return; + +failed: + vcm->app_state = STATE_APP_FAILED; } static void -- cgit 1.2.3-korg