From nobody Mon Apr 29 15:03:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org ARC-Seal: i=1; a=rsa-sha256; t=1612371304; cv=none; d=zohomail.com; s=zohoarc; b=BWQceeky1mI//1OWT9OKYwEtgLtlKnYQyMpkZjpnYjxi0y30BUm5Hb+Td19jTjr+GDWi3kBrEgckSGSIlHkqHS8KjP2q7xu/wEwCdzyqWXY03iQ0+03TFAAOm+fBHUxnLocJheF000orClugwryFdM02u4xu9L2qa51CxH4yqpA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1612371304; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=r/jJRQffqnGJdz2RLtAuIPIKEc3blFk9hpKWb4WSFjA=; b=E5/GMY+Rk4FlbCoP69XC60SH76Mtiuag28SA/42aekC4clkULQF+S2djNawsB2JZKlcjTGNHXyMcXTGpYYjhKTz8o9Gzj10WC2WtUSt+KPF9F1PGIj70Hj6+kZZC7Jt9P1AF/5BHU2C2VwT9RNgaUOD0mlxFRSZoe0+xbiyLxpM= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1612371304308565.4168491968982; Wed, 3 Feb 2021 08:55:04 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.80970.148662 (Exim 4.92) (envelope-from ) id 1l7LQW-0003FV-Hf; Wed, 03 Feb 2021 16:54:48 +0000 Received: by outflank-mailman (output) from mailman id 80970.148662; Wed, 03 Feb 2021 16:54:48 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l7LQW-0003FO-EO; Wed, 03 Feb 2021 16:54:48 +0000 Received: by outflank-mailman (input) for mailman id 80970; Wed, 03 Feb 2021 16:54:47 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l7LQV-0003Do-Lq for xen-devel@lists.xenproject.org; Wed, 03 Feb 2021 16:54:47 +0000 Received: from isis.lip6.fr (unknown [2001:660:3302:283c::2]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 153216e8-a24f-4064-8feb-d0305b03f932; Wed, 03 Feb 2021 16:54:45 +0000 (UTC) Received: from asim.lip6.fr (asim.lip6.fr [132.227.86.2]) by isis.lip6.fr (8.15.2/8.15.2) with ESMTP id 113GsiS3013800; Wed, 3 Feb 2021 17:54:44 +0100 (CET) Received: from borneo.soc.lip6.fr (borneo [132.227.103.47]) by asim.lip6.fr (8.15.2/8.14.4) with ESMTP id 113Gsi37000552; Wed, 3 Feb 2021 17:54:44 +0100 (MET) Received: by borneo.soc.lip6.fr (Postfix, from userid 373) id 07683AA8BB; Wed, 3 Feb 2021 17:54:44 +0100 (MET) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 153216e8-a24f-4064-8feb-d0305b03f932 From: Manuel Bouyer To: xen-devel@lists.xenproject.org Cc: Manuel Bouyer , Ian Jackson , Wei Liu , Juergen Gross Subject: [PATCH] xenstored: close socket connections on error Date: Wed, 3 Feb 2021 17:54:19 +0100 Message-Id: <20210203165421.1550-2-bouyer@netbsd.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210203165421.1550-1-bouyer@netbsd.org> References: <20210203165421.1550-1-bouyer@netbsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (isis.lip6.fr [132.227.60.2]); Wed, 03 Feb 2021 17:54:44 +0100 (CET) X-Scanned-By: MIMEDefang 2.78 on 132.227.60.2 Content-Type: text/plain; charset="utf-8" On error, don't keep socket connection in ignored state but close them. When the remote end of a socket is closed, xenstored will flag it as an error and switch the connection to ignored. But on some OSes (e.g. NetBSD), poll(2) will return only POLLIN in this case, so sockets in ignored state will stay open forever in xenstored (and it will loop with CPU 100% busy). Signed-off-by: Manuel Bouyer Fixes: d2fa370d3ef9cbe22d7256c608671cdcdf6e0083 Reviewed-by: Juergen Gross --- tools/xenstore/xenstored_core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_cor= e.c index 1ab6f162cb..0fea598352 100644 --- a/tools/xenstore/xenstored_core.c +++ b/tools/xenstore/xenstored_core.c @@ -1440,6 +1440,9 @@ static void ignore_connection(struct connection *conn) =20 talloc_free(conn->in); conn->in =3D NULL; + /* if this is a socket connection, drop it now */ + if (conn->fd >=3D 0) + talloc_free(conn); } =20 static const char *sockmsg_string(enum xsd_sockmsg_type type) --=20 2.29.2