logging: print human-readable thread names when logging
[lttng-tools.git] / src / bin / lttng-sessiond / main.c
index 5f99bdbf63b66c01bb70d54a9839170b0e67d487..4bdac5217978d28dd2af6c036d66f0650615a9bf 100644 (file)
@@ -1,20 +1,10 @@
 /*
- * Copyright (C) 2011 David Goulet <david.goulet@polymtl.ca>
- *                      Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- *               2013 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
+ * Copyright (C) 2011 David Goulet <david.goulet@polymtl.ca>
+ * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright (C) 2013 Jérémie Galarneau <jeremie.galarneau@efficios.com>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2 only,
- * as published by the Free Software Foundation.
+ * SPDX-License-Identifier: GPL-2.0-only
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
 #define _LGPL_SOURCE
@@ -62,7 +52,7 @@
 #include "kernel.h"
 #include "kernel-consumer.h"
 #include "shm.h"
-#include "ust-ctl.h"
+#include "lttng-ust-ctl.h"
 #include "ust-consumer.h"
 #include "utils.h"
 #include "fd-limit.h"
@@ -95,6 +85,7 @@ NULL
 
 const char *progname;
 static int lockfile_fd = -1;
+static int opt_print_version;
 
 /* Set to 1 when a SIGUSR1 signal is received. */
 static int recv_child_signal;
@@ -433,8 +424,7 @@ static int set_option(int opt, const char *arg, const char *optname)
                }
                exit(ret ? EXIT_FAILURE : EXIT_SUCCESS);
        } else if (string_match(optname, "version") || opt == 'V') {
-               fprintf(stdout, "%s\n", VERSION);
-               exit(EXIT_SUCCESS);
+               opt_print_version = 1;
        } else if (string_match(optname, "sig-parent") || opt == 'S') {
                config.sig_parent = true;
        } else if (string_match(optname, "kconsumerd-err-sock")) {
@@ -667,7 +657,7 @@ static int set_option(int opt, const char *arg, const char *optname)
                        WARN("Getting '%s' argument from setuid/setgid binary refused for security reasons.",
                                "-l, --load");
                } else {
-                       config_string_set(&config.load_session_path, strdup(arg));
+                       config_string_set(&config.load_session_path, strdup(arg));
                        if (!config.load_session_path.value) {
                                PERROR("strdup");
                                ret = -ENOMEM;
@@ -789,6 +779,10 @@ end:
        return ret;
 }
 
+static void print_version(void) {
+       fprintf(stdout, "%s\n", VERSION);
+}
+
 /*
  * daemon configuration loading and argument parsing
  */
@@ -875,7 +869,7 @@ end:
  */
 static int create_lockfile(void)
 {
-        return utils_create_lock_file(config.lock_file_path.value);
+       return utils_create_lock_file(config.lock_file_path.value);
 }
 
 /*
@@ -1189,7 +1183,7 @@ static void set_ulimit(void)
 
 static int write_pidfile(void)
 {
-        return utils_create_pid_file(getpid(), config.pid_file_path.value);
+       return utils_create_pid_file(getpid(), config.pid_file_path.value);
 }
 
 static int set_clock_plugin_env(void)
@@ -1201,7 +1195,7 @@ static int set_clock_plugin_env(void)
                goto end;
        }
 
-        ret = asprintf(&env_value, "LTTNG_UST_CLOCK_PLUGIN=%s",
+       ret = asprintf(&env_value, "LTTNG_UST_CLOCK_PLUGIN=%s",
                        config.lttng_ust_clock_plugin.value);
        if (ret < 0) {
                PERROR("asprintf");
@@ -1282,7 +1276,7 @@ static int launch_run_as_worker(const char *procname)
 
 static void sessiond_uuid_log(void)
 {
-       char uuid_str[UUID_STR_LEN];
+       char uuid_str[LTTNG_UUID_STR_LEN];
 
        lttng_uuid_to_str(sessiond_uuid, uuid_str);
        DBG("Starting lttng-sessiond {%s}", uuid_str);
@@ -1308,6 +1302,7 @@ int main(int argc, char **argv)
        struct lttng_thread *notification_thread = NULL;
        struct lttng_thread *register_apps_thread = NULL;
 
+       logger_set_thread_name("Main", false);
        init_kernel_workarounds();
 
        rcu_register_thread();
@@ -1386,6 +1381,12 @@ int main(int argc, char **argv)
        sessiond_config_log(&config);
        sessiond_uuid_log();
 
+       if (opt_print_version) {
+               print_version();
+               retval = 0;
+               goto exit_options;
+       }
+
        if (create_lttng_rundir()) {
                retval = -1;
                goto exit_options;
@@ -1819,7 +1820,9 @@ stop_threads:
        lttng_pipe_destroy(ust64_channel_monitor_pipe);
        lttng_pipe_destroy(kernel_channel_monitor_pipe);
 
-       health_app_destroy(health_sessiond);
+       if (health_sessiond) {
+               health_app_destroy(health_sessiond);
+       }
 exit_create_run_as_worker_cleanup:
 exit_options:
        sessiond_cleanup_lock_file();
This page took 0.026781 seconds and 4 git commands to generate.