stats: removing empty object in stats vector 44/19944/2
authorOle Troan <ot@cisco.com>
Tue, 4 Jun 2019 10:33:32 +0000 (12:33 +0200)
committerNeale Ranns <nranns@cisco.com>
Tue, 4 Jun 2019 11:32:52 +0000 (11:32 +0000)
Type: fix
Change-Id: I9b6bdacdb9a0750834de9a93d8c3f7ed827ce3c8
Signed-off-by: Ole Troan <ot@cisco.com>
src/vpp-api/python/vpp_papi/vpp_stats.py
src/vpp/stats/stat_segment.c

index 86a80dd..76ccf10 100644 (file)
@@ -199,7 +199,9 @@ class VPPStats(object):
         while time.time() < poll_end_time:
             rv = self.api.stat_segment_connect_r(socketname.encode('utf-8'),
                                                  self.client)
-            if rv == 0:
+            # Break out if success or any other error than "no such file"
+            # (indicating that VPP hasn't started yet)
+            if rv == 0 or ffi.errno != 2:
                 break
 
         if rv != 0:
index a5529b9..3007889 100644 (file)
@@ -285,7 +285,7 @@ vlib_map_stat_segment_init (void)
   shared_header->epoch = 1;
 
   /* Scalar stats and node counters */
-  vec_validate (sm->directory_vector, STAT_COUNTERS);
+  vec_validate (sm->directory_vector, STAT_COUNTERS - 1);
 #define _(E,t,n,p)                                                     \
   strcpy(sm->directory_vector[STAT_COUNTER_##E].name,  #p "/" #n); \
   sm->directory_vector[STAT_COUNTER_##E].type = STAT_DIR_TYPE_##t;