Fix bad channel handling on enable-event
[lttng-tools.git] / ltt-sessiond / main.c
index 32e47068efc31eacc56cb8e77660f0047892348b..f887fa12441d4b94ae74c5710b44d6850a791c23 100644 (file)
@@ -2053,15 +2053,23 @@ static int cmd_enable_event(struct ltt_session *session, int domain,
 {
        int ret;
        struct ltt_kernel_channel *kchan;
+       struct lttng_channel *attr;
 
        switch (domain) {
        case LTTNG_DOMAIN_KERNEL:
                kchan = trace_kernel_get_channel_by_name(channel_name,
                                session->kernel_session);
                if (kchan == NULL) {
+                       attr = channel_new_default_attr(domain);
+                       if (attr == NULL) {
+                               ret = LTTCOMM_FATAL;
+                               goto error;
+                       }
+                       snprintf(attr->name, NAME_MAX, "%s", channel_name);
+
                        /* This call will notify the kernel thread */
                        ret = channel_kernel_create(session->kernel_session,
-                                       NULL, kernel_poll_pipe[1]);
+                                       attr, kernel_poll_pipe[1]);
                        if (ret != LTTCOMM_OK) {
                                goto error;
                        }
@@ -2606,14 +2614,17 @@ static int process_client_msg(struct command_ctx *cmd_ctx)
                        }
 
                        /* Start the kernel consumer daemon */
+                       pthread_mutex_lock(&kconsumerd_pid_mutex);
                        if (kconsumerd_pid == 0 &&
                                        cmd_ctx->lsm->cmd_type != LTTNG_REGISTER_CONSUMER) {
+                               pthread_mutex_unlock(&kconsumerd_pid_mutex);
                                ret = start_kconsumerd();
                                if (ret < 0) {
                                        ret = LTTCOMM_KERN_CONSUMER_FAIL;
                                        goto error;
                                }
                        }
+                       pthread_mutex_unlock(&kconsumerd_pid_mutex);
                }
                break;
        case LTTNG_DOMAIN_UST_PID:
This page took 0.023328 seconds and 4 git commands to generate.