Fix: relayd: make viewer streams consider metadata sent
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 3 Sep 2015 21:17:28 +0000 (17:17 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 4 Sep 2015 22:43:42 +0000 (18:43 -0400)
The metadata stream does not use prev seq, and is therefore not sent to
viewers if we depend on prev seq. Use the metadata_received field
instead to achieve the same purpose: if a viewer try to attach to a
session that has not received metadata yet, it will get and error
(metadata stream cannot be found when attaching).

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-relayd/live.c

index aa0586814e6ba55adeb6c2b35d5c31f1789bcc51..6f69b1058a958720bb1e86b4868fcdb259bea417 100644 (file)
@@ -316,8 +316,14 @@ int make_viewer_streams(struct relay_session *session,
                        /*
                         * Stream has no data, don't consider it yet.
                         */
-                       if (stream->prev_seq == -1ULL) {
-                               goto next;
+                       if (stream->is_metadata) {
+                               if (!stream->metadata_received) {
+                                       goto next;
+                               }
+                       } else {
+                               if (stream->prev_seq == -1ULL) {
+                                       goto next;
+                               }
                        }
                        vstream = viewer_stream_get_by_id(stream->stream_handle);
                        if (!vstream) {
This page took 0.034902 seconds and 4 git commands to generate.