Fix: don't create a channel on an enable channel
[lttng-tools.git] / src / bin / lttng-sessiond / channel.c
index 6c7422b292dcb3ffd21665468c0f15cc6a728180..ff2db69db7389976c0c1dd3bd891cf5fbc969620 100644 (file)
@@ -214,7 +214,7 @@ int channel_ust_enable(struct ltt_ust_session *usess,
         * successfully created on the session daemon side so the enable-channel
         * command is a success.
         */
-       (void) ust_app_create_channel_glb(usess, uchan);
+       (void) ust_app_enable_channel_glb(usess, uchan);
 
        uchan->enabled = 1;
        DBG2("Channel %s enabled successfully", uchan->name);
@@ -272,8 +272,28 @@ int channel_ust_create(struct ltt_ust_session *usess,
                goto error;
        }
 
+       /*
+        * The tracefile_size should not be < to the subbuf_size, otherwise
+        * we won't be able to write the packets on disk
+        */
+       if ((attr->attr.tracefile_size > 0) &&
+                       (attr->attr.tracefile_size < attr->attr.subbuf_size)) {
+               ret = LTTNG_ERR_INVALID;
+               goto error;
+       }
+
+       /* Validate buffer type. */
+       switch (type) {
+       case LTTNG_BUFFER_PER_PID:
+       case LTTNG_BUFFER_PER_UID:
+               break;
+       default:
+               ret = LTTNG_ERR_BUFFER_NOT_SUPPORTED;
+               goto error;
+       }
+
        /* Create UST channel */
-       uchan = trace_ust_create_channel(attr, usess->pathname);
+       uchan = trace_ust_create_channel(attr);
        if (uchan == NULL) {
                ret = LTTNG_ERR_FATAL;
                goto error;
This page took 0.023592 seconds and 4 git commands to generate.