VPP-1496 Cleanup stats socket on exit. 71/15971/3
authorPaul Vinciguerra <pvinci@vinciconsulting.com>
Thu, 15 Nov 2018 15:14:27 +0000 (07:14 -0800)
committerOle Trøan <otroan@employees.org>
Fri, 16 Nov 2018 07:28:35 +0000 (07:28 +0000)
Stats socket not cleaned up on exit.

vagrant@vpp:/tmp/vpp-failed-unittests/vpp-unittest-VCLCutThruTestCase-clRggF-FAILED$ ls -ltr

total 104

srwxrwxr-x 1 vagrant vagrant     0 Nov 14 18:21 stats.sock

Change-Id: I8126e70da2983222ca430aa280f3b9e45eea7ca4
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
src/vpp/stats/stat_segment.c

index 7ae1316..3c5d4eb 100644 (file)
@@ -573,6 +573,19 @@ stats_segment_socket_init (void)
   sm->socket = s;
 }
 
+static clib_error_t *
+stats_segment_socket_exit (vlib_main_t * vm)
+{
+  /*
+   * cleanup the listener socket on exit.
+   */
+  stat_segment_main_t *sm = &stat_segment_main;
+  unlink ((char *) sm->socket_name);
+  return 0;
+}
+
+VLIB_MAIN_LOOP_EXIT_FUNCTION (stats_segment_socket_exit);
+
 static uword
 stat_segment_collector_process (vlib_main_t * vm, vlib_node_runtime_t * rt,
                                vlib_frame_t * f)
@@ -611,6 +624,9 @@ statseg_config (vlib_main_t * vm, unformat_input_t * input)
 {
   stat_segment_main_t *sm = &stat_segment_main;
 
+  /* set default socket file name when statseg config stanza is empty. */
+  sm->socket_name = format (0, "%s", STAT_SEGMENT_SOCKET_FILE);
+
   while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
     {
       if (unformat (input, "socket-name %s", &sm->socket_name))