There are a number telemetry threads which are created and there is nothing that does pthread_join() to wait for them. Mark these threads as detached, so that the pthread library can cleanup state when the thread exits.
Signed-off-by: Stephen Hemminger <step...@networkplumber.org> --- lib/telemetry/telemetry.c | 2 ++ lib/telemetry/telemetry_legacy.c | 1 + 2 files changed, 3 insertions(+) diff --git a/lib/telemetry/telemetry.c b/lib/telemetry/telemetry.c index 8665db8d035b..976f0a21566e 100644 --- a/lib/telemetry/telemetry.c +++ b/lib/telemetry/telemetry.c @@ -490,6 +490,7 @@ telemetry_legacy_init(void) pthread_setaffinity_np(t_old, sizeof(*thread_cpuset), thread_cpuset); set_thread_name(t_old, "telemetry-v1"); TMTY_LOG(DEBUG, "Legacy telemetry socket initialized ok\n"); + pthread_detach(t_old); return 0; } @@ -528,6 +529,7 @@ telemetry_v2_init(void) } pthread_setaffinity_np(t_new, sizeof(*thread_cpuset), thread_cpuset); set_thread_name(t_new, "telemetry-v2"); + pthread_detach(t_new); atexit(unlink_sockets); return 0; diff --git a/lib/telemetry/telemetry_legacy.c b/lib/telemetry/telemetry_legacy.c index b7cd1bdd6c7b..8aba44d689b7 100644 --- a/lib/telemetry/telemetry_legacy.c +++ b/lib/telemetry/telemetry_legacy.c @@ -121,6 +121,7 @@ register_client(const char *cmd __rte_unused, const char *params, close(fd); return -1; } + pthread_detach(th); #endif /* !RTE_EXEC_ENV_WINDOWS */ return 0; } -- 2.30.2