From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8B79542CBC for ; Thu, 15 Jun 2023 03:33:21 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8503642D10; Thu, 15 Jun 2023 03:33:21 +0200 (CEST) Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) by mails.dpdk.org (Postfix) with ESMTP id 13CD140DDA for ; Thu, 15 Jun 2023 03:33:21 +0200 (CEST) Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-3f8c9cb3144so11576755e9.0 for ; Wed, 14 Jun 2023 18:33:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686792801; x=1689384801; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+Dtmsi56JLHQZVYLIsvtUAt5OAYIxh/XtmTyag8OHcA=; b=KlrVKGSBE6gRQixXJHX62RJxblCEACtlRrEQFZmZzRDeDSGvVgCxcl7zKarUMOEVgF Rce2o2WhJ5ITawlpl4wW1WCuVk/HyKobJMMxUEn5wmm84R97tLTyIPbpXrM1KR+gpKhA SyeM6fx7ebR+no3vIaLJQGUYyfv7xoK49VjuHCb5Ns50Chw2R9qP3KXBGERnQZSz2h5x fJOMM0/s3LfmfQjtPV4p0QECRhdebncAklycyaOmwsVkzYonp2PdDomWqUzsfkGe2ShB 4ZNAjXiudYbrMK2NqCZHcU41Jvwi4DZQM/x+5xiVWLcJ56diiDJJC6muIAcGEtaAaRVM w1bA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686792801; x=1689384801; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+Dtmsi56JLHQZVYLIsvtUAt5OAYIxh/XtmTyag8OHcA=; b=UwwBif6C3RY3GIp7aYPqC4QreecRp3ylFt/dLQ/XtvotAZ92+HLZ50h6WZf4y1dNig 6Am8lqxRFSjP4Q2ZdGY8awaZ4Zpja+P6tNO/NAE5vhXWjp0twU9VKOGuk0xJSqmpk908 RfWc/agsNv6bSe/RT8GXE0qQwH1p3JVTT/EghJ7jKA57qGsGsbA4TQOHeu4S+WUBvddi 4+GPD+VmfQ87onnW2vw6749z+RrtI2hIVmRdVEPVRH2JBr70Xf7k9d8a3nqt0exp4I/8 8ZZ8ucWkZSZgKvmSTnxssE0b3FDZ8Qhls0uUAZKH5KG14rWLnRI48YtvU0SuKnZ0Ejzu +qDw== X-Gm-Message-State: AC+VfDwUfIu0vyHjmJBK+EOPIBQchtrZxXkKyGOTNNYcch0CmNRxg16M WH4lyJ5OPsdkxw/seym/66pW/1u0EU7afA== X-Google-Smtp-Source: ACHHUZ7EQuMbGl4BnDGBMIcvZz1So25kQxxJZ4fDwJS0zvC3I53O4Emzy6u7C8x/BxfWDPOwIqvdtg== X-Received: by 2002:a1c:7718:0:b0:3f7:2e89:f306 with SMTP id t24-20020a1c7718000000b003f72e89f306mr11019647wmi.21.1686792800659; Wed, 14 Jun 2023 18:33:20 -0700 (PDT) Received: from localhost ([2a01:4b00:d307:1000:f1d3:eb5e:11f4:a7d9]) by smtp.gmail.com with ESMTPSA id m13-20020a7bce0d000000b003f42a75ac2asm18884226wmc.23.2023.06.14.18.33.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Jun 2023 18:33:20 -0700 (PDT) From: luca.boccassi@gmail.com To: Bruce Richardson Cc: Tyler Retzlaff , dpdk stable Subject: patch 'telemetry: fix autotest on Alpine' has been queued to stable release 20.11.9 Date: Thu, 15 Jun 2023 02:32:03 +0100 Message-Id: <20230615013258.1439718-8-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230615013258.1439718-1-luca.boccassi@gmail.com> References: <20230615013258.1439718-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 20.11.9 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 06/17/23. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/fa193cc3a43f7e495c174bc245686f8f117680ee Thanks. Luca Boccassi --- >From fa193cc3a43f7e495c174bc245686f8f117680ee Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Wed, 5 Apr 2023 17:03:22 +0100 Subject: [PATCH] telemetry: fix autotest on Alpine [ upstream commit 6ffce64857216344f02ee88d92cb69ee241b3c7b ] On Alpine linux, the telemetry_data_autotest was failing for the test where we had dictionaries embedded in other dictionaries up to three levels deep. Indications are that this issue is due to excess data being stored on the stack, so replace stack-allocated buffer data with dynamically allocated data in the case where we are doing recursive processing of telemetry data structures into json. Bugzilla ID: 1177 Fixes: c933bb5177ca ("telemetry: support array values in data object") Fixes: d2671e642a8e ("telemetry: support dict of dicts") Signed-off-by: Bruce Richardson Acked-by: Tyler Retzlaff --- lib/librte_telemetry/telemetry.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/librte_telemetry/telemetry.c b/lib/librte_telemetry/telemetry.c index ed00c17d9f..3f80d72c3f 100644 --- a/lib/librte_telemetry/telemetry.c +++ b/lib/librte_telemetry/telemetry.c @@ -217,7 +217,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) break; case RTE_TEL_CONTAINER: { - char temp[buf_len]; + char *temp = malloc(buf_len); + if (temp == NULL) + break; + *temp = '\0'; /* ensure valid string */ + const struct container *cont = &v->value.container; if (container_to_json(cont->data, @@ -228,6 +232,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) v->name, temp); if (!cont->keep) rte_tel_data_free(cont->data); + free(temp); } } } @@ -259,7 +264,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) buf_len, used, d->data.array[i].u64val); else if (d->type == RTE_TEL_ARRAY_CONTAINER) { - char temp[buf_len]; + char *temp = malloc(buf_len); + if (temp == NULL) + break; + *temp = '\0'; /* ensure valid string */ + const struct container *rec_data = &d->data.array[i].container; if (container_to_json(rec_data->data, @@ -269,6 +278,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) buf_len, used, temp); if (!rec_data->keep) rte_tel_data_free(rec_data->data); + free(temp); } used += prefix_used; used += strlcat(out_buf + used, "}", sizeof(out_buf) - used); -- 2.39.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-06-15 01:56:35.175810405 +0100 +++ 0008-telemetry-fix-autotest-on-Alpine.patch 2023-06-15 01:56:34.499539817 +0100 @@ -1 +1 @@ -From 6ffce64857216344f02ee88d92cb69ee241b3c7b Mon Sep 17 00:00:00 2001 +From fa193cc3a43f7e495c174bc245686f8f117680ee Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 6ffce64857216344f02ee88d92cb69ee241b3c7b ] + @@ -17 +18,0 @@ -Cc: stable@dpdk.org @@ -22,2 +23,2 @@ - lib/telemetry/telemetry.c | 21 ++++++++++++++++++--- - 1 file changed, 18 insertions(+), 3 deletions(-) + lib/librte_telemetry/telemetry.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) @@ -25,26 +26,5 @@ -diff --git a/lib/telemetry/telemetry.c b/lib/telemetry/telemetry.c -index deba7f34a3..590720bfa6 100644 ---- a/lib/telemetry/telemetry.c -+++ b/lib/telemetry/telemetry.c -@@ -208,7 +208,11 @@ container_to_json(const struct rte_tel_data *d, char *out_buf, size_t buf_len) - break; - case RTE_TEL_CONTAINER: - { -- char temp[buf_len]; -+ char *temp = malloc(buf_len); -+ if (temp == NULL) -+ break; -+ *temp = '\0'; /* ensure valid string */ -+ - const struct container *cont = - &v->value.container; - if (container_to_json(cont->data, -@@ -219,6 +223,7 @@ container_to_json(const struct rte_tel_data *d, char *out_buf, size_t buf_len) - v->name, temp); - if (!cont->keep) - rte_tel_data_free(cont->data); -+ free(temp); - break; - } - } -@@ -275,7 +280,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) +diff --git a/lib/librte_telemetry/telemetry.c b/lib/librte_telemetry/telemetry.c +index ed00c17d9f..3f80d72c3f 100644 +--- a/lib/librte_telemetry/telemetry.c ++++ b/lib/librte_telemetry/telemetry.c +@@ -217,7 +217,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) @@ -63 +43 @@ -@@ -286,6 +295,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) +@@ -228,6 +232,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) @@ -71 +51 @@ -@@ -311,7 +321,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) +@@ -259,7 +264,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) @@ -73,2 +53,2 @@ - d->data.array[i].uval); - else if (d->type == TEL_ARRAY_CONTAINER) { + d->data.array[i].u64val); + else if (d->type == RTE_TEL_ARRAY_CONTAINER) { @@ -84 +64 @@ -@@ -321,6 +335,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) +@@ -269,6 +278,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s) @@ -90,2 +70,2 @@ - break; - } + used += prefix_used; + used += strlcat(out_buf + used, "}", sizeof(out_buf) - used);