From b3bdb105e903c1800da1dbd45109397a07c43ed8 Mon Sep 17 00:00:00 2001 From: Julien Desfossez Date: Fri, 10 Jan 2014 11:45:53 -0500 Subject: [PATCH] Fix: metadata stream should be always flagged as ready Signed-off-by: Julien Desfossez Signed-off-by: David Goulet --- src/bin/lttng-relayd/main.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/bin/lttng-relayd/main.c b/src/bin/lttng-relayd/main.c index 7e5733ec8..c32ea815d 100644 --- a/src/bin/lttng-relayd/main.c +++ b/src/bin/lttng-relayd/main.c @@ -1166,18 +1166,10 @@ void set_viewer_ready_flag(struct relay_command *cmd) * Stream is most probably being cleaned up by the data thread thus * simply continue to the next one. */ + rcu_read_unlock(); continue; } - /* - * If any of the streams in the list doesn't have a ctf_trace assigned, - * it means that we never received the metadata stream, so we have to - * wait until it arrives to make the streams available to the viewer. - */ - if (!stream->ctf_trace) { - goto end; - } - stream->viewer_ready = 1; rcu_read_unlock(); @@ -1186,7 +1178,6 @@ void set_viewer_ready_flag(struct relay_command *cmd) free(node); } -end: return; } @@ -1308,7 +1299,11 @@ int relay_add_stream(struct lttcomm_relayd_hdr *recv_hdr, * stream message is received, this list is emptied and streams are set * with the viewer ready flag. */ - queue_stream_handle(stream->stream_handle, cmd); + if (stream->metadata_flag) { + stream->viewer_ready = 1; + } else { + queue_stream_handle(stream->stream_handle, cmd); + } lttng_ht_node_init_ulong(&stream->stream_n, (unsigned long) stream->stream_handle); -- 2.34.1