From: Mathieu Desnoyers Date: Wed, 24 Apr 2019 22:56:05 +0000 (-0400) Subject: Fix relayd: initialize beacon to -1ULL X-Git-Tag: v2.10.7~6 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=d49b54aade558422c35ecf9d62a33bf19b80cc51;p=lttng-tools.git Fix relayd: initialize beacon to -1ULL The relayd stream beacon_ts_end field is expected to have the value -1ULL when unset (no beacon has been received since last index). However, the initial state is wrong. It is left at the value 0, which indicates that a live beacon has indeed been received (which is untrue), which in turn causes a live beacon with ctf_stream_id of -1ULL to be sent to babeltrace, which does not expect it, and fails. This issue can be triggered with the following scenario: 1) create live session 2) setup UST per-uid buffers tracing 3) start tracing, without any active traced application 4) hook with babeltrace live client to view the trace 5) run a traced application Step 5) will cause the babeltrace live client to receive a stream_id of -1ULL, and error out. Signed-off-by: Mathieu Desnoyers Signed-off-by: Jérémie Galarneau --- diff --git a/src/bin/lttng-relayd/stream.c b/src/bin/lttng-relayd/stream.c index e467cfa6c..f989bfd13 100644 --- a/src/bin/lttng-relayd/stream.c +++ b/src/bin/lttng-relayd/stream.c @@ -97,6 +97,7 @@ struct relay_stream *stream_create(struct ctf_trace *trace, stream->tracefile_count = tracefile_count; stream->path_name = path_name; stream->channel_name = channel_name; + stream->beacon_ts_end = -1ULL; lttng_ht_node_init_u64(&stream->node, stream->stream_handle); pthread_mutex_init(&stream->lock, NULL); pthread_mutex_init(&stream->reflock, NULL);