From patchwork Fri Jan 19 16:25:31 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: 135989 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 1071F43900; Fri, 19 Jan 2024 17:25:46 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EA9364029F; Fri, 19 Jan 2024 17:25:45 +0100 (CET) Received: from out203-205-221-240.mail.qq.com (out203-205-221-240.mail.qq.com [203.205.221.240]) by mails.dpdk.org (Postfix) with ESMTP id 932DE40279 for ; Fri, 19 Jan 2024 17:25:43 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1705681535; bh=pGICy/8s7IpoKmeLEKbXOz1w0JmxUm6XzrrOnQl0APE=; h=From:To:Cc:Subject:Date; b=Zds0dLEsSgJZAu2QvjDtvBPR9+D9IpPwYDyXcB6A/MiuJK9Mq8lQ1t+TYqEnLEnjM fTAKO5eEmgZ9Z2zeqFBYg3tDNz4oRb1bbyy8HZbyAi8n80EPUuV6lPfIU872jggTsf R4WnU+SHHCL9cVoCUeZditP4afmVL0gImlB5IJXc= Received: from localhost.localdomain ([2408:8207:1851:a300:71c7:2812:f2e:cd5c]) by newxmesmtplogicsvrszc5-2.qq.com (NewEsmtp) with SMTP id 661A14BE; Sat, 20 Jan 2024 00:25:33 +0800 X-QQ-mid: xmsmtpt1705681533tg6iuz0v3 Message-ID: X-QQ-XMAILINFO: OKkKo7I1HxIedgj7nymveLPjzOdlgk+JQ+HMETXKByknvPHF/Pf2TtYPJRQM78 8CV88QoyzW40XMsiQO7UKgbw//Aa4toZzH5+vjQWZTtAZEuq13W+jMDjBfTnQtvt5ss3cS7SzbSd 8NZnQl1KPhJeFJ+DKv/LAxYRt+gtEHsWrq4X1a9LF0mgMx38u1o7vo4UMzUcb+itAtm73X34Dmhs eDvLATeSE7f+Osq9ZNgIk0EVib5IFLP5paV6f0gKXWMTS65OfbHwoWl/KP/bdH+VvzziSygb6YGJ Wh9cv2/+MgIJ2ROZy6ugFBKC77413jLftHYersCUtN9lDNWZZl6WMwBy4kZzf41qmk4Vewnz+4uD yyVWxQeC5Pu2QqOE1gygQekJSRfW50giT95bib9pw1nXIAHHVZsZsibry97oRp++asnW/LBTltuM 34lBD+HB0M6l5H4NdYnPjw8bsqKtoRIDN7aqPWWi5WzfVQOrgLvp581AjNuOd41wOt/GPTkKBGM7 4B6T2vkVYqxizAummkEom/PwwhjXKSIthcqQYbkLbZ2qMQndJtuLh/OwIinOG8jV1LPryQXBauoB 5eCLZqDg5kfvQQJ6vZs7YldV1qgFGxrWzePnU3MzcGUMXyz21P+uCjK9lNRcDO25qzOrKzCS4skN i+d8Yae39BAsO1TkihcKpenEBpE/RodFY0DIgtiClWNA2DZm3fyfdIiguip3zDiv5nxJh0LvhYc2 /69e85nu+irMGctW8GJHX/BC1q33A/sCKTjW86B8/0ggoB2VGnoePmCs2+AvnfjGYoqaIqI0LGIC GjBO0ISsC/Dfzo9DG66VAxhOc9tK8Nmn+zLmlfEOJqatxsXnAqsH/UMfpAE4zJIC6JYpOY+8B/SY IvhLW+FYKYc/m7CjblHOlRNDxJ+Aa0/HJge/NK1RiLGyHVz0z1BPmUApy16oBdmDCy8c4kKnIeUh wpC6A9K5c4/UvGLT4Bo0z46Obp5Nkrr6dIzeEOWWOU4NdnvkkIZNBQlnhdXx7CZOH7oZ0qoZzLdX 7+gSSFtAdjmKczEsgHNE5nhE8r+WA1xavq70XuAR+w+tu/YbLf X-QQ-XMRINFO: Nq+8W0+stu50PRdwbJxPCL0= From: Shaowei Sun <1819846787@qq.com> To: dev@dpdk.org Cc: ciara.power@intel.com Subject: [PATCH] lib/telemetry:fix telemetry conns leak in case of socket write fail Date: Sat, 20 Jan 2024 00:25:31 +0800 X-OQ-MSGID: <20240119162531.77817-1-1819846787@qq.com> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) 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> --- 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;