From nobody Mon May 6 20:30:15 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1599159865; cv=pass; d=zohomail.com; s=zohoarc; b=oC8v4PxZ6UC0f4QlSLvNFgTQZN/LivGO9YSiF24DHRYO8r2fjS3OzpPylLwDNWbfG9Qs0K7kRd325DHFO6go/yWX/uPyoTdMffPZ+n1dUZTppUrh4ppKQih3yw9Oo7npDg186YeB3+kfNcNCCZ+lnje/kxPXU3LQwx6zdcqNtos= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599159865; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2DmC55TpoMGZLDIUhubaMNJRY1dQ7Hcx2jgNBEcSs4c=; b=c1nSrujSG/Jikc0c4ZUFX/tcWu4MWF4Ox8rzIaNh+1W11SjntCzg5MS5ilgHQBD+6EYNGRcjhf3isaYQY6ieNsS5+zozyZ1CnVJbN5CViIxmD4Wl0vqn4+nd0tvj03f8Gyi3RzGJUnygZLZPGuFJH9PjUsoabX9ANI6PUGvNgzA= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass header.from= (p=quarantine dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599159864905364.1240663545119; Thu, 3 Sep 2020 12:04:24 -0700 (PDT) Received: from localhost ([::1]:42536 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDuX0-0000ly-5c for importer@patchew.org; Thu, 03 Sep 2020 15:04:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51586) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDuW7-0007hl-D0; Thu, 03 Sep 2020 15:03:27 -0400 Received: from mail-eopbgr20133.outbound.protection.outlook.com ([40.107.2.133]:10118 helo=EUR02-VE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDuW3-0006yx-OI; Thu, 03 Sep 2020 15:03:26 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3159.eurprd08.prod.outlook.com (2603:10a6:209:46::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.16; Thu, 3 Sep 2020 19:03:16 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b179:9641:7589:d692]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b179:9641:7589:d692%7]) with mapi id 15.20.3348.015; Thu, 3 Sep 2020 19:03:16 +0000 Received: from 255.255.255.255 (255.255.255.255) by AM3PR04CA0136.eurprd04.prod.outlook.com (2603:10a6:207::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.15 via Frontend Transport; Thu, 3 Sep 2020 19:03:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gIXs66YGD95CWhkvdxdT2ooEGS6tWqRamVErIDu65ji0Ib/4Uh90eOIL7F3B17mLf0j9uop+qKmRufd+eJia+772/6otyA7+FrD3pcrAiWnBXzRh1C9movaEDOAjhhBqHk1iJ5kBtmIbRmSSScIqhGgKN1yujVm+2M/IXhbG3d6E7BEA/LAsg1U6fE8sQ+xtjlXfxTCdUiYV6iU9sPyVnm7tVVxpxYmiyDqdt3JNXhG5iBp30TcvWT6iCoqaWvPeVxiDs3tp3JRP8p9/DmzbsDw/ywhbwa6XdcGcsX10Td0oaApXDgJaIfvbMUZBrc2FF/x+QYHuQCaTzYvJNvzTAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2DmC55TpoMGZLDIUhubaMNJRY1dQ7Hcx2jgNBEcSs4c=; b=iaGcpet6lrqLO3/xI9FYOdW4dNq9san79mFeTRQ6OHqGruqC6XQ9ewj6EjmUFJQq24m3ifZ01ApG9NfAu/adRmygFeWfIXCVRP3ToD8Vj3ljymzB9/4vzjg/XSzg8Uw0/7tp53EVLsVisGPrN8d/lYmT4MfasV2O8YMdGMgoxqwhxfQxzl5XyBzmkgMzGAES/ebp1ecEG97OIxML1qbLcjzaKOmXFYNpIUIUviarY70o/nR8DUh7+d+5at9OhICFNzD6xtEuSufOxyQNqOt6A0zpKgz5KStKG4Qyhlwxx3Sj+R8nkUpmHrcem2gC34FrUo58fkbXKiEvHgTNYqpxnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2DmC55TpoMGZLDIUhubaMNJRY1dQ7Hcx2jgNBEcSs4c=; b=pL0qO7ffBTU0bBRYFUNP4gp+MwpjK9hb+uqioCYn1QzXLJH55FT7BL2wxE6pOroxakAA09c5XM9RzeouOXp+kM9BbAm5fllhD7k6JD6vkil4/B7oA6YoIJ/95mGACH0qjq9udNOmBn0Zh18bIMbkN5kk/GFg06PoOlYOT2dssP0= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=virtuozzo.com; From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, mreitz@redhat.com, kwolf@redhat.com, eblake@redhat.com, vsementsov@virtuozzo.com, den@openvz.org Subject: [PATCH 1/4] block/nbd: fix drain dead-lock because of nbd reconnect-delay Date: Thu, 3 Sep 2020 22:02:58 +0300 Message-Id: <20200903190301.367620-2-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200903190301.367620-1-vsementsov@virtuozzo.com> References: <20200903190301.367620-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM3PR04CA0136.eurprd04.prod.outlook.com (2603:10a6:207::20) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Mailer: git-send-email 2.18.0 X-Originating-IP: [185.215.60.171] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c657bace-3773-4e34-ee27-08d8503c03ae X-MS-TrafficTypeDiagnostic: AM6PR08MB3159: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:139; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pkMfn9p54gnX7jRRVOJL1F0vHaqVBpLuiKqW7otSjbXLyU/tmEaKCxT+VugnlNE+2CCM6h3MGtE8jjAFLJ8G48uTTc2pq3QEX9Kt6lQbI+BpmE/YuPhpykrt1pOCLb5+9CF9buQF2gGDyG0mVYahs3QMtdKH/0IS9AmkAe+b3VaDL7n6zwOvcWpd4e2RTL2dgrEx4ZjQVNmqIstfCuYB0cOD7IYBDvifIFAwyh1Akra4NjobYlmvicbd9Fui9Kbi2vY4zy/nh6Pq3oEVGpv8sskzvNrIJR29uUY12vwnIFf1Y6HTXtxV8TFoXODQim0HGlOBTn0yl97TCQN3fkw0ZQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(396003)(136003)(376002)(39850400004)(366004)(186003)(6916009)(8936002)(2616005)(6486002)(66476007)(8676002)(2906002)(956004)(66556008)(66946007)(478600001)(107886003)(86362001)(1076003)(316002)(26005)(36756003)(4326008)(52116002)(5660300002)(83380400001)(6666004)(16576012); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: lMMfWvqu/ko9+gzG7raJSPxXM3w84d+4TcBQYTXAPDIgcy5ygFwXofBVZIsuKvZfznFEyJ/IzOuiC2P/qqR61FhLHhvfOQQ6S3rH1jgofTO8BrMOcswd5TlJxnLIH/pqbETW89K/qaMmhU29WXHLDvSIB2/iTEu5A2vJVNxWAsAifhIGbzzWZVsDWDm09Iwe7ZK6FtbLDm7znkDy5GUHGRpSUq9UJbqf5q8RAPr/TjL9OQdotXAYhobw0ZRkOVPjMtm7wWVLHgASikbYis6trYTZrRCdZJOlVbGlTk4rcfbH2qpAXPnyEesEDw9ISaA8L1xY28nHBajIDUrkGc8FbOXjCbPbAIydaxwmZ/WWSx4CKRRoYAReEohcT3bOaFinqXUblByEmuhBsdQZyPzRBmVoxdprogE4BOUCXsej4TMYr/w61GHbwYxcBvhwOye8aqel7atHNy22f4PnfbqunC7TbbDPTIiZbZecRlXEgY5dvTrzYpOv1ckC+C7jPEtvAof+2EBFwlNum3GlHTKnbYUOOet1a7AgXkubS1ywOz7ss1ZYVklxWNKI9AQOfowyaXuIddU04RNDBlDyg3bsn3fwrAXMLnVNgG3zlrORINMgl2cTNRWejHlX+JktFeXvLqGkTSvhIRItC+7M6cGJhQ== X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: c657bace-3773-4e34-ee27-08d8503c03ae X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2020 19:03:16.4743 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QhuXH5z1ByotXpKdLl6O90V3UyuMqOhGiWaZ1WrkSCxfkKQq6si22FIkJlqwu7PiD4e46K9VtUlheCqv+RUfCg/zOsZiNNiaZbIc1G0MGuw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3159 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=40.107.2.133; envelope-from=vsementsov@virtuozzo.com; helo=EUR02-VE1-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/03 15:03:21 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Spam_score_int: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_ILLEGAL_IP=1.3, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We pause reconnect process during drained section. So, if we have some requests, waiting for reconnect we should cancel them, otherwise they deadlock the drained section. How to reproduce: 1. Create an image: qemu-img create -f qcow2 xx 100M 2. Start NBD server: qemu-nbd xx 3. Start vm with second nbd disk on node2, like this: ./build/x86_64-softmmu/qemu-system-x86_64 -nodefaults -drive \ file=3D/work/images/cent7.qcow2 -drive \ driver=3Dnbd,server.type=3Dinet,server.host=3D192.168.100.5,server.por= t=3D10809,reconnect-delay=3D60 \ -vnc :0 -m 2G -enable-kvm -vga std 4. Access the vm through vnc (or some other way?), and check that NBD drive works: dd if=3D/dev/sdb of=3D/dev/null bs=3D1M count=3D10 - the command should succeed. 5. Now, kill the nbd server, and run dd in the guest again: dd if=3D/dev/sdb of=3D/dev/null bs=3D1M count=3D10 Now Qemu is trying to reconnect, and dd-generated requests are waiting for the connection (they will wait up to 60 seconds (see reconnect-delay option above) and than fail). But suddenly, vm may totally hang in the deadlock. You may need to increase reconnect-delay period to catch the dead-lock. VM doesn't respond because drain dead-lock happens in cpu thread with global mutex taken. That's not good thing by itself and is not fixed by this commit (true way is using iothreads). Still this commit fixes drain dead-lock itself. Note: probably, we can instead continue to reconnect during drained section. To achieve this, we may move negotiation to the connect thread to make it independent of bs aio context. But expanding drained section doesn't seem good anyway. So, let's now fix the bug the simplest way. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Eric Blake --- block/nbd.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/block/nbd.c b/block/nbd.c index 9daf003bea..912ea27be7 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -242,6 +242,11 @@ static void coroutine_fn nbd_client_co_drain_begin(Blo= ckDriverState *bs) } =20 nbd_co_establish_connection_cancel(bs, false); + + if (s->state =3D=3D NBD_CLIENT_CONNECTING_WAIT) { + s->state =3D NBD_CLIENT_CONNECTING_NOWAIT; + qemu_co_queue_restart_all(&s->free_sema); + } } =20 static void coroutine_fn nbd_client_co_drain_end(BlockDriverState *bs) --=20 2.18.0 From nobody Mon May 6 20:30:15 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1599159976; cv=pass; d=zohomail.com; s=zohoarc; b=KxHCBU62YE7++0sURBSsIJWzffJCKMY9M1xhXuGs50D9DklbAoqmB6kbAthoqrdJHS5YumhU/0P5f6GoXbRWQVFM4zQJP7p8aBoPgaieuJIKxxnf/l7OEgIh8Un4WnOXsPQ9GCpLP4OQTgOZMjIwW2hQgNvAS9GIUmI8utqPm/U= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599159976; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=FqXCMMp9dondScYl30U2gRZUl30Lwzr8H7dVnXO5HNE=; b=LzFPcWYJLicRDgCH+rOyis9HDghi8hzdJIXy0jXqfTQBdn4NbaOboXGPvlAwt2sHuC0byt3eViiCpSJBE6rtVlOSdvVGg/1YR5rgfkIAo6XyZgh0WA5vR9LKY5uXTdxRB0vvbxScz3y6s0Q3MZRxK1Uu3oioD0NifJafCCz+OGc= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass header.from= (p=quarantine dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599159976234427.8735623884884; Thu, 3 Sep 2020 12:06:16 -0700 (PDT) Received: from localhost ([::1]:48060 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDuYo-00036q-R3 for importer@patchew.org; Thu, 03 Sep 2020 15:06:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51632) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDuW8-0007kI-Iu; Thu, 03 Sep 2020 15:03:28 -0400 Received: from mail-eopbgr20133.outbound.protection.outlook.com ([40.107.2.133]:10118 helo=EUR02-VE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDuW7-0006yx-42; Thu, 03 Sep 2020 15:03:28 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3159.eurprd08.prod.outlook.com (2603:10a6:209:46::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.16; Thu, 3 Sep 2020 19:03:17 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b179:9641:7589:d692]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b179:9641:7589:d692%7]) with mapi id 15.20.3348.015; Thu, 3 Sep 2020 19:03:17 +0000 Received: from 255.255.255.255 (255.255.255.255) by AM3PR04CA0136.eurprd04.prod.outlook.com (2603:10a6:207::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.15 via Frontend Transport; Thu, 3 Sep 2020 19:03:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WeWP2aSEMQyczpJ7CNYehl1WMp4McqKq4ypg5rrWxaLI+emCYp4AO9y2uWu2QxWVCbcbg4TUHQzQm6HMokkBLAlKFWjljZihjlvp86Pm2zhYXPHxP+y46rMGh37K6v/TwbEFjtPBP53FzkCTYlmMeNURTbEu27Kjp7VKjdtwa4sCGn9f3IRCatRPo30oxEn6jWnQLBoK4USyKYKYVv0aFlMqGXQIJ0soRJzzbDoD8btglPBurtR8xvMjbeoyTaDbzzBxS/EXxi9A9WH+SjkiWk+RqcDSgYPfcmiO2nc58NVbTzWHpJSKSCe20l42Nm+YNU3Kjq2eZte2qYk3jmQQ9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FqXCMMp9dondScYl30U2gRZUl30Lwzr8H7dVnXO5HNE=; b=WWJbqph5bXGTNFGk8pLEsWHRxL7dUNx8T4434V9miwMY6sObVMYhWZdbqmXsnTilA2Rta6Sf2zgVaoufiJFEnOhUf46muQgId1yX+4It1tIDgCCGAZkw4xlO7HcyCf5vNfa2GkP/y615tdKtzVLdhAXZhLGgMFS5HwTwW/ThoDfa6QoW28ucivMm54pzpssdvW6+udkELGYV4gxyB06aiUC/0yjeQDx6/IGL1N4wc1MoYBdTrZvBRH5DlsSvpIeEMeAuZuNEzEfkAszscOoRu4e63UWTa8ZMdQqcIViCrqj0Jld5BTwKgqjwzSLa9tXlInnVNwvnKb49CGGoSKZ4Gw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FqXCMMp9dondScYl30U2gRZUl30Lwzr8H7dVnXO5HNE=; b=rQDn5AJfr2t2isoDN66pe3lUppvwnNreEAj0XxL5a1TETi47Eujcqn+Kdj7Zm5FUda87ydU/qzqrlkR5xUlypRGbU9MWtwXpbFAoqfqBGcr+278VNy6UKuOIkkJ9dI4hMifJWRb6395o2GcxhelaaaEQH98S2q3IUuayv5L0Sks= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=virtuozzo.com; From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, mreitz@redhat.com, kwolf@redhat.com, eblake@redhat.com, vsementsov@virtuozzo.com, den@openvz.org Subject: [PATCH 2/4] block/nbd: correctly use qio_channel_detach_aio_context when needed Date: Thu, 3 Sep 2020 22:02:59 +0300 Message-Id: <20200903190301.367620-3-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200903190301.367620-1-vsementsov@virtuozzo.com> References: <20200903190301.367620-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM3PR04CA0136.eurprd04.prod.outlook.com (2603:10a6:207::20) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Mailer: git-send-email 2.18.0 X-Originating-IP: [185.215.60.171] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bcead24e-d78c-42eb-b7fc-08d8503c0420 X-MS-TrafficTypeDiagnostic: AM6PR08MB3159: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:350; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vrhs3FOfbe+t/RKeBWraaZnVKHZk7UkJQeKE8GFDvKENcg7Bg3I2S8mPo4q3oxV97H/Pt8MrZdnnWNWLSq4kCwh/heU/SR55sPCo4EdGp6A+lgqAUOyRKEV17A/30GQUFX4pAUK9hJHNuulwL78MourTnQ91lNWTHQd1lZFDauLqSoCfUlTS4CFWBFO6xFPgZ+ILEJjBob6tpykTUu/0jnqRMfDMFV6AcKJncyzUy7esItOzzLdRqmLmEwFgmkfiACNBl94ZJAT94QW1cqIYCdb7jzMynYvphUVBC7Ixwiw2+Qg9syTsZXg6XJWVxXrUfF8u7ZlD/1SdoVTuMZff8g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(396003)(136003)(376002)(39850400004)(366004)(186003)(6916009)(8936002)(2616005)(6486002)(66476007)(8676002)(2906002)(956004)(66556008)(66946007)(478600001)(107886003)(86362001)(1076003)(316002)(26005)(36756003)(4326008)(52116002)(5660300002)(83380400001)(6666004)(16576012); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: YzQjwygy54Wfd2nDSVl4dqt5nYVs1jxOZm/m8L6VADwGa8Lg7ipJb+wNSQYT+3cYr4CpizOKc/otG9TqrbIXDEqfLiyWwwskLaheModt/xtp7pEJQ9B9fOXuxeRsjHk1NmBFqESUpnEt/w0fXz3zThLsV07StBJJEeuLPJ21jmkpTr64C6ikOhAvZkvKGgDpraJcGHaKP6KhOfx84+37LpEJl7jgW1UjBgY8yzrevfA/NaS/jGbCdKtsjdawkKKHEDEG29xfVblE7tTaSEozbDQSEI5SN5iWi5smYcXlDVTQUCGaiJ4yLUfBRK3adXGhfblVPN23vOr26L+7ZAn5cYB9CQEVTSDQzNA0Z763KAiNyp5nJiLgUybOJw3XsEan32o2d606i9nl4TDkqpblSMOBIp/kYUrysgRhw+uryr4RzG+jMlJJFvR00po1uP08pDTC6Lqw96ypxaMcUpvZxtMI4EzhSo4/BhfbhY3qYI1/VpTO6fcLOv9o8v2sFz0BzaPxIdDfh+apovveNfNmFYGAgtTrFR/L2jupfx0RhBeVEIuRJNh5zmk4hw4GPIptcz/BRST9I8Wm/BCCyKBrwOPYzkgnPmc9Fr6Rw8sFZJj8fj03tk4HYIdfUw1kgOKdiozV9tN464DkQeRSj3CZqg== X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: bcead24e-d78c-42eb-b7fc-08d8503c0420 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2020 19:03:17.2011 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TF2ZYAwpGAhAnc+XwnsZI/qH5BYZEQBSL75ooFVTBGHvczbkxYjL4a0O0XtYU7Pc5CfLp5tVHk1ZWoM3RoisBYL3lYjRenFDdX3XpJjwj50= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3159 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=40.107.2.133; envelope-from=vsementsov@virtuozzo.com; helo=EUR02-VE1-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/03 15:03:21 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Spam_score_int: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_ILLEGAL_IP=1.3, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Don't use nbd_client_detach_aio_context() driver handler where we want to finalize the connection. We should directly use qio_channel_detach_aio_context() in such cases. Driver handler may (and will) contain another things, unrelated to the qio channel. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Eric Blake --- block/nbd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/nbd.c b/block/nbd.c index 912ea27be7..a495ad7ddf 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -549,7 +549,7 @@ static coroutine_fn void nbd_reconnect_attempt(BDRVNBDS= tate *s) =20 /* Finalize previous connection if any */ if (s->ioc) { - nbd_client_detach_aio_context(s->bs); + qio_channel_detach_aio_context(QIO_CHANNEL(s->ioc)); object_unref(OBJECT(s->sioc)); s->sioc =3D NULL; object_unref(OBJECT(s->ioc)); @@ -707,7 +707,7 @@ static coroutine_fn void nbd_connection_entry(void *opa= que) =20 s->connection_co =3D NULL; if (s->ioc) { - nbd_client_detach_aio_context(s->bs); + qio_channel_detach_aio_context(QIO_CHANNEL(s->ioc)); object_unref(OBJECT(s->sioc)); s->sioc =3D NULL; object_unref(OBJECT(s->ioc)); --=20 2.18.0 From nobody Mon May 6 20:30:15 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1599160035; cv=pass; d=zohomail.com; s=zohoarc; b=QStTeqxHcI+of2istu2bpum74NY7R+8E2FpWbqd9if20hLhfMxFJCaoj4ysNTfQVgltqDBwGY+3M1IUA8bFHiVR8z3DnSvyeQL9Sjb1bEzc62/o8rdAorrT7h0Z1DCiJ+71J0oCUh5LAEyhVUANlJMmsyNM3G6FgjxlVwOzsh3w= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599160035; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=X6pvx1aaSoLV5qvxaoZWYYwNZIkFsWb1Ubnytv3nw9Y=; b=mOkMF8Fx0ZTsN5VMGTySqcMDQ2u+6p9b8Jx9fTWTQDerPPQRyMyFAa8dLSD984NdRebIAvqF/+KdWwkyjCrDWteZy/ORkmLJyKhKHBnX+W8DLOdSOx827+1KkIcSlqolqrNcKNt0LTfmRc4PJWUnkSSHw66qu6HPDIxX/qX/1yU= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass header.from= (p=quarantine dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599160035299619.1289530397131; Thu, 3 Sep 2020 12:07:15 -0700 (PDT) Received: from localhost ([::1]:50472 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDuZm-00047J-El for importer@patchew.org; Thu, 03 Sep 2020 15:07:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51646) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDuWA-0007p0-SH; Thu, 03 Sep 2020 15:03:30 -0400 Received: from mail-eopbgr20133.outbound.protection.outlook.com ([40.107.2.133]:10118 helo=EUR02-VE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDuW9-0006yx-5T; Thu, 03 Sep 2020 15:03:30 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3159.eurprd08.prod.outlook.com (2603:10a6:209:46::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.16; Thu, 3 Sep 2020 19:03:17 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b179:9641:7589:d692]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b179:9641:7589:d692%7]) with mapi id 15.20.3348.015; Thu, 3 Sep 2020 19:03:17 +0000 Received: from 255.255.255.255 (255.255.255.255) by AM3PR04CA0136.eurprd04.prod.outlook.com (2603:10a6:207::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.15 via Frontend Transport; Thu, 3 Sep 2020 19:03:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nRG01iO5F95+iZZWt+8BstfbUkuAo/C5h5es9Ps/GpswVtVsYTYDyJvDOHzK4h4Sn13EJN5iFIkdiLoHomGdxeIuDV6r4xV78NsgE0DoUxXriOjJl1BeMvs/wIGmYoBvIU4afLtafZF0vnPG3RxbbPTskmJNPJUAcq5UvhwdF8lV2Bx/sXGqx6x2AGcBorxQ3r+et584+SO+xMfci99ZTS8YGvVPKOWFOcS3rcaMR3ec8Kay1iIYvxgF6mc1KywFQz+HeE7xsuOzyQJyb1JxZ/3nboVdThQg7fPhkxSc2CHvVFHmF5aLFXz3n1d6FKPQ5hjB1USjWekeuyIFifyzQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X6pvx1aaSoLV5qvxaoZWYYwNZIkFsWb1Ubnytv3nw9Y=; b=K+jqnjvFnbrTcfgI+otg3bBINDjNEwgd59x12PDZdlZbILIl/5/XGfAY3FeXo+dV1A+xrq/EmqUafPh2uUwM+zXgJs1pyGGv4jGWwIDm49jCtDgqmoWjxNneu2HJB5GU4NkQXtnysqTteueY+d5lOcxyVzidTd6MoYBq2Wqiu7VmVkTEhObky06sS8a/3dAQAUVxHhdUo12b8RPQ+bJRqc/uiSU9I/xN1oumKCk/oMm6PFR+uj8TLFlvPbEuR/pI1a/A0yImPEzjoXzP55DutB6eeBY4FpE+vmPEU7pGnJEiMLdDgAbQA/2Z5va/QBIrhjkxUvSm+yJKgv++xejs2g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X6pvx1aaSoLV5qvxaoZWYYwNZIkFsWb1Ubnytv3nw9Y=; b=C1hUcTuIFwkWQNjAfnP2aCA3006/8skmBU39052keOaNfzv1K1Evr8cOizrLhAwG3zeLZf9awXEP56vS+EieeWe4i0Mv6E7LOpQt8HlJpks5tbNPpop6JvEJ+VskngnpP8b5NQQUDUZoVNjzzhvMijhY61A0QkYP7Y0UR3Givvg= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=virtuozzo.com; From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, mreitz@redhat.com, kwolf@redhat.com, eblake@redhat.com, vsementsov@virtuozzo.com, den@openvz.org Subject: [PATCH 3/4] block/nbd: fix reconnect-delay Date: Thu, 3 Sep 2020 22:03:00 +0300 Message-Id: <20200903190301.367620-4-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200903190301.367620-1-vsementsov@virtuozzo.com> References: <20200903190301.367620-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM3PR04CA0136.eurprd04.prod.outlook.com (2603:10a6:207::20) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Mailer: git-send-email 2.18.0 X-Originating-IP: [185.215.60.171] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c3f2e9fb-64ea-49fd-e63e-08d8503c0491 X-MS-TrafficTypeDiagnostic: AM6PR08MB3159: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:293; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +XHm3UWb9ApjmM5Pag9/dcjk2i+6eP2e8jNyJ4QGE1lqUWGgLSzPbtAtj+1LDqhfB6trkIpIuRbjYOGi1hjjYW5c0OH4sV4kSHhkWztkKi2AJp2ZiaoxuOVZKk5ZjQ6bQq/O0P8BU2uxINoc4Tb6Omg9DPagdyu6WcpczW9wO564JIFgXC7agPTydZ5cG0wpPVVIvb9LxQf4qsztNmo5vQqjqDPrjiLNku3F+SGnA6wcw7Lz8ifCYQZObirj6+vQCv2gluQtYeY4a4ZI5awUlIWEkiHlEZDG0/5RAK0/mEKtL0X+SOvAFl/EIHAOxDqScnUOXrmwR7coDkctVpOouA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(396003)(136003)(376002)(39850400004)(366004)(186003)(6916009)(8936002)(2616005)(6486002)(66476007)(8676002)(2906002)(956004)(66556008)(66946007)(478600001)(107886003)(86362001)(1076003)(316002)(26005)(36756003)(4326008)(52116002)(5660300002)(83380400001)(6666004)(16576012); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: kKr4+2vmBxXlbUmqyAfzxYjxhvJkl+HGmPu7GVGK9+ihO+ZTQSUf50DmVDEo8+wEM/gAHvQWAUJZeSvxVlsk3d4LAJgCuT58SDY0CTEF97LAnlQsypUd4CSGWRxOlVQ4ZGjdoZwqctFQnFCRZP8kv0s7jkSjbgg0RZbsl5cwS3W4NhVvp78Bvg3ab5JzlEgtNqvgtqbn2+Kj+huUNxUEJqR4aV9duKKEiBZQN9icniVAeMI2drXe+0XjtsQQ+OMOgIDSpbEYIetzk1XHsq85uXQmPHyMr1wL4JxgeUl61BL9KFilP/tn9zRMQ1MDD9lS/rG18fqwtAxGBpS2W6QfV3bD/4x2iHHxQZWm9p4FOhFJaMTf6X8NwajQxPOpXE3w6mdphD8XcM/sO7TezecJNA1NrPXKfGwekLwuv5TvtSuRZ5wfuhyzDQVE5LtSLRH3pdSD8fzyVeC9JEntfzwSsYYHsl7obNgmXdoxZFbg6ZFpiZr84NvFBQE7vh3yXaWoRwnDtxj2BNUmHZYOCKafcGm6L/Jha+YVijeu3GvU2ox63KDjaAIKnMlZaOV4KOgM7y7go8iIZ/Kjuv3xYBLSu9N5tghbQ2vX3MhCp/jAICQ6ZN3QAAtmhI+EyX+RTwcgR1DTHO0zQRoufTcBoAg+BA== X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3f2e9fb-64ea-49fd-e63e-08d8503c0491 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2020 19:03:17.9090 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 73b1BihgIQC/EPREcfARtSKOiTU7e6QhrVsQg+wGFY8t9X2UWx6hm3w6UqqXJ5WBVuMg4IGp8GEGTlXZI+5yV+/S/kIza0fYbsdvWGaVtEk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3159 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=40.107.2.133; envelope-from=vsementsov@virtuozzo.com; helo=EUR02-VE1-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/03 15:03:21 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Spam_score_int: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_ILLEGAL_IP=1.3, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" reconnect-delay has a design flaw: we handle it in the same loop where we do connection attempt. So, reconnect-delay may be exceeded by unpredictable time of connection attempt. Let's instead use separate timer. How to reproduce the bug: 1. Create an image on node1: qemu-img create -f qcow2 xx 100M 2. Start NBD server on node1: qemu-nbd xx 3. On node2 start qemu-io: ./build/qemu-io --image-opts \ driver=3Dnbd,server.type=3Dinet,server.host=3D192.168.100.5,server.port=3D1= 0809,reconnect-delay=3D15 4. Type 'read 0 512' in qemu-io interface to check that connection works Be careful: you should make steps 5-7 in a short time, less than 15 seconds. 5. Kill nbd server on node1 6. Run 'read 0 512' in qemu-io interface again, to be sure that nbd client goes to reconnect loop. 7. On node1 run the following command sudo iptables -A INPUT -p tcp --dport 10809 -j DROP This will make the connect() call of qemu-io at node2 take a long time. And you'll see that read command in qemu-io will hang for a long time, more than 15 seconds specified by reconnect-delay parameter. It's the bug. 8. Don't forget to drop iptables rule on node1: sudo iptables -D INPUT -p tcp --dport 10809 -j DROP Important note: Step [5] is necessary to reproduce _this_ bug. If we miss step [5], the read command (step 6) will hang for a long time and this commit doesn't help, because there will be not long connect() to unreachable host, but long sendmsg() to unreachable host, which should be fixed by enabling and adjusting keep-alive on the socket, which is a thing for further patch set. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Eric Blake --- block/nbd.c | 59 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 9 deletions(-) diff --git a/block/nbd.c b/block/nbd.c index a495ad7ddf..caae0e6d31 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -122,6 +122,8 @@ typedef struct BDRVNBDState { Error *connect_err; bool wait_in_flight; =20 + QEMUTimer *reconnect_delay_timer; + NBDClientRequest requests[MAX_NBD_REQUESTS]; NBDReply reply; BlockDriverState *bs; @@ -188,10 +190,49 @@ static void nbd_recv_coroutines_wake_all(BDRVNBDState= *s) } } =20 +static void reconnect_delay_timer_del(BDRVNBDState *s) +{ + if (s->reconnect_delay_timer) { + timer_del(s->reconnect_delay_timer); + timer_free(s->reconnect_delay_timer); + s->reconnect_delay_timer =3D NULL; + } +} + +static void reconnect_delay_timer_cb(void *opaque) +{ + BDRVNBDState *s =3D opaque; + + if (s->state =3D=3D NBD_CLIENT_CONNECTING_WAIT) { + s->state =3D NBD_CLIENT_CONNECTING_NOWAIT; + while (qemu_co_enter_next(&s->free_sema, NULL)) { + /* Resume all queued requests */ + } + } + + reconnect_delay_timer_del(s); +} + +static void reconnect_delay_timer_init(BDRVNBDState *s, uint64_t expire_ti= me_ns) +{ + if (s->state !=3D NBD_CLIENT_CONNECTING_WAIT) { + return; + } + + assert(!s->reconnect_delay_timer); + s->reconnect_delay_timer =3D aio_timer_new(bdrv_get_aio_context(s->bs), + QEMU_CLOCK_REALTIME, + SCALE_NS, + reconnect_delay_timer_cb, s); + timer_mod(s->reconnect_delay_timer, expire_time_ns); +} + static void nbd_client_detach_aio_context(BlockDriverState *bs) { BDRVNBDState *s =3D (BDRVNBDState *)bs->opaque; =20 + /* Timer is deleted in nbd_client_co_drain_begin() */ + assert(!s->reconnect_delay_timer); qio_channel_detach_aio_context(QIO_CHANNEL(s->ioc)); } =20 @@ -243,6 +284,8 @@ static void coroutine_fn nbd_client_co_drain_begin(Bloc= kDriverState *bs) =20 nbd_co_establish_connection_cancel(bs, false); =20 + reconnect_delay_timer_del(s); + if (s->state =3D=3D NBD_CLIENT_CONNECTING_WAIT) { s->state =3D NBD_CLIENT_CONNECTING_NOWAIT; qemu_co_queue_restart_all(&s->free_sema); @@ -593,21 +636,17 @@ out: =20 static coroutine_fn void nbd_co_reconnect_loop(BDRVNBDState *s) { - uint64_t start_time_ns =3D qemu_clock_get_ns(QEMU_CLOCK_REALTIME); - uint64_t delay_ns =3D s->reconnect_delay * NANOSECONDS_PER_SECOND; uint64_t timeout =3D 1 * NANOSECONDS_PER_SECOND; uint64_t max_timeout =3D 16 * NANOSECONDS_PER_SECOND; =20 + if (s->state =3D=3D NBD_CLIENT_CONNECTING_WAIT) { + reconnect_delay_timer_init(s, qemu_clock_get_ns(QEMU_CLOCK_REALTIM= E) + + s->reconnect_delay * NANOSECONDS_PER_SE= COND); + } + nbd_reconnect_attempt(s); =20 while (nbd_client_connecting(s)) { - if (s->state =3D=3D NBD_CLIENT_CONNECTING_WAIT && - qemu_clock_get_ns(QEMU_CLOCK_REALTIME) - start_time_ns > delay= _ns) - { - s->state =3D NBD_CLIENT_CONNECTING_NOWAIT; - qemu_co_queue_restart_all(&s->free_sema); - } - if (s->drained) { bdrv_dec_in_flight(s->bs); s->wait_drained_end =3D true; @@ -629,6 +668,8 @@ static coroutine_fn void nbd_co_reconnect_loop(BDRVNBDS= tate *s) =20 nbd_reconnect_attempt(s); } + + reconnect_delay_timer_del(s); } =20 static coroutine_fn void nbd_connection_entry(void *opaque) --=20 2.18.0 From nobody Mon May 6 20:30:15 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1599159869; cv=pass; d=zohomail.com; s=zohoarc; b=m+X4K1jIt22L8BUYBexsJEOpfzJ68d/TUlU12z2ipcoCpaOyDAeH61c1sUz2/HmmTZQ9vP/WLbHQq3Z7XbDBqq1E2/hOmmlFHPizmZ7/QVpRp/jVl3NjukLxvpzInOXLpEvv/6L7PFMPc3V0RAn8ISLBYN6E/ewB74ggu9fRWBE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1599159869; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=pR6vivg8o57QMBJbTePSo5I5+P2l2+ZnfXdiIxSOdUI=; b=M62TMQ9T5zjYFv0ZKhbUB1fMXakG9sp7Zii8IEt18Ap/zm/Cdk3EeGf3R6JV/mBOZ6YP4zl5u3GEDr8aW10VT5uTnRAXk59DI+ItV9jXkEhyDiFizZjT98oNrwalB7EH0k7PYMq6fFUxRnvl093w84Qg7DHVkEXdcorAAchZGKo= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass header.from= (p=quarantine dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1599159868734882.3067858784625; Thu, 3 Sep 2020 12:04:28 -0700 (PDT) Received: from localhost ([::1]:42976 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDuX5-0000wr-Mg for importer@patchew.org; Thu, 03 Sep 2020 15:04:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51670) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDuWD-0007v2-4F; Thu, 03 Sep 2020 15:03:33 -0400 Received: from mail-eopbgr20133.outbound.protection.outlook.com ([40.107.2.133]:10118 helo=EUR02-VE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDuWB-0006yx-Jh; Thu, 03 Sep 2020 15:03:32 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3159.eurprd08.prod.outlook.com (2603:10a6:209:46::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.16; Thu, 3 Sep 2020 19:03:18 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b179:9641:7589:d692]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b179:9641:7589:d692%7]) with mapi id 15.20.3348.015; Thu, 3 Sep 2020 19:03:18 +0000 Received: from 255.255.255.255 (255.255.255.255) by AM3PR04CA0136.eurprd04.prod.outlook.com (2603:10a6:207::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.15 via Frontend Transport; Thu, 3 Sep 2020 19:03:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e2xMW2TCkIVIR7tNTbTjUXEVwJDuprreNG/GSzFpDIZJuOCquNRRZHzOlWGjbE9iyhhOgmOwGyxSLhz4ULWITdLzzGNiHPzySLw9a+5OkiLSV8jn4SxNvE1aHDhTs/lqfoFUVprOKeugJIneKOWRyedBC+dMkNINObtwDMIMSGuEDIfgZtU44GSoPAiKeZxL7tFqZM6Wuu6IrsRN2wY3aN5O0aWUCqwfceGGQdv5AIgYKDd9gE/c98ehUOhLUd+Er8axlxn7jHOoE6adNzUK83XJh6Hj65FNYF/AaW16rkre/9ti2tbt6BY/QZCxkUKEESpprZWa/V4ySAS/sA3dpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pR6vivg8o57QMBJbTePSo5I5+P2l2+ZnfXdiIxSOdUI=; b=OZbuyFF8RGfMKD81L3vpJx10osXKdzWjX3EkC074hFLgrgBPpjJzdXTFQTdocx8TeJoRXC9wk+bQwrEcCbSOU7T107zOM1TmoHzpa0XVHWDx92my9pyyA4XM0LkuAI+z44R57odaHcQXX8Avwc7ghqoKfWsxLDhk/Cen+1UbYdMGHN1yMpoDBlVwks4EgXP3xSQ0wRo8ZiXUTTFfLzZyYumx7N5rX0EhhhvAOKRvUJbmyu+lW5cSaPAAGARH+y1Xoxk8h/U9iZ0yFIczLWW4G/bS683C0XjR+L8zgkLAzDCkLtUMJnqfyaHwkAwP3KC8Rn/+LcbvOUPUrn7Z9U+cHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pR6vivg8o57QMBJbTePSo5I5+P2l2+ZnfXdiIxSOdUI=; b=nvGfjGmfDppp8aRI9x/OQPa4roQGCxPHxqK/xgqBGk1Xfm6yWaWoRu65CMbGOU4WlSDBIDsVho+HMarAauFpexOcv33BMCYwEvNy7DlDsqP+2Z7MWu67cEt6Dgg3ICerfZkpYk0AW/m57TxAv37EJXGgx1hFS1EvaZpCDRwmtRo= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=virtuozzo.com; From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, mreitz@redhat.com, kwolf@redhat.com, eblake@redhat.com, vsementsov@virtuozzo.com, den@openvz.org Subject: [PATCH 4/4] block/nbd: nbd_co_reconnect_loop(): don't connect if drained Date: Thu, 3 Sep 2020 22:03:01 +0300 Message-Id: <20200903190301.367620-5-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200903190301.367620-1-vsementsov@virtuozzo.com> References: <20200903190301.367620-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM3PR04CA0136.eurprd04.prod.outlook.com (2603:10a6:207::20) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Mailer: git-send-email 2.18.0 X-Originating-IP: [185.215.60.171] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4de053b4-ec77-4c46-3b72-08d8503c0503 X-MS-TrafficTypeDiagnostic: AM6PR08MB3159: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:119; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oKpmMRkGBwS7xaGSLzkyxxiSboWvsZBSDFYvVe2wFRTTk+6iKVg3SFyVjfIqNX4EMm3thv83ZoTdQxWONAer9z7hyFe8WkOCSmEw3ow2TWA9Cox2lSaN6D2HdKZzj/B4ahq7U+uP5t6JlgBlaGAwp7i5SP2UWUMWRmxRgdShLaTezEigvkMo/aM9S1j6SZMworCnVQgnpRf8uyDcWc2GS9aBSAZhTIrEG/YVplL/v90zL6xY7kCp4xNs3ZoK6+IXAhdeTFD28lqBEYeeweUE69uZ+lQF0hE/XxQsiLeDrnSlG3zW2U7UQ3I+n+rlSoOj X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(396003)(136003)(376002)(39850400004)(366004)(186003)(6916009)(8936002)(2616005)(6486002)(66476007)(8676002)(2906002)(956004)(66556008)(66946007)(478600001)(107886003)(86362001)(1076003)(316002)(26005)(36756003)(4326008)(52116002)(5660300002)(83380400001)(4744005)(6666004)(16576012); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: q9fd0Nf3nXcMr88l6JR1+5dyrCFyT5gHd/a8EQ6y2EioCkMMTJSkU8l5z8S029xnjXhyQo6qLnyHF26bHLPcIWAQcD036H4SF0dRkIcq57eZcnx6mrvW+5SnJQ6GzLYXGFz6Pno3B9CAw+b9Em041/i0RP8TiumPch0BFa/RgpK1mvNFIsgBxgzW1/zlCJygREwYuae/5inuIFhLeni0IXsyAjbM74dseb6DMpTs1eBOMiNn8B28cZ2PoBd1zCKzUxGXrXOrDJTjI4UI8SUSn6lCX1qQXiBGwS3IcYGH8Ooc9JvVc/+sakyrctt+fobGo+6DSLykEBXC/AS2kx32jWecUDOBTxSW88mL7czNIgxE917TrBAH9dQoLnsdUVrYgIwsWXMOF6Pb8bs9swR1VSlHSwHWJeNku2FcrrB+cOqCOuInv/mkM/TrUeiN9YXww+UegbBBwGMxdBvcHb4ltFeLZLSbrv7PlskBD0d5AF/Aa/yFUnX01q56Z+ryArlYLiucVIsbX/Z7SZorbr1pvH7JqooXkf0j/JQlA9KnykBP/vZyMbeXZ/MyJ6oJRsHCKnHsW7s2ZpOHW5w/IS8Oejn5Y9PRccRs8sZnV4GjH3Ku7KlacLD6KWoOUWXySSeoQ0ZuikToZGFL7r7SRVuXEg== X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4de053b4-ec77-4c46-3b72-08d8503c0503 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2020 19:03:18.6796 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9RCizOLz2O7QWOwRMqekUC8saPj3LcEFhFghWw2o6rTj0S3B+11SwExMPa46V/4YXt48//2HE+qjoCGda8de3i+/+ezfu99j/iijNBWrJO4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3159 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=40.107.2.133; envelope-from=vsementsov@virtuozzo.com; helo=EUR02-VE1-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/03 15:03:21 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Spam_score_int: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_ILLEGAL_IP=1.3, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In a recent commit 12c75e20a269ac we've improved nbd_co_reconnect_loop() to not make drain wait for additional sleep. Similarly, we shouldn't try to connect, if previous sleep was interrupted by drain begin, otherwise drain_begin will have to wait for the whole connection attempt. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Eric Blake --- block/nbd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/block/nbd.c b/block/nbd.c index caae0e6d31..4548046cd7 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -661,6 +661,9 @@ static coroutine_fn void nbd_co_reconnect_loop(BDRVNBDS= tate *s) } else { qemu_co_sleep_ns_wakeable(QEMU_CLOCK_REALTIME, timeout, &s->connection_co_sleep_ns_state); + if (s->drained) { + continue; + } if (timeout < max_timeout) { timeout *=3D 2; } --=20 2.18.0