Fix: send the streams sent message after metadata
[lttng-tools.git] / src / bin / lttng-sessiond / kernel-consumer.c
index 4c069588a36cf36ce8755433f2f03c480df06ba4..4153612746f90c84780b208b94ce2ce731126217 100644 (file)
@@ -305,7 +305,6 @@ int kernel_consumer_send_channel_stream(struct consumer_socket *sock,
 {
        int ret;
        struct ltt_kernel_stream *stream;
-       uint64_t channel_key = -1ULL;
 
        /* Safety net */
        assert(channel);
@@ -339,22 +338,8 @@ int kernel_consumer_send_channel_stream(struct consumer_socket *sock,
                if (ret < 0) {
                        goto error;
                }
-               if (channel_key == -1ULL) {
-                       channel_key = channel->fd;
-               }
-       }
-
-       if (!monitor || channel_key == -1ULL) {
-               goto end;
-       }
-
-       /* Add stream on the kernel consumer side. */
-       ret = kernel_consumer_streams_sent(sock, session, channel_key);
-       if (ret < 0) {
-               goto error;
        }
 
-end:
 error:
        return ret;
 }
@@ -403,6 +388,16 @@ int kernel_consumer_send_session(struct consumer_socket *sock,
                if (ret < 0) {
                        goto error;
                }
+               if (monitor) {
+                       /*
+                        * Inform the relay that all the streams for the
+                        * channel were sent.
+                        */
+                       ret = kernel_consumer_streams_sent(sock, session, chan->fd);
+                       if (ret < 0) {
+                               goto error;
+                       }
+               }
        }
 
        DBG("Kernel consumer FDs of metadata and channel streams sent");
This page took 0.023366 seconds and 4 git commands to generate.