From: Mathieu Desnoyers Date: Wed, 24 Apr 2019 22:56:05 +0000 (-0400) Subject: Fix relayd: initialize beacon to -1ULL X-Git-Tag: v2.9.12~4 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=482f392b771733f96e7929bca985191e20c3d175;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 e9c7ad172..6d63d087d 100644 --- a/src/bin/lttng-relayd/stream.c +++ b/src/bin/lttng-relayd/stream.c @@ -98,6 +98,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);