[lttng-dev] [PATCH lttng-tools] Fix: lost packet accounting always lost on snapshot

Jérémie Galarneau jeremie.galarneau at efficios.com
Mon Sep 18 21:49:31 UTC 2017


This was merged a while ago, but it seems I never sent an acknowledgement.

Thanks!
Jérémie

On 25 July 2017 at 15:23, Julien Desfossez <jdesfossez at efficios.com> wrote:
> Because of the continue when we fail to get a subbuff, the lost_packet
> count is always reset to 0 before we can account it in the channel. Now
> we account it directly before the continue.
>
> Reported-by: Jonathan Rajotte <jonathan.rajotte-julien at efficios.com>
> Signed-off-by: Julien Desfossez <jdesfossez at efficios.com>
> ---
>  src/common/kernel-consumer/kernel-consumer.c | 11 +----------
>  src/common/ust-consumer/ust-consumer.c       | 11 +----------
>  2 files changed, 2 insertions(+), 20 deletions(-)
>
> diff --git a/src/common/kernel-consumer/kernel-consumer.c b/src/common/kernel-consumer/kernel-consumer.c
> index 8d00a0d..7686356 100644
> --- a/src/common/kernel-consumer/kernel-consumer.c
> +++ b/src/common/kernel-consumer/kernel-consumer.c
> @@ -249,7 +249,6 @@ int lttng_kconsumer_snapshot_channel(uint64_t key, char *path,
>                 while (consumed_pos < produced_pos) {
>                         ssize_t read_len;
>                         unsigned long len, padded_len;
> -                       int lost_packet = 0;
>
>                         health_code_update();
>
> @@ -270,7 +269,7 @@ int lttng_kconsumer_snapshot_channel(uint64_t key, char *path,
>                                  * content of the final snapshot).
>                                  */
>                                 if (!before_first_packet) {
> -                                       lost_packet = 1;
> +                                       stream->chan->lost_packets++;
>                                 }
>                                 continue;
>                         }
> @@ -313,14 +312,6 @@ int lttng_kconsumer_snapshot_channel(uint64_t key, char *path,
>                         }
>                         consumed_pos += stream->max_sb_size;
>
> -                       /*
> -                        * Only account lost packets located between
> -                        * succesfully extracted packets (do not account before
> -                        * and after since they are not visible in the
> -                        * resulting snapshot).
> -                        */
> -                       stream->chan->lost_packets += lost_packet;
> -                       lost_packet = 0;
>                         before_first_packet = false;
>                 }
>
> diff --git a/src/common/ust-consumer/ust-consumer.c b/src/common/ust-consumer/ust-consumer.c
> index 4297d60..74853cd 100644
> --- a/src/common/ust-consumer/ust-consumer.c
> +++ b/src/common/ust-consumer/ust-consumer.c
> @@ -1150,7 +1150,6 @@ static int snapshot_channel(uint64_t key, char *path, uint64_t relayd_id,
>                 while (consumed_pos < produced_pos) {
>                         ssize_t read_len;
>                         unsigned long len, padded_len;
> -                       int lost_packet = 0;
>
>                         health_code_update();
>
> @@ -1171,7 +1170,7 @@ static int snapshot_channel(uint64_t key, char *path, uint64_t relayd_id,
>                                  * content of the final snapshot).
>                                  */
>                                 if (!before_first_packet) {
> -                                       lost_packet = 1;
> +                                       stream->chan->lost_packets++;
>                                 }
>                                 continue;
>                         }
> @@ -1209,14 +1208,6 @@ static int snapshot_channel(uint64_t key, char *path, uint64_t relayd_id,
>                         }
>                         consumed_pos += stream->max_sb_size;
>
> -                       /*
> -                        * Only account lost packets located between
> -                        * succesfully extracted packets (do not account before
> -                        * and after since they are not visible in the
> -                        * resulting snapshot).
> -                        */
> -                       stream->chan->lost_packets += lost_packet;
> -                       lost_packet = 0;
>                         before_first_packet = false;
>                 }
>
> --
> 2.7.4
>



-- 
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list