From patchwork Sat Jan 20 08:50:54 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: 136007 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 87A6143909; Sat, 20 Jan 2024 09:51:07 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 13102402AE; Sat, 20 Jan 2024 09:51:07 +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 58844402AA for ; Sat, 20 Jan 2024 09:51:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1705740657; bh=pGICy/8s7IpoKmeLEKbXOz1w0JmxUm6XzrrOnQl0APE=; h=From:To:Cc:Subject:Date:Reply-To; b=yF7NCgykBbNRAY7jgJ0oLZibNkZK+PGZeFd6oS3z795d6WULWXtjGc0z9uJqBVYht 3lzbuYewyj1FmoBd3BRQhvNedJgywcaRze64UDO3XS0Fsk+tbdK+/dmuNaEFxWH9Md VYGhzgARXuZ53y8AKOs/3Rs3YUhwSia/xMBPNL0c= Received: from localhost.localdomain ([2408:8207:1851:a300:71c7:2812:f2e:cd5c]) by newxmesmtplogicsvrszc5-0.qq.com (NewEsmtp) with SMTP id CB8932A9; Sat, 20 Jan 2024 16:50:56 +0800 X-QQ-mid: xmsmtpt1705740656txzxx37sc Message-ID: X-QQ-XMAILINFO: NkHKfw09D6j83M2DiZlzAD4paruF4C9+Df0yUzAZDDX895g+cqRaGHMQdoGV3H YvDD7mibip2ItyceJVaw9+CneM+ZMyVKS+1J0FcuMckbry9KmATFJbaSPrEJBc/bnUCBxLPlN3iJ lsbDMgcskJpz4OSg8GooZHtGmgiBq5IKlv0P3cLl7Re9IS/2F1VFzCTof214NQpNeCwdVsaWfL6n 8rH6rwP2exeq3LItrM8RuwkYseMK4C9RkZWHOfilTIQENxmQlq0Zg04sjDxdZyq2owvJLaZSUMhs PRfbbhbfWtDLU78opk46HKlV54tnu9tLnQGiHpKNc+3Y1g35FDsMFriZNoGNLg/ITTnMN9umM5Yh tDIxgIslVpchb7Su9m61VKL7h6DtT3qQKMj4jrIr9rWcXXICVzRTfyMGJkorbZNIgSGWph/J/x90 5LrSOnRn3qdZu789brzTq8bMTZhsywAfniFXoh7kXJ9n1dqTYqxLXmSCvbLUa/CLYQYs1iFv1oyu PZ3lBcoYivQNUPygjRCK/a43ANGKXadujNFDhv/Uat5C9bir1wrMu/Zy6EEc4ZR4Sx+nIMWIRH4H MczJrWJ7+yOCwnCuJzZh2JOmkhSuMuY0GLk12pcYorU2sTnnRsACv7Yp+kHN27TcFLKY/b43EAHs CmQXTHb+hX8VjQjalYNU2hqFOMp+T+0NT9uA294ayI3pKN7sFwHaNto1X5BpCdyyzdiHZubYSwlU OwXoPDAOSRP6+jJau5LajiI1rGoB5yfxyASf4YFVB+1KpAmLJzqDYQ/BaawZRhqphuK3yy4Or/4i p+LnfMj66n6JrQZjUPo+lswL4liJchGo+MfBcspIOFb4U3r/R+1hcxBAw9HUcJTM3KnDZqqxDJ2U W+olyOGcc3k7E8eMbdsdoTwVosom5ic3UgCNpicAdNX2CuVbyjxeJqW0Qo7MrO9OI+bkjWvkrwGL Q79goRKRtQzz1vfsvs0GBype7/Pi3R/ZyYsDnIzN2zja2R87V1kc0bF4lrbkwAeTsgdLlCGfPLtj HWvt0Ciqf27fOXE8RIHerOKh7h++O3xWsZKRM7OsByWqW2Jpqt X-QQ-XMRINFO: MPJ6Tf5t3I/ycC2BItcBVIA= 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:50:54 +0800 X-OQ-MSGID: <20240120085054.18951-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: , Reply-To: tencent_69E4B1D2B6C0865DA223940C173EC4904506@qq.com 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;