Fix: close consumer sockets before waiting for them
[lttng-tools.git] / src / bin / lttng-sessiond / main.c
index 57324820bd6aa2c3e09da7f3d0106c8f80c5b89d..a29417af59e7aeb7a90513cc5346f21db82f6346 100644 (file)
@@ -327,17 +327,18 @@ static void sessiond_cleanup(void)
 
        pthread_mutex_destroy(&session_list->lock);
 
-       wait_consumer(&kconsumer_data);
-       wait_consumer(&ustconsumer64_data);
-       wait_consumer(&ustconsumer32_data);
-
        DBG("Cleaning up all agent apps");
        agent_app_ht_clean();
-
        DBG("Closing all UST sockets");
        ust_app_clean_list();
        buffer_reg_destroy_registries();
 
+       close_consumer_sockets();
+
+       wait_consumer(&kconsumer_data);
+       wait_consumer(&ustconsumer64_data);
+       wait_consumer(&ustconsumer32_data);
+
        if (is_root && !config.no_kernel) {
                DBG2("Closing kernel fd");
                if (kernel_tracer_fd >= 0) {
@@ -351,8 +352,6 @@ static void sessiond_cleanup(void)
                free(syscall_table);
        }
 
-       close_consumer_sockets();
-
        /*
         * We do NOT rmdir rundir because there are other processes
         * using it, for instance lttng-relayd, which can start in
@@ -1335,8 +1334,8 @@ static void destroy_all_sessions_and_wait(void)
                        goto unlock_session;
                }
                (void) cmd_stop_trace(session);
-               (void) cmd_destroy_session(session,
-                               notification_thread_handle);
+               (void) cmd_destroy_session(session, notification_thread_handle,
+                               NULL);
        unlock_session:
                session_unlock(session);
                session_put(session);
@@ -1369,6 +1368,14 @@ static int launch_run_as_worker(const char *procname)
                        &config);
 }
 
+static void sessiond_uuid_log(void)
+{
+       char uuid_str[UUID_STR_LEN];
+
+       lttng_uuid_to_str(sessiond_uuid, uuid_str);
+       DBG("Starting lttng-sessiond {%s}", uuid_str);
+}
+
 /*
  * main
  */
@@ -1465,6 +1472,7 @@ int main(int argc, char **argv)
        set_clock_plugin_env();
 
        sessiond_config_log(&config);
+       sessiond_uuid_log();
 
        if (create_lttng_rundir()) {
                retval = -1;
This page took 0.023708 seconds and 4 git commands to generate.