From patchwork Fri Jan 19 11:40:00 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: 135979 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 2C3D6438FD; Fri, 19 Jan 2024 12:40:18 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A4F0640A75; Fri, 19 Jan 2024 12:40:17 +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 09D0C4029F for ; Fri, 19 Jan 2024 12:40:15 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1705664407; bh=7AigjmPYdPQYkxiU0Iml6upGiuKibmdjBZ9JIk4WMng=; h=From:To:Cc:Subject:Date; b=NRwKF+R+uz26pqwhH7AnyMZ4IBEze/AFRCwXMr6F0kxnQrJOmkaPOBFPz1R4RH2qF fZdWcKA5zTa1rSw/Z6ZMfvH/OmtpGOUWigi+8Y61S8QHHuZv3EMKI98FVvuxTeWvjV mrz4/QzTtmoK7bWea+wAnKjjjKOV8Wm9R9HGDMho= Received: from localhost.localdomain ([240e:83:205:2010:a390:40ae:a390:40af]) by newxmesmtplogicsvrszb9-1.qq.com (NewEsmtp) with SMTP id A0295A51; Fri, 19 Jan 2024 19:40:02 +0800 X-QQ-mid: xmsmtpt1705664402tuwj8pgok Message-ID: X-QQ-XMAILINFO: MCRX/AdJLrpeVJKwLnGB/XaBQE6bM5hFm5x36gwvzs7grqEdqHNaEKmmbwC8a7 VTAyVTsx9JdMpcJx9H2X3vpGJ/BZPEvnb1D3qGy1VNCjYbkX+oKDq0f/LGc6eGNKuKYYc/G19JGI gi+LE4d+OSCh66U/ylHh82LqZaT3eWT5WaUrqPwaEbrpvq9C9ioc2ORmQ3NKejZrD9j9cRwj40yp GYXGubl65SOZKCRT51MwF/Q43QCSuWtC8ujqXvXGnqnlju3wOTHKLguwmpE2bDlIA+1yAYWrNfRl Ebx8YzxA2RxiHt4vxMzzPuG+aGNUbxDccAeuCkiwK78prBzYyM+yyYxIRk4z6yxY3UnfY9UaAKSi awCBsxLcVdXGsbibg/WfNlrOuLLjsOzfmW3eO0CDufl21X3Ox6O3A38T4wvnpUjNpbYsSmTlOpJB OJlpHZAcxAF1ZKE7MfsAzfcRaKFxWEJFfzCSt+W4WWLhmxECOx4Ql9LhJUxBqSIjX1SbmfyWj/PO mkj/5AR2PBq2nTB2UpiM+w4/NTv+T3c3J7yVGGVslvdtN32ARNgTnYz06Zq0tqme8fJQdKp1NBpl s7udQoS7B3M6I1xrhyTmwGxDmXsVzCEukloXC25NqzBJqN2T25E4l+9aqz1DSjHsjNEcrqIjVVyY DMrp4FAjHnTt8xYidB0oY9M4GZQO1ZWVmrX+Bfn/Sb274JS52KU32G0UL31EvUU2VuB5m6bkPOEK dMy3DNsdp7DSb4OSqVlR0Hlu+G/9gbzaXc1aUr+vWTnhSzP6orOaJUFEFQrvKIMBcdX/DSOSHgF6 u0QSVzSZO+VsxBssqjY1r+ZxpndSbB601Lc7u36kYxN+yPnsnFPvwzReXz0ht3XcOx7JnMYn63qJ 6Q3i25xK4C5LyyJEqOVrT2Z5w5AOGUXKB68kuDMTekIRI5CZ2SyZ8iohbApu2mel3g28Fdh/PK X-QQ-XMRINFO: OWPUhxQsoeAVDbp3OJHYyFg= From: sunshaowei01 <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: Fri, 19 Jan 2024 19:40:00 +0800 X-OQ-MSGID: <20240119114000.67384-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 Signed-off-by: sunshaowei01 <1819846787@qq.com> Acked-by: Bruce Richardson Acked-by: Ciara Power --- 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;