[lttng-dev] [PATCH lttng-tools 1/2] Fix relayd: initialize beacon to -1ULL
Jérémie Galarneau
jeremie.galarneau at efficios.com
Thu Apr 25 14:26:45 EDT 2019
Both patches are merged in master, stable-2.11, stable-2.10, and
stable-2.9.
Thanks!
Jérémie
On Tue, Apr 02, 2019 at 01:41:16PM -0400, Mathieu Desnoyers wrote:
> 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 <mathieu.desnoyers at efficios.com>
> ---
> src/bin/lttng-relayd/stream.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/src/bin/lttng-relayd/stream.c b/src/bin/lttng-relayd/stream.c
> index 80c8aa0c..1218c2f4 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);
> --
> 2.17.1
>
More information about the lttng-dev
mailing list