X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Fmain.c;h=2fcc60af00d9d3b29b9809865ed7747ab4dbde45;hp=dc19a69c77a548df81fffc2aa7e44affd12279b4;hb=4fc83d948cea6b10484e65f004a6c167e71ac440;hpb=f8f3885cc52af9d3c951da78989d6f4a25270411 diff --git a/src/bin/lttng-relayd/main.c b/src/bin/lttng-relayd/main.c index dc19a69c7..2fcc60af0 100644 --- a/src/bin/lttng-relayd/main.c +++ b/src/bin/lttng-relayd/main.c @@ -71,6 +71,14 @@ #include "connection.h" #include "tracefile-array.h" +static const char *help_msg = +#ifdef LTTNG_EMBED_HELP +#include +#else +NULL +#endif +; + /* command line options */ char *opt_output_path; static int opt_daemon, opt_background; @@ -250,9 +258,9 @@ static int set_option(int opt, const char *arg, const char *optname) } break; case 'h': - ret = utils_show_man_page(8, "lttng-relayd"); + ret = utils_show_help(8, "lttng-relayd", help_msg); if (ret) { - ERR("Cannot view man page lttng-relayd(8)"); + ERR("Cannot show --help for `lttng-relayd`"); perror("exec"); } exit(EXIT_FAILURE); @@ -2680,6 +2688,11 @@ error: destroy_conn, sock_n.node) { health_code_update(); + + if (session_abort(destroy_conn->session)) { + assert(0); + } + /* * No need to grab another ref, because we own * destroy_conn. @@ -2932,6 +2945,12 @@ exit_init_data: health_app_destroy(health_relayd); exit_health_app_create: exit_options: + /* + * Wait for all pending call_rcu work to complete before tearing + * down data structures. call_rcu worker may be trying to + * perform lookups in those structures. + */ + rcu_barrier(); relayd_cleanup(); /* Ensure all prior call_rcu are done. */