[babeltrace-1.5,6/6] Fix: lttng-live format: do not error out on empty streams hang up
diff mbox series

Message ID 20191205065809.16728-7-mathieu.desnoyers@efficios.com
State New
Headers show
Series
  • Babeltrace 1.5 lttng-live with per-pid ust buffers
Related show

Commit Message

Mathieu Desnoyers Dec. 5, 2019, 6:58 a.m. UTC
Attaching to a stream hung up before providing any trace packet
causes ctf_open_mmap_stream_read() to return an error.

This kind of scenario can happen with the upcoming "lttng clear"
feature.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
---
 formats/ctf/ctf.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Jérémie Galarneau Dec. 13, 2019, 1:03 a.m. UTC | #1
All patches of this series were merged in stable-1.5.

Thanks!
J?r?mie

On Thu, 5 Dec 2019 at 01:58, Mathieu Desnoyers
<mathieu.desnoyers at efficios.com> wrote:
>
> Attaching to a stream hung up before providing any trace packet
> causes ctf_open_mmap_stream_read() to return an error.
>
> This kind of scenario can happen with the upcoming "lttng clear"
> feature.
>
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> ---
>  formats/ctf/ctf.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/formats/ctf/ctf.c b/formats/ctf/ctf.c
> index 980ebc9a..1ba9017f 100644
> --- a/formats/ctf/ctf.c
> +++ b/formats/ctf/ctf.c
> @@ -2571,8 +2571,13 @@ int ctf_open_mmap_stream_read(struct ctf_trace *td,
>         }
>
>         ret = prepare_mmap_stream_definition(td, file_stream, packet_seek);
> -       if (ret)
> +       if (ret) {
> +               /* We need to check for EOF here for empty files. */
> +               if (unlikely(file_stream->pos.offset == EOF)) {
> +                       ret = 0;
> +               }
>                 goto error_index;
> +       }
>
>         /*
>          * For now, only a single clock per trace is supported.
> --
> 2.17.1
>

Patch
diff mbox series

diff --git a/formats/ctf/ctf.c b/formats/ctf/ctf.c
index 980ebc9a..1ba9017f 100644
--- a/formats/ctf/ctf.c
+++ b/formats/ctf/ctf.c
@@ -2571,8 +2571,13 @@  int ctf_open_mmap_stream_read(struct ctf_trace *td,
 	}
 
 	ret = prepare_mmap_stream_definition(td, file_stream, packet_seek);
-	if (ret)
+	if (ret) {
+		/* We need to check for EOF here for empty files. */
+		if (unlikely(file_stream->pos.offset == EOF)) {
+			ret = 0;
+		}
 		goto error_index;
+	}
 
 	/*
 	 * For now, only a single clock per trace is supported.