From nobody Sun Nov 15 00:25:56 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=smartx.com ARC-Seal: i=1; a=rsa-sha256; t=1794580010; cv=none; d=zohomail.com; s=zohoarc; b=CXscEYzbotf+6qkkEXzTcnqQLdhFb8fVl7YcIcuHxBnVPifFzfMgvVkYNEMjcllJXg+4vKXGnijWzvzOnPkNPAyPyGt6p+wZ99YnHg9Cc/O9sqyud0pwW+E5bmOgzMLLLZNsOzQ0C2pTpTdb2sjbX9QCy3dE+f5Ps/GJ+IXjvdw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1794580010; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=CzciPjYHbrQcmgnabclp0u1sziWQ22c1QgSK8YNQJcE=; b=Kn9yM0r7bwSDz3h04jgCS4V+aG7gn1xxega74WECeT+2TDLztweVzuQXDkq/YVhb2nDMYvME6BMATwHX+FhB6ahBN6fj5Y3n59rpxAj3w3rMcXhcehYgK0ByIkCZCfEUCCwqL01o7TYFQqjq65nasUsI2SbhkqNMCyyG6tCQadA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1794580010356832.0525043862409; Fri, 13 Nov 2026 06:26:50 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 9B05C3F30F; Fri, 13 Nov 2026 09:26:48 -0500 (EST) Received: from [172.19.199.25] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id A87B741BFE; Fri, 13 Nov 2026 09:25:53 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id EC77C3F290; Fri, 13 Nov 2026 09:25:44 -0500 (EST) Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com [IPv6:2607:f8b0:4864:20::42e]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 819FA3F292 for ; Fri, 13 Nov 2026 09:25:42 -0500 (EST) Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-8b9c51097e2so627963b3a.1 for ; Fri, 13 Nov 2026 06:25:42 -0800 (PST) Received: from smartx.localdomain ([2407:cdc0:b006:d0f8:d858:504a:b96c:a1a3]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-8bed12a7edbsm1172278b3a.18.2026.11.13.06.25.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Nov 2026 06:25:40 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smartx-com.20260707.gappssmtp.com; s=20260707; t=1794579941; x=1795184741; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=CzciPjYHbrQcmgnabclp0u1sziWQ22c1QgSK8YNQJcE=; b=Xpv8Nrh+hk3w32NKmDvU/g4SQMdYQlgJ1zUyJzE9aQ0N6g/F6ZXcVaxuMtQvKFFvFn 2PTDVflZgUbYZQB8izd8nB7eG1Z0gm2HCW4HGJfSNmA/qb/8AXzWHWOuVpb/MD9R0eew YlOg7cwOOkkcoVsAkFAXv/MoFjFfOsD/VBXH8LUadLYn6q9Oo/KrV+KCT6y68IbthYIe RYoAzTXWVE/Vkf728055IWG6AQjKZWR5ANtIwNTlKX7t4diWsQy7y7q/lDDyGgUD9cmq SPnNRZiTKDL/axG0tp+x+XRb86Yzq3oiP/t+Jp8f+paIm6JvLOq5eWAy4KV6+9HbA9D7 BbpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794579941; x=1795184741; h=content-transfer-encoding:mime-version: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=CzciPjYHbrQcmgnabclp0u1sziWQ22c1QgSK8YNQJcE=; b=QhRq7WGZ83MV7mNaj1d/QCNiZvkKK+O0jJrU9UngaoKkeOpirlC2RuExXl7XaqGWjb shFzDnUC9CiHvmUPRVadw9YzQYysIY3IKdFY5OQ8aDREE52JPLJXVS4PsmIv8m57SbVR b0N3PpfniaTdS4hfj3GnIDtCKRGmiWlHEEM8AqHPxNcPfAQo3N+FJDG1zZViS8S9euLT rkBSuU0hFbzv4pd7ILqa1zQeFNTFN9fnv1hSW1OyI6Pb4ECjQfQpumsNslmo6XpeFnzw Ace0KF6mcvshyZ86N7wQ+Fra/uNXZGr2i8l2ZXL9YZenB+FzcqNv+O6QXiYgW/7emclW WhnA== X-Gm-Message-State: APuU4Z+40GnFLxeCfxpbLoAgzxWIQU4G9Vgp6JYx5bieIuFtwJUc/FaL ebF1yrdvKt7hlgoB7FXUCOSyAgUuk1FlE45fcBKKXO24OBjTjEnwBhbWjDhDVNdgoRSqSs2B+8g RaVu4Tw3Aq8meoXQrO4mgaqiPOYD97Pf4BHv4nCllppGM9HUeeOatqafZ26EUjvZD7x4pu25bJw == X-Gm-Gg: AYBFou3Qe0w9Db3RfIhGzgFQsokct1OWd2J4D6ARpYpE3O+K7lqQ5QPAt5xVNdbxI0o gM1oKTFPl/rS2JqA9bp1TBuPOMnZ/g1+OFVJOY/KDOxIZXJGjPUB5vcVRZEh5jQiKk2Ob4GBsLq ctwsAN3VPECiebJ/v0RCucQbDdRNrU0N8bSuGZEnuQdD0/eOlgpetJ2BeUouQy79oqqIyyettsU CWT8B9MY3zUuD0/959/8Q3ODHjzR4y77Yh1dk/XqlQ5/Q4HWp0nGYEBvwV3E0TkanEbCqChtzlI 5tBjMDQ/FNzQSIclPEORLpyZTpoJxpG2ceL5deE9e6f2gLJ76uXpPzni4+r4WPevjyKbYPmz5wR g2v0fBKNB+UgpX6B+jbaRQWWk7gApvBmU28IKnnIhQbrgNnSFcEW0JZ95/QfKlb8Lesb0DCED/m PCipEgzxYOfZ8rQbIcJCurb422ynf1uZ052qQblcLis5yolbPHiUQ2fIp0Bzi6lqU1I1XWnqfKa AXa9hVfC0N0OLf/YKeFpnxXJPM2mIuyvidVKya2EU/O3lJSztKrO0GGISvOHfJKpK8LtLeQgmSo 6FsB/532xi5V/WAjrZYySbj+yCs/Db46bRiM09TeBkGZzVeVEmTNRSFDGWlXgkUA4uqVQXSosfm J/Qjbo640ffWsfkl8Awi0oOaf6K8= X-Received: by 2002:a05:6a00:4191:b0:881:e626:74a0 with SMTP id d2e1a72fcca58-8beb7929222mr2423021b3a.47.1794579941280; Fri, 13 Nov 2026 06:25:41 -0800 (PST) From: Guangjian Wang To: devel@lists.libvirt.org Subject: [PATCH] qemuMigrationSrcNBDCopyCancelled: Recheck for all finished block job states Date: Fri, 13 Nov 2026 22:25:31 +0800 Message-ID: <20261113142534.14242-1-guangjian.wang@smartx.com> X-Mailer: git-send-email 2.53.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 7ZWV77KKYD7XGJSE76ULH7PT7R2BUHEY X-Message-ID-Hash: 7ZWV77KKYD7XGJSE76ULH7PT7R2BUHEY X-MailFrom: guangjian.wang@smartx.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Guangjian Wang X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @smartx-com.20260707.gappssmtp.com) X-ZM-MESSAGEID: 1794580012034158500 Content-Type: text/plain; charset="utf-8" Only COMPLETED state drops the lock in legacy mode when updating block job state originally, but all finished (COMPLETED/FAILED/CANCELLED/CONCLUDED) block job states may drop the lock since modern block job event handlers were imported. In the process of 'qemuMigrationSrcNBDCopyCancel', when updating job state of a disk into FAILED/CANCELLED/CONCLUDED, finished jobs for disks that reside before this disk would be checked until next time when 'qemuMigrationSrcNBDCopyCancelled' is called. In this condition, if block jobs have all finished, the condition variable vm->cond would never be signaled and 'qemuMigrationSrcNBDCopyCancel' would hung at 'qemuDomainObjWait'. Expanding the conditions for re-examination could resolve most cases. Signed-off-by: Guangjian Wang --- src/qemu/qemu_migration.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 5d4d8b5a32..09bbbd70c3 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -864,12 +864,12 @@ qemuMigrationSrcNBDCopyCancelled(virDomainObj *vm, { size_t i; size_t active =3D 0; - size_t completed =3D 0; + size_t finished =3D 0; bool failed =3D false; =20 do { active =3D 0; - completed =3D 0; + finished =3D 0; =20 for (i =3D 0; i < vm->def->ndisks; i++) { virDomainDiskDef *disk =3D vm->def->disks[i]; @@ -899,17 +899,17 @@ qemuMigrationSrcNBDCopyCancelled(virDomainObj *vm, active++; } =20 - if (job->state =3D=3D VIR_DOMAIN_BLOCK_JOB_COMPLETED) - completed++; + if (!diskPriv->migrating) + finished++; =20 virObjectUnref(job); } =20 - /* Updating completed block job drops the lock thus we have to rec= heck - * block jobs for disks that reside before the disk(s) with comple= ted + /* Updating finished block job drops the lock thus we have to rech= eck + * block jobs for disks that reside before the disk(s) with finish= ed * block job. */ - } while (completed > 0); + } while (finished > 0); =20 if (failed) { if (active) { --=20 2.53.0