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;
*/
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);
}
/*
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)
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");
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();
retval = -1;
goto stop_threads;
}
+
+ if (kernel_get_notification_fd() >= 0) {
+ ret = notification_thread_command_add_tracer_event_source(
+ notification_thread_handle,
+ kernel_get_notification_fd(),
+ LTTNG_DOMAIN_KERNEL);
+ if (ret != LTTNG_OK) {
+ ERR("Failed to add kernel trigger event source to notification thread");
+ retval = -1;
+ goto stop_threads;
+ }
+ }
}
/* Load sessions. */
rcu_thread_online();
sessiond_cleanup();
+ /*
+ * Wait for all pending call_rcu work to complete tearing shutting down
+ * the notification thread. This call_rcu work includes shutting down
+ * UST apps and event notifier pipes.
+ */
+ rcu_barrier();
+
if (notification_thread) {
lttng_thread_shutdown(notification_thread);
lttng_thread_put(notification_thread);