From patchwork Sat Jan 20 08:58:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: ShaoWei Sun <1819846787@qq.com> X-Patchwork-Id: 136008 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3C0BD43909; Sat, 20 Jan 2024 09:58:47 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 071FD402AE; Sat, 20 Jan 2024 09:58:47 +0100 (CET) Received: from out162-62-57-49.mail.qq.com (out162-62-57-49.mail.qq.com [162.62.57.49]) by mails.dpdk.org (Postfix) with ESMTP id 911F4402AA for ; Sat, 20 Jan 2024 09:58:44 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1705741116; bh=pGICy/8s7IpoKmeLEKbXOz1w0JmxUm6XzrrOnQl0APE=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=EmFppfiK3v9LrZb/Tnj5G6OQHgQmiyRQv7SXr/6kU/IEXfpKr0dHAplLpb3MQEMyg z9b8CKyHChGz6vYYgT1yxIjjWr+GyjiUMpRdtWNfzkVe1hDHF5aiFZjDUzwl6ZUthW oaD6jNAr5Ryyo0Hunv+5XTKGbBCKKma8UTSVjSJA= Received: from localhost.localdomain ([2408:8207:1851:a300:71c7:2812:f2e:cd5c]) by newxmesmtplogicsvrszb9-1.qq.com (NewEsmtp) with SMTP id EA31C6DE; Sat, 20 Jan 2024 16:58:35 +0800 X-QQ-mid: xmsmtpt1705741115taups05qe Message-ID: X-QQ-XMAILINFO: MkHoH8gM1N8kIdNIqSVEdoyRDRDpiMvJcBPwEwgYPqsEmBsTmP9V0ruI5saMDm uxzHn/ztjmAo8MAOQU+0qml3KgYxcrGk9ZHgSnGMAhjXlkK4lsRp0/KJgHuLnjhZVBrcYq0l/R9t qFS3SAYkpmi8Cye8V7vWmEEaX/ygZ9BOpP7RmyJdxfSnBzCsHmeLUAC4GbW8wKZGt9a6v8qTjI7q YcyzRBDnYwU+uheYr2t7fwPgBVmM2M7yeLAmUV4ICqmdq/xkhuFSVul0qvtiG9Th3roK9QrWHuvS 0hsHDV6+H1I+YKRj06klpg4kTttqpV89we/TTFKMlgqFwbu4tRlHd1BMwt6MXceDvjOD8BDrxWMh RfRWsvt7CJCuy7RJ/JRIQOtLlPVesTQKbSfQN6lXNapVApY6ZmDfeIpEVnP6Zz7SgtBHZAgls6Cr Z+FwBhLm3lGnYKSS8qZkbv2RBpQPlvmLZ7T8465qXKihz3T2gbOSAiI/8Du6lXXLozCWfBSa3hOV fbRPkAK2oVqCoQANS0Qz46RVjOM5cz8WksVOQakGHmvoCSEtUcY+QRTxLxoYJf9MqJojVwZY67Pj rtxULBaLFNFj7duJRePZQsueon7CtRZL5L8BYsyt2tvzUNEpQHniZRYtWjp3MEkfejhKaIbawEak KQUhHQFtXwkqKJQkSWwAYkcn/u6ikEdhC64ZrR3B6ylkifWxEWmYsMbHOFAoWQiSgtfG0WScDBg5 5i6LzykCEWnjxBbniSKP1koj2dJuXPFaYYa1JK8Zr4jZOASYTW2Fzv5g4U7nD1+oM4QFDoLQQrJb UwGQttpxdPN62ZQ+9mFCTN27AK0uZqLQ1+6RWhkpEQOTf0uT5otOZUO7M/24erJ/BQ7np6edXyOJ aSOQFZPic9kEbrnFfmRIIvw+aaInf3SpX5tHFJz9kyC99E3VpIEVDvbtsQCEJjwGoE97fGyqFgIk inSQoRk1yDxIDVJ9t+orLAfVumWxkiBjBDj1IdFsL+8tTodxucEc7HA52uk/+3SnHF+PePeUOkzs T9EQBxNg1PbRoAK04FcTN2/QGMR31aMpZv4tCUYRXk+B/CbTJc0r/mU1HxgvMZBJe0PcbqzDuWCc 7F4RJfPvu2OzmdFJU= X-QQ-XMRINFO: OWPUhxQsoeAVDbp3OJHYyFg= From: Shaowei Sun <1819846787@qq.com> To: dev@dpdk.org Cc: ciara.power@intel.com Subject: [PATCH] [v2]lib/telemetry:fix telemetry conns leak in case of socket write fail Date: Sat, 20 Jan 2024 16:58:32 +0800 X-OQ-MSGID: <20240120085832.19599-1-1819846787@qq.com> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Telemetry can only create 10 conns by default, each of which is processed by a thread. When a thread fails to write using socket, the thread will end directly without reducing the total number of conns. This will result in the machine running for a long time, and if there are 10 failures, the telemetry will be unavailable Fixes: 6dd571fd07c3 ("telemetry: introduce new functionality") Signed-off-by: Shaowei Sun <1819846787@qq.com> Acked-by: Chengwen Feng --- lib/telemetry/telemetry.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/telemetry/telemetry.c b/lib/telemetry/telemetry.c index 31e2391867..0b00c04090 100644 --- a/lib/telemetry/telemetry.c +++ b/lib/telemetry/telemetry.c @@ -378,8 +378,8 @@ client_handler(void *sock_id) "{\"version\":\"%s\",\"pid\":%d,\"max_output_len\":%d}", telemetry_version, getpid(), MAX_OUTPUT_LEN); if (write(s, info_str, strlen(info_str)) < 0) { - close(s); - return NULL; + TMTY_LOG_LINE(ERR, "Socket write base info to client failed"); + goto exit; } /* receive data is not null terminated */ @@ -404,6 +404,7 @@ client_handler(void *sock_id) bytes = read(s, buffer, sizeof(buffer) - 1); } +exit: close(s); rte_atomic_fetch_sub_explicit(&v2_clients, 1, rte_memory_order_relaxed); return NULL;