From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from AS8PR08MB6326.eurprd08.prod.outlook.com (2603:10a6:20b:335::19) by PAXPR08MB6942.eurprd08.prod.outlook.com with HTTPS; Wed, 16 Sep 2026 15:24:53 +0000 Received: from AM9P192CA0004.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:21d::9) by AS8PR08MB6326.eurprd08.prod.outlook.com (2603:10a6:20b:335::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7; Wed, 16 Sep 2026 15:24:51 +0000 Received: from DB1PEPF000509F9.eurprd02.prod.outlook.com (2603:10a6:20b:21d:cafe::43) by AM9P192CA0004.outlook.office365.com (2603:10a6:20b:21d::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 15:24:51 +0000 Authentication-Results: spf=softfail (sender IP is 99.81.216.78) smtp.mailfrom=openvz.org; dkim=pass (signature was verified) header.d=openvz.org;dmarc=pass action=none header.from=openvz.org;compauth=pass reason=100 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning openvz.org discourages use of 99.81.216.78 as permitted sender) Received: from nat.eu.perception-point.io (99.81.216.78) by DB1PEPF000509F9.mail.protection.outlook.com (10.167.242.155) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 15:24:51 +0000 X-PERCEPTION-POINT-VERDICT: CLN X-PERCEPTION-POINT-SPF: X-PERCEPTION-POINT-SPAM: PASS X-PERCEPTION-POINT-SENDER-IP: 2a00:1450:4864:31::10 X-PP-Forefront-Antispam-Report: CIP:2a00:1450:4864:31::10;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail-wm2-x10.google.com;PTR:mail-wm2-x10.google.com;CAT:NONE;SFS:(13230040)(12012899012)(2092899012)(6059299003)(3072899012)(43022699015)(82310400026)(6133799003)(19002099009)(3023799007)(10067099003)(5023799004)(5063699009)(56012099006)(22082099003)(18002099003)(18056099003)(16102099003)(55112099003);DIR:INB; Received: from DB3PR08CU002.outbound.protection.outlook.com (mail-db3pr08cu00203.outbound.protection.outlook.com [40.93.64.83]) by inbound-smtp.eu-west-1.amazonaws.com with SMTP id duvjro845ejbg2hcle1055kum99svqnjt85pn981; Wed, 16 Sep 2026 15:24:46 +0000 (UTC) X-SES-Spam-Verdict: PASS X-SES-Virus-Verdict: PASS Received-SPF: softfail (spfCheck: transitioning domain of openvz.org does not designate 40.93.64.83 as permitted sender) client-ip=40.93.64.83; envelope-from=den@openvz.org; helo=DB3PR08CU002.outbound.protection.outlook.com; Authentication-Results-Original: amazonses.com; spf=softfail (spfCheck: transitioning domain of openvz.org does not designate 40.93.64.83 as permitted sender) client-ip=40.93.64.83; envelope-from=den@openvz.org; helo=DB3PR08CU002.outbound.protection.outlook.com; dkim=pass header.i=@openvz.org; dmarc=pass header.from=openvz.org; X-SES-RECEIPT: AEFBQUFBQUFBQUFIbTFoT3praWJLclE5b2pnMGs5UXlMSEkrdml2Q0hySGUrNk8vSEJ4dVhaTXBZM2dnUWxwZGF1ZStnaUYzZGx1NlJicEdFUE1KcmtHWHYwNE9EcmIvblBBODBDUE5VSFdEbjgzdDdtalprTEFRQUR2TkhTd1ExN0VEU2xEVnJSZURGM3ZzNVE3U0NLOWRENFQzUkxlM3VxUDZMZy9wVFRjSFl2dHBPZ3pIUlRLeGV2Y2VVK1hKUy9VZ3JQUlFqZUxWMnFVOXcwQXBrMXphcEUxL2c1UkZQb2RGZ3czdGhRcUxvanhWZUVBdm8vRXBPYTVhenN1eXpCNjA2dTBmTkVKZE14WklVV0pIMjQ1VG1VOUtVZDk1ZVJlZklLY2MvYzNYT0NZM1lldHhYeGc9PQ== X-SES-DKIM-SIGNATURE: a=rsa-sha256; q=dns/txt; b=jWfeb8VpYduoKEmu4QNVMTKZUm0yoQ9JEphyq7c5no/WWJML5WQ2RZL5A9yNP/gJjIF9X/mndQooJQcHhTvrDXrYOoEpSzE8BS/qgAdZtYoAoUmnsWStDk8dtq+X/KkX/47vsS6Ftl3kRYWA3ReZdsmvz7gBIEkb0M2D6UZ/IYY=; c=relaxed/simple; s=shh3fegwg5fppqsuzphvschd53n6ihuv; d=amazonses.com; t=1789572287; v=1; bh=g9A1QxBmiQUzFkot1UAI99cdF5CsNIhQJ5WyoXFaRf0=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-Version:Content-Type:X-SES-RECEIPT; Received: from DUZPR01CA0172.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b3::29) by AS2PR08MB10206.eurprd08.prod.outlook.com (2603:10a6:20b:62f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7; Wed, 16 Sep 2026 15:24:43 +0000 Received: from DU2PEPF00028D07.eurprd03.prod.outlook.com (2603:10a6:10:4b3:cafe::73) by DUZPR01CA0172.outlook.office365.com (2603:10a6:10:4b3::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 15:24:43 +0000 Authentication-Results-Original: spf=pass (sender IP is 2a00:1450:4864:31::10) smtp.mailfrom=openvz.org; dkim=pass (signature was verified) header.d=openvz.org;dmarc=pass action=none header.from=openvz.org;compauth=pass reason=100 Received-SPF: Pass (protection.outlook.com: domain of openvz.org designates 2a00:1450:4864:31::10 as permitted sender) receiver=protection.outlook.com; client-ip=2a00:1450:4864:31::10; helo=mail-wm2-x10.google.com; pr=C Received: from mail-wm2-x10.google.com (2a00:1450:4864:31::10) by DU2PEPF00028D07.mail.protection.outlook.com (2603:10a6:18:3::6a7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 15:24:42 +0000 Received: by mail-wm2-x10.google.com with SMTP id 5b1f17b1804b1-49b965f447cso9878455e9.3 for ; Wed, 16 Sep 2026 08:24:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz.org; s=google; t=1789572282; x=1790177082; darn=virtuozzo.com; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=6ghTZsqGQB/8qNysC2eniPukKMaUnMzs84YBKu6dtl0=; b=M5nHXKa9bmsBnXqjN+7K4jw4dHb1jtQDZeLHVBaQ+UQMeJp43GTJb2067NAgbAAanA F+Lls9kSPBV8mqT2lh6oiQRF5ayrQzjBTE+1e9IDdBRIxdZSvX18Yu37N643SNByim3F I8TiaT6w+a/O3APuG7WMTcwXHbIVA00QlqimnTLEZ8t7FVKNUbdlZDE/AunKusgMglM+ FV5s11otmiGk/+iHWqSP0jvWT2bjz3QkoavyaOGRCTJhcEUZLGeT5l5GHw36ojJjwhpG ZUYkCe0w3eiUUt3pY1E9WZPGq6Wqw4mDPlX+VE+/WwMC12c24yqgwVrJQkY5HSmDlsk7 3k2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789572282; x=1790177082; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=6ghTZsqGQB/8qNysC2eniPukKMaUnMzs84YBKu6dtl0=; b=ZjtqOiKYrpOmleYK6hiO2V6T1A/Qk0bBnJ5c3679EK87KHH/8WADvSxb1EM+ZTyHeg lMido0cYTBvsHJIuUNpkL3YY7ASXePpgATnQKss0DHKFkx4cEht8vxzGhyp0ejpj0Zst JOMSv1lbc4bGKDjCnSc/Ie92aujlijawDGUal/WJd5CpFoc6ES4OjkRT8uHBa9yLc/a2 7va9SnPGwAEoCBkzQoEKawsiSmK+GwIA2eY1tMqyiGe7jD4ZdpxLR5Xm1aaXfjburjTH D8eW1sk4/23+x9nw8g+Q5LdijPBM3FS+lv/+WD9uOO1kXu0vPKsAeiRBZlghr871CXi8 r3Qg== X-Gm-Message-State: AFuF++n4yPzHeordBrcka+Mx3yl7Ca8jd/P1+Ebz9mwDcQbSfDQGDIAU lxpw7b04i4I+qleyf4EG8mAD9RETTvPaoRvgYTQvaEyLFRRNAAcLbpYUtrEsWY6CEdYDoNMOlkV OjPPR2TE= X-Gm-Gg: AYBFou36/FFE4P0F1Nwf3bKabhvds0O0IPvmfXyssmRBiW0gdWw2nNGkNaOyOvPi7ue ablsDLVUHbvPk0qGNdRoaEiM2zQWiwxaY5Z9/0ax/ldOToUVWTnKBSm6ABP95tR1a76XZRyAtR8 KBTUA3QyjBqZrOnp8n9b4ELq2b2qpEECldICqwBHdb39ohhAynpfBjQWzlelt5Go061MI+OSB53 5Ro7yTTCnTvFuLOw4s7rahXCcCTABOQOyaytMsjDyJwqogE/06HVA069bsMje5sX11tTouI/g2b AEJD02jEZyTtyMqLpLeO+SECauZ8ldctE13YDoYTJPkC0PPrdxZz4XFiWYf0uN1y4rWO+gXF6gQ oqwMzL8zZU2CWc2ZopCMF8+KATo90xxgqM7UgzOO00hC4RVoNubrd1/KengP07RjZcKoPJZxkys 0XowFuKoNzxL6BTV1PLSZwl2pfnDbd6qRbxWfUkZRi//qWGcfIthGx1xkQdjrrhZgkfH7s/NqAP Thmeis= X-Received: by 2002:a05:600c:1c20:b0:49c:fa20:cc08 with SMTP id 5b1f17b1804b1-49eb733713emr37460405e9.31.1789572282073; Wed, 16 Sep 2026 08:24:42 -0700 (PDT) Return-Path: den@openvz.org Received: from athena.sw.ru ([2a06:5b06:b600:300:f56f:c51e:c53f:b1ce]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fbd0c39dcsm1836415e9.12.2026.09.16.08.24.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2026 08:24:41 -0700 (PDT) From: "Denis V. Lunev" To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, den@openvz.org Subject: [PATCH hci-8.0 2/5] block: reject a reopen of an unusable node instead of crashing #VSTOR-140073 Date: Wed, 16 Sep 2026 17:24:34 +0200 Message-ID: <20260916152437.1787889-3-den@openvz.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260916152437.1787889-1-den@openvz.org> References: <20260916152437.1787889-1-den@openvz.org> Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 1 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028D07:EE_|AS2PR08MB10206:EE_|DB1PEPF000509F9:EE_|AS8PR08MB6326:EE_|PAXPR08MB6942:EE_ X-MS-Office365-Filtering-Correlation-Id: 806ee0e5-26d7-4130-ecd7-08df1406a6dd X-MS-Exchange-AtpMessageProperties: SA|SL X-PERCEPTION-POINT-CUSTOM: vzpp X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|12012899012|2092899012|6059299003|3072899012|43022699015|82310400026|6133799003|19002099009|3023799007|10067099003|5023799004|5063699009|56012099006|22082099003|18002099003|18056099003|16102099003|55112099003; X-Microsoft-Antispam-Message-Info-Original: =?us-ascii?Q?zsP8veBLtsX6CiCpMUA2CjagWMNJjaJrcL9zPKclkIiG2C5Jgp2uuWEiLhNt?= =?us-ascii?Q?5wi+bn2QTX1kLiix0drNU2T3k6EVFgpHfjgUhanmGDCXFG5N/dc60Cpik6lj?= =?us-ascii?Q?XsrtnaMxOnqjIuiYfn/h1r+d9EM7nnfxPY4YiQcrKVOUOVfFMW+1wBJEZgTL?= =?us-ascii?Q?Ug1/HRA4cWkAgCL2yGO8XAEM4a2G9q1bbLn1y48GvD+YP692RkHlP0k4Ox2d?= =?us-ascii?Q?v4E14UC3XJpZkYXA7FuTFyySQqf1Bc/cdVAHgc/zWJ6AYaiNoHI9uwAJPpMk?= =?us-ascii?Q?qPy3sI7jGb6ZV5GmqTfBdGcyExWddfcdGprzO74AzEMyDDI0ZOELezHnU2Gb?= =?us-ascii?Q?H0KTgShIHHXP7tvjGIAVyCECzf6KtEfwi8Dm2i+h7p2ntsApEKUVVJSydqk9?= =?us-ascii?Q?hF1lFVDJeUjJRIqTmnuTE8Ts+uO+3LaAbxTImm/ml+Cdlc8w5bbixWcNivrK?= =?us-ascii?Q?CjZDkWNd+pekGT6E62YpWC0J4roJt7PsLDp/hXaqWkkf0Q/l4chCMB4RwrcY?= =?us-ascii?Q?hj/3Rp21i1inQhXCnzqx402XbRrtCSnebKXoiOMv5l6fR9GfoSHXoWxDntTg?= =?us-ascii?Q?KOI+Bt13tjpoNN9R/oq99pgo8QGsMQYCQxBTqyHDjWYhyg3XeUJe2CSBc8le?= =?us-ascii?Q?vNWACgy5B5r78tukdpkMAHDPD3kLDd2QMtCFCi5A4dIpK8KCuehCEfUQjHyy?= =?us-ascii?Q?Z9LkyXmvNUoFCiAiGOTb+RJAR91hpydcTVS4eCVpEtgy0ugkQ3UodemLO/OI?= =?us-ascii?Q?WIeFERFY8Ux9XyVNv/S82sCwD63FQ2TTbtJT0ISVcxFnfGIKdRcKfMPCbR0g?= =?us-ascii?Q?1PIkSoDIxiPZEOsQEIEUQiSwj0xaeeSiDywX2ydiX4hoNtOpUUqj2WTbaB5l?= =?us-ascii?Q?0dnmseNkvXeWT0FD8LoC9lhVtQdyqMAFFrBk42fyR403mSXqH/wLg1XzYERR?= =?us-ascii?Q?hD3EArF2HMk4uWT1pXgEYDbkTYQuirBlBxidQljnc04OBmcxvXGHlwDwnn4O?= =?us-ascii?Q?RFHkvtIqJ2jXO7ws4hzKfxGheY6yX9EnpaAkAocYAro1CT0H93n5sPBByJDt?= =?us-ascii?Q?7yoyDhTTZgXAH8xLSwTtSfiOwfEQkpKbiBPPSiRqrkBhx5JMH3HApPy2aIkb?= =?us-ascii?Q?00lJ1N0oNvdzSCnMnxOh8h/sehnkpVmZVX5fo4a231gr7JCVGAgufnbu702+?= =?us-ascii?Q?JI4bKbhHWCvYmmhAokh9M1dWsWVM+YEneewygURuHtiq9WcX4LsiHYXhJ+z/?= =?us-ascii?Q?7rjoonNR9OiTg2UcJJt5gObQujNR8mfImSBIpTWm7yCr3lPGR1Fk3LDuG0rL?= =?us-ascii?Q?7CreCoHm6BHosgMXiSS6TTulX++qhoiWbe+Ev5UwNP0dSJwZEkJxAN9+hi3o?= =?us-ascii?Q?xf6LNTqRZR5sYv9CF7a/TyCKdQn/keysW0lxa6XfVmP7BpisvZy4F5jGVG+W?= =?us-ascii?Q?XP7fh4UYZbUgCmbewFqLTLu4mLL74z4nK96j6n3mx0KSEi9mSOvECOiHUeni?= =?us-ascii?Q?C8hzPvOn/8lnUx3JYkKFhrE8Cd336iKPp5GKA7VfAIK+YvdbZkCidfMuXjBf?= =?us-ascii?Q?zQEvaWG4P41NCaQEdlB3EV1orqECFiIqCFkYlmLbhUTtABvzO2HV9YJ8IA5z?= =?us-ascii?Q?LP4dBIHkJkodmARJ6QnHzjPXcVkVQFmHdWp5kM42vOfXggrLZSQ/ltNbogED?= =?us-ascii?Q?24Jb9XR7NdvG7CSnsmVdUo4NAlsXaDu+52nnmFw3c6grPGAE8wvB64/Vry7b?= =?us-ascii?Q?0uJfdpDXHiikE4/8srwgdreaI3F/vrrHyrY7Oq1r2Ye/cSJ+4wBqbnXJwS2u?= =?us-ascii?Q?0grLvGhSmuFNFSh3ykTvU/jUL8oV39GjXy355j81Y7DMA9Zajt3CAdS2jNLu?= =?us-ascii?Q?c1AzAQjYhuU3tlJzg5KXk6lWjd0R4e+X6ZRf+r2b1JYEIxvcB9mg262QUGWu?= =?us-ascii?Q?0Qn6RSi+j6Aun1jsTldn2hPswDE15zCnb6BT3IDrAq+woUG8mKlJDNRNanTF?= =?us-ascii?Q?zoj2uRnK0Q2U+KMhNJ3DGh0u/l76knUB8phtZsDPSyFVq3X2pQvtHqyTT9BK?= =?us-ascii?Q?n2lHC1x5A1e5Hm+bh6bKRjEgH51j+M2/91+PiWmDUq7aivwoNGcTIB2oTf/Q?= =?us-ascii?Q?Xgc6JYXW9bb0rmdPVa6bfbbyFtEDVUaOAECgdCD9GO9U/SOOG9h8LsP/rG26?= =?us-ascii?Q?sVnEoXLcrjP6YLdZvuiR1aAvEHnQw16f2W9kqYbwDDEwjCiLn/r/1qev3hEo?= =?us-ascii?Q?imxv/qDXHyJGrm5rkNp3WEihaoanFEf2FuE6j1DoI4ZrQV+5LqeIm+BRQcky?= =?us-ascii?Q?erZP0PDz7GZAUOvkggq741JbB9xdMsb9KRoeUB3oNlYFBcIIaZGpVfarJFBg?= =?us-ascii?Q?VuOY6BR2S4KFXSVpuqmc88oWQYTTFFvtx5ZKmpktOPthCmLCfsHYOWg4VsIh?= =?us-ascii?Q?3Hu29YsCx00=3D?= X-Forefront-Antispam-Report-Untrusted: CIP:2a00:1450:4864:31::10;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail-wm2-x10.google.com;PTR:mail-wm2-x10.google.com;CAT:NONE;SFS:(13230040)(12012899012)(2092899012)(6059299003)(3072899012)(43022699015)(82310400026)(6133799003)(19002099009)(3023799007)(10067099003)(5023799004)(5063699009)(56012099006)(22082099003)(18002099003)(18056099003)(16102099003)(55112099003);DIR:INB; X-Auto-Response-Suppress: DR, OOF, AutoReply X-Exchange-RoutingPolicyChecked: sRmWfa9RRz3UFI+xlkobGtSso81v9BnYouLquBnysvLlM79FESGNE9f5jJ7Q9ay4O5oCL/FV4bOKGZJ8A1JbJ8LVjjjxHA8Du9IvWK2ZhoBveW0u6pXFlu2kkoqR4gQdFREJUkhzyBZRkPJBAd3Delpeuz1tm7H3sAPp4Ug3bIJ1L/5I23uFdNDJu2mFdGWLc0eStgMlMfO2CbWozs29LYrVtfqXrQx/gZoAwq+b7P2EEVgxDZRuGcAq30iVA2E/PQ58ep2Blm+/17duNEWh9eSCzDscsCgIMSMuvS/FXsQZYfH0fd98yrxjTZEtZ7mfXyFV6/uD8vCBCP+bQZDvog== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10206 X-MS-Exchange-Organization-ExpirationStartTime: 16 Sep 2026 15:24:51.1820 (UTC) X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000 X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit X-MS-Exchange-Organization-Network-Message-Id: 806ee0e5-26d7-4130-ecd7-08df1406a6dd X-MS-Exchange-Organization-MessageDirectionality: Incoming X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509F9.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Exchange-Organization-AuthSource: DB1PEPF000509F9.eurprd02.prod.outlook.com X-MS-Exchange-Organization-AuthAs: Anonymous X-MS-Office365-Filtering-Correlation-Id-Prvs: 8395ab4c-1e8e-4764-168c-08df1406a1d9 X-MS-Exchange-Organization-SCL: -1 X-Microsoft-Antispam: BCL:0;ARA:13230040|3072899012|2092899012|43022699015|6059299003|35042699022|82310400026|12012899012|18003699003|6133799003|19002099009|10067099003|5063699009|5023799004|5133699003|22082099003|57112099003|16102099003|55112099003|3023799007|18056099003; X-Forefront-Antispam-Report: CIP:99.81.216.78;CTRY:IE;LANG:en;SCL:-1;SRV:;IPV:CAL;SFV:SKN;H:nat.eu.perception-point.io;PTR:nat2.eu.perception-point.io;CAT:NONE;SFS:(13230040)(3072899012)(2092899012)(43022699015)(6059299003)(35042699022)(82310400026)(12012899012)(18003699003)(6133799003)(19002099009)(10067099003)(5063699009)(5023799004)(5133699003)(22082099003)(57112099003)(16102099003)(55112099003)(3023799007)(18056099003);DIR:INB; X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 15:24:51.0733 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 806ee0e5-26d7-4130-ecd7-08df1406a6dd X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509F9.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6326 X-MS-Exchange-Transport-EndToEndLatency: 00:00:02.9224901 X-MS-Exchange-Processed-By-BccFoldering: 15.21.0451.004 Content-Type: text/plain X-Microsoft-Antispam-Mailbox-Delivery: ucf:0;jmr:0;auth:0;dest:I;ENG:(910005)(944506478)(944626604)(920097)(930201)(20251009189)(140003); X-Microsoft-Antispam-Message-Info: =?iso-8859-1?Q?IzyciKp7rFKBBEWsBPpbtmn+pH7HZrFFUv5hJx/xlAgQ7MdrdYkfckX0BQ?= =?iso-8859-1?Q?Q3tBCIvB+r/hxzFqoKLUq7PX0HlZhUYp2lcNonC7yypw4HdXlxmJFOuVis?= =?iso-8859-1?Q?cPbSFPLzo9msidQrumDpp/dJAR401n6g6U7yShKkwZPxpNk9kmAsv2JHe6?= =?iso-8859-1?Q?BCv884ZJqCVeqa4oJM+vTM4Vw2C6MHcuZhd4nlNznT6sDkWfVURFxCMfBE?= =?iso-8859-1?Q?QP+JBQuQraqO/vDUtlavorfGCphm8OC82V9T6Yoc5SQy7C9gpJs0S4/kbK?= =?iso-8859-1?Q?Mq8LiCuA5HaObRTN3U8348dPZQAIe+KNGMeoQYBwYhpwETRChMqQJboMGx?= =?iso-8859-1?Q?MNizKCLZkIt77Gt2mb66ZmxSrX0RGCxlTfn186n7Z5XxwlPDz8uhGBMehn?= =?iso-8859-1?Q?B2TJaMjCWW1RfhANLypcr0n66cQiw4gZTxLgmoz/DhDy2zlvCtIOS/YwrJ?= =?iso-8859-1?Q?g+LqajYj5/EPc0hYr34DKbPN4K4eOvbrI0XiaT1cMr43dIZ90riGgIertW?= =?iso-8859-1?Q?bZ+3K1FNY6MWu5uOFB72RenE2TaghoJdwdk+2MbWkE7hp4q8WOCoaTIKe6?= =?iso-8859-1?Q?MYLZeqkyceMhHRVVlfkf9W8eHPzIs1ctTaPOA+5gzAnTFopMmUUZ9Gy6qI?= =?iso-8859-1?Q?rihma6/D9hPpcmwMPs1prJ/cV9cABxVumKKk/p4tRWd3JeebD4OZusgZR7?= =?iso-8859-1?Q?MO/mOOx8Ymlfrkr7gJ+no36lbtj02JjWMCRV+nNJCM8D1eqNObqgukaUTa?= =?iso-8859-1?Q?cYUdWBSjauEFPQnPwy/isHWoBwbVJywW1iM0VCrIipw+oJM5PM5cxyUUqz?= =?iso-8859-1?Q?6j44+EX+46g6Hmcb0I1/Dh8HmiHlUoEgd9PVifbQ1xRoSbJE7LDoOSCOtl?= =?iso-8859-1?Q?1RLw4vdeTsmY+54VEn/2pfWln76VFNfN/gCK98ul2NMMLK6m9jqelfm8uq?= =?iso-8859-1?Q?VN6q1Xq5thakL1Dkn8zoQcQKTDsZMIw3OeUPyVCVHvuDE5E1PwUoZ1GgWE?= =?iso-8859-1?Q?igcJCOIWpHGkUOIPQg17izLOagsnnSNII6Sm4aLfTWl7eiG4ATg56iwU0P?= =?iso-8859-1?Q?R6Pfw8W6TXlBJlAAWuEyhcdk446937uuvFKrf5ZkkMR1TUs39PKoaREbiR?= =?iso-8859-1?Q?C9bmfN/ll6V+/CBZ4x/dCh37fhDtGqVtqbOYVQLvcI6kFWEAhifMKwjRBx?= =?iso-8859-1?Q?XsoHO3K5qjGGJV9BkrrLwJi4ejJAKSSgeHXj/hdeYMv9z/r5WIt2eSOj51?= =?iso-8859-1?Q?Yqr6k41BnoKqj9IYIOTw0SJi+VYXZdu/e4dt7NZh7M86NYDKm8XHY1LGfW?= =?iso-8859-1?Q?Fby4ccEyPNqPfN1m1R1BR/BMGPVUwKZ+2epdeO7TDEYxuX01SarOYgKXRW?= =?iso-8859-1?Q?ESJJD2cl26JpAOS8l22nEgpaje4zT5hLlxIyT0LztGHn5GcKq6XvPTP7G5?= =?iso-8859-1?Q?TAK5F/N9BnBgZKCOUcmHTnhck5oSHOokpVxSI51VIMedmAfz0gtwGMfHls?= =?iso-8859-1?Q?WFRO+4c8T/73VTsOLV1ojgbG71OpIGTJkgHmLBatnmTYYHnczbK5TeXtDV?= =?iso-8859-1?Q?Gv3mdFbYg5gJS97nEuYJQqmM8FYbZIXxJeOZ6Yk4E27IzJSGbn6VGQZnUo?= =?iso-8859-1?Q?T3we4RHPp8FvBclzsH/9ZlRas25ZG16WPNAgvlj7lgRWAFg/0t9vH9/Tkk?= =?iso-8859-1?Q?LJ+S9jwwrcgIYLNb8Qnei0ZK9XklJAiyo+YO3mi5JjipxGH38lssThQhqx?= =?iso-8859-1?Q?HBiz6S1Lvn7A1lgtGC2G8X2647N/WUWFXyQoLdRODdfwZsXkhWcnz5SxRY?= =?iso-8859-1?Q?Z2syLLae+I5df76B88tQa4nfCJ7mDkxVgf3ckp6pDXLAmM9E6kcqj5ptOj?= =?iso-8859-1?Q?+WIixpbYb9AUFuNhe0PRqtayYG3CQ7x44BqDu/6CWsLsJTuvnxxt1r/Kh6?= =?iso-8859-1?Q?mNonNksDtYNtLZ/xTaE4X3KITjT1Ax2mBsCxjpfWkX4E+Eri0vPDuoAx9w?= =?iso-8859-1?Q?wsjjVjU8TWxZwIB+HuuaFw5m35U162jtmFRuPfcSUFgCt+dSofGcsska9V?= =?iso-8859-1?Q?hO3HG1gXnHl/1fOAXGwlgS62xie6K5yXI7R06ySpxarTr7J/7ycepvsj3h?= =?iso-8859-1?Q?znKiXBvUzkKZObwCmXjnQLxAoTmbpYU7CZoV5y37U4cNe1bcz0yU0pKjw4?= =?iso-8859-1?Q?FX+SeiUV3pgBW9zIxIE/e+OwZKrAPTghAxO1UWxhYrohsp/Ww4pR0rBWVM?= =?iso-8859-1?Q?qsaIR8/3YCJBrTfcbzXoZbUa397Q+1tVvnFBEf2Dz9gjD6hu48IUHEbtV6?= =?iso-8859-1?Q?BcwFsEo5TrK8wkWsi9VOmGEr5X7J9ozO5wfRN5YeGJOfWSYmmfPwWWxnBj?= =?iso-8859-1?Q?kdpSqOQB5N0hv0OWAvjiQClV5nfhQq2yefzgqb5V2bWITUl8mDJvdQCoAr?= =?iso-8859-1?Q?YPPCgxcJq9o6YSWSGUjt/9fsnaoXtyEtbGMzIIJFVeasdtg54TzrcTFcBy?= =?iso-8859-1?Q?5IjpouZy0HxB6GFK99bCRkHUTsmbTj/lXUURUV/34Vm4fcxwOri1Ii4uoS?= =?iso-8859-1?Q?GAO3Io9D+TpnpulIpEyANvkDBGuu+9cAlj3VRYuGBgVy6Ij2iJeptY/mqV?= =?iso-8859-1?Q?8FhiSoFtqn8eGgF4ELuxsKpubtQ2vh6w1CuCchu+lAXun2xG4LorRpjTeq?= =?iso-8859-1?Q?xWcd8XmdUTM8WJCacDRGUq1BLea3LQix5x6DwQxfriaXbdQSCCdsn9F0By?= =?iso-8859-1?Q?NuPdnFoe3F1R1CTqjn0UnJJJy5mbLFl8PqPIninTHhVRpQPN6HtNWdyC4?= =?iso-8859-1?Q?=3D?= MIME-Version: 1.0 List-Id: From: Denis V. Lunev qcow2_signal_corruption() drops bs->drv, so a node can lose its driver at any time and a reopen has to expect that. Both ends of the path assume otherwise: $ qemu-io -c "read 0 64k" -c "reopen -r" corrupt.qcow2 qcow2: Marking image as corrupt: Cluster allocation offset 0x1200 unaligned (L2 offset: 0x40000, L2 index: 0); ... Segmentation fault bdrv_reopen_queue_child() dereferences bs->drv while descending into the children the node opened itself, and bdrv_reopen_prepare() asserts on it. commit_clean() reopens the base of a commit job back to read-only, so a base which goes corrupt under the job arrives here too. There is nothing to reopen for such a node, so stop descending into its children and let bdrv_reopen_prepare() report what every caller of bdrv_reopen() already handles. bdrv_reopen_commit() and bdrv_reopen_abort() keep their assertion, only a prepared entry reaches them. Signed-off-by: Denis V. Lunev Reviewed-by: Andrey Drobyshev CC: Kevin Wolf CC: Hanna Reitz CC: Andrey Drobyshev Cc: qemu-stable@nongnu.org --- block.c | 14 +++++++++++++- tests/qemu-iotests/060 | 30 ++++++++++++++++++++++++++++++ tests/qemu-iotests/060.out | 13 +++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/block.c b/block.c index 7b27cb4edf3..44afa191930 100644 --- a/block.c +++ b/block.c @@ -4526,6 +4526,11 @@ bdrv_reopen_queue_child(BlockReopenQueue *bs_queue, BlockDriverState *bs, !qdict_haskey(options, "backing.driver"); } + /* An unusable node is rejected by bdrv_reopen_prepare(), do not descend */ + if (!bs->drv) { + return bs_queue; + } + QLIST_FOREACH(child, &bs->children, next) { QDict *new_child_options = NULL; bool child_keep_old = keep_old_opts; @@ -4921,9 +4926,16 @@ bdrv_reopen_prepare(BDRVReopenState *reopen_state, BlockReopenQueue *queue, bool drv_prepared = false; assert(reopen_state != NULL); - assert(reopen_state->bs->drv != NULL); GLOBAL_STATE_CODE(); + drv = reopen_state->bs->drv; + if (drv == NULL) { + GRAPH_RDLOCK_GUARD_MAINLOOP(); + + error_setg(errp, "Block node '%s' has no driver left to reopen", + bdrv_get_device_or_node_name(reopen_state->bs)); + return -ENOMEDIUM; + } /* This function and each driver's bdrv_reopen_prepare() remove * entries from reopen_state->options as they are processed, so diff --git a/tests/qemu-iotests/060 b/tests/qemu-iotests/060 index 5cd21a6f686..ce49fc34ecc 100755 --- a/tests/qemu-iotests/060 +++ b/tests/qemu-iotests/060 @@ -486,6 +486,36 @@ echo # Image should not have been marked corrupt _img_info --format-specific | grep 'corrupt:' +echo +echo "=== Testing the reopen of an image corrupted at runtime ===" +echo + +_make_test_img 64M +poke_file "$TEST_IMG" "$l1_offset" "\x00\x00\x00\x00\x2a\x2a\x2a\x2a" + +# The read leaves the node unusable, the reopen must report that +echo "{'execute': 'qmp_capabilities'} + {'execute': 'human-monitor-command', + 'arguments': {'command-line': 'qemu-io drive \"read 0 512\"'}} + {'execute': 'blockdev-reopen', + 'arguments': {'options': [{'node-name': 'drive', + 'driver': 'qcow2', + 'read-only': true, + 'file': { + 'driver': 'file', + 'filename': '$TEST_IMG' + }}]}} + {'execute': 'quit'}" \ + | $QEMU -qmp stdio -nographic -nodefaults \ + -blockdev "{'node-name': 'drive', + 'driver': 'qcow2', + 'file': { + 'driver': 'file', + 'filename': '$TEST_IMG' + }}" \ + 2>&1 \ + | _filter_qmp | _filter_qemu_io + # success, all done echo "*** done" rm -f $seq.full diff --git a/tests/qemu-iotests/060.out b/tests/qemu-iotests/060.out index a37bf446e94..ad1912a43be 100644 --- a/tests/qemu-iotests/060.out +++ b/tests/qemu-iotests/060.out @@ -436,4 +436,17 @@ qcow2: Image is corrupt: L2 table offset 0x2a2a2a00 unaligned (L1 index: 0); fur {"return": {}} corrupt: false + +=== Testing the reopen of an image corrupted at runtime === + +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 +QMP_VERSION +{"return": {}} +qcow2: Marking image as corrupt: L2 table offset 0x2a2a2a00 unaligned (L1 index: 0); further corruption events will be suppressed +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_IMAGE_CORRUPTED", "data": {"device": "", "msg": "L2 table offset 0x2a2a2a00 unaligned (L1 index: 0)", "node-name": "drive", "fatal": true}} +read failed: Input/output error +{"return": ""} +{"error": {"class": "GenericError", "desc": "Block node 'drive' has no driver left to reopen"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} +{"return": {}} *** done -- 2.53.0