From patchwork Tue Jan 30 01:57:04 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: 136208 X-Patchwork-Delegate: david.marchand@redhat.com 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 DF3B443A04; Tue, 30 Jan 2024 02:57:18 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B2825402C2; Tue, 30 Jan 2024 02:57:18 +0100 (CET) Received: from out203-205-221-155.mail.qq.com (out203-205-221-155.mail.qq.com [203.205.221.155]) by mails.dpdk.org (Postfix) with UTF8SMTP id D10A14029A for ; Tue, 30 Jan 2024 02:57:16 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1706579829; bh=E5miMliYkL2iRqAq7Kh/6yMwARf5U6var0WBF0hFW8o=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=lgSaLwuBzBw69QmaOs3acw5uPfUJK5xbgs1GBC28F2cWzdrw9IqL8hAEuDyXvO2Nq GBTjy84wPgVleuoffEaxp4WoEazgIT5RcDi3q4Ks7gFu5nPzqitRhXr647qtv4VT+B HHaPoMF+FBMa8qGsMEY1IKUr+/3lLp6awkDRXS7I= Received: from localhost.localdomain ([240e:83:205:2010:cac7:1ec8:cac7:1ec9]) by newxmesmtplogicsvrsza10-0.qq.com (NewEsmtp) with SMTP id E4727659; Tue, 30 Jan 2024 09:57:07 +0800 X-QQ-mid: xmsmtpt1706579827ty96givi7 Message-ID: X-QQ-XMAILINFO: NvKyM24IHTKSPGrgOEoK1R0CK8ZNvy5dcIlxaoa5s1PEkHNtYkrRAep014DfIN XUKX5zzmjkeNKQAFP0pj7j3VnJRMFe39VG/4IhiowYhGf0cUmequimch4K8vDYiCG+/OBiz+BiXj UI2qlJJypGvBaFdD88v/QHHUWJ1FeqyTrxLMue9Ue6/niv3+oQ6EM+Fd+F8IwQ180ivpYDOD1Qlt znZLHk22RALb6RAIq2y656J5Nn9vol8h7Ncry9bxbYTN3r4nyX8kGwSc9jJtpFA/J49IxXODU/6D GDP8dtTjD8TxESu7lrFDGj9sUdK392Zdi26C4wW2jx2nl4NyvgeYEgP0tIemEC4v4M5zJMTNACPW JueUNO1A2G+qeqK/+iSUUQNRLxMxkKi1Ozu44MLrhYI6/Ge+Ea9Ftj9PO5fxsCSJJx9p4/Pizp9x GoCuFeeabRpcIehHX9VUA7kqGwnK8nvEZ7MUEQ4/Zu6hNHhY892QbcbYSl4QP9ykhPpVpSmX6Tf2 a9UMMnthFl5SbH8qS+w6nu9bKR3Jp0cFVqRGtEukYo/JEG26SsnqDI7E/exn74DKF5veKE1HAIM/ i6QeDVlihfq8ohULI4NdRcHiwGNtu4ZSw4/lvADVlxWoqksF7noQUy9mzhrnx1bW6t2pBxy6V39l B0DL5UkRaROQbClB1UytHDNjsUe4SRMA2ed40InwYuXYbcRe69HaRk6cYK55e34brZOmv/kV1K6o t/LT93hotwDzHh3s4cAUEWrXypu1U+asd1CjVtTtQ1OKiJ1SG/XhZ5gKv1B9WDY7/8rYT4aP/V4e +BbWp0j9sMuYWFOGu1A1vSOKL6xHWAvoGl70e4cQo6IDMWr9Wz0ES+luOPOIUrD1/Q2y68Hb7X7W mx/JMJs9txVrxPXpui3FK+9TjIrWK0RcRAuplHeuTPGYYRNbQJwVNaiuHrSWjJkWtbPfwZq4s7u2 0ylRHk1IY= X-QQ-XMRINFO: Mp0Kj//9VHAxr69bL5MkOOs= From: Shaowei Sun <1819846787@qq.com> To: dev@dpdk.org Cc: ciara.power@intel.com, Bruce Richardson , Chengwen Feng Subject: [PATCH] [v3]lib/telemetry:fix telemetry conns leak in case of socket write fail Date: Tue, 30 Jan 2024 09:57:04 +0800 X-OQ-MSGID: <20240130015704.8019-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: Bruce Richardson Acked-by: Ciara Power 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;