[PATCH v2 1/2] telemetry: correct json empty dictionaries

Bruce Richardson bruce.richardson at intel.com
Mon Jan 8 12:01:42 CET 2024


On Sun, Dec 24, 2023 at 05:02:00PM -0500, Jonathan Erb wrote:
> Fix to allow telemetry to handle empty dictionaries correctly.
> 
> This patch resolves an issue where empty dictionaries are reported
> by telemetry as '[]' rather than '{}'. Initializing the output
> buffer based on the container type resolves the issue.
> 
> Signed-off-by: Jonathan Erb <jonathan.erb at threater.com>

One minor comment below.

Acked-by: Bruce Richardson <bruce.richardson at intel.com>

> ---
>  .mailmap                  | 2 +-
>  lib/telemetry/telemetry.c | 6 +++++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/.mailmap b/.mailmap
> index ab0742a382..a3302ba7a1 100644
> --- a/.mailmap
> +++ b/.mailmap
> @@ -675,7 +675,7 @@ John Ousterhout <ouster at cs.stanford.edu>
>  John Romein <romein at astron.nl>
>  John W. Linville <linville at tuxdriver.com>
>  Jonas Pfefferle <jpf at zurich.ibm.com> <pepperjo at japf.ch>
> -Jonathan Erb <jonathan.erb at threatblockr.com> <jonathan.erb at banduracyber.com>
> +Jonathan Erb <jonathan.erb at threater.com>

FYI, it's advisable to keep old email addresses in this file, since it is
then used to map the older email addresses to the new one. Just add your
new correct email address as the first one on the line.

>  Jonathan Tsai <jonathan1.tsai at intel.com>
>  Jon DeVree <nuxi at vault24.org>
>  Jon Loeliger <jdl at netgate.com>
> diff --git a/lib/telemetry/telemetry.c b/lib/telemetry/telemetry.c
> index 92982842a8..0788a32210 100644
> --- a/lib/telemetry/telemetry.c
> +++ b/lib/telemetry/telemetry.c
> @@ -169,7 +169,11 @@ container_to_json(const struct rte_tel_data *d, char *out_buf, size_t buf_len)
>  		d->type != TEL_ARRAY_INT && d->type != TEL_ARRAY_STRING)
>  		return snprintf(out_buf, buf_len, "null");
>  
> -	used = rte_tel_json_empty_array(out_buf, buf_len, 0);
> +	if (d->type == RTE_TEL_DICT)
> +		used = rte_tel_json_empty_obj(out_buf, buf_len, 0);
> +	else
> +		used = rte_tel_json_empty_array(out_buf, buf_len, 0);
> +
>  	if (d->type == TEL_ARRAY_UINT)
>  		for (i = 0; i < d->data_len; i++)
>  			used = rte_tel_json_add_array_uint(out_buf,
> -- 
> 2.34.1
> 


More information about the dev mailing list