[PATCH v2 1/2] qemuMigrationSrcBeginXML: Don't call 'qemuMigrationSrcBeginPhaseBlockDirtyBitmaps' with offline VM

Peter Krempa via Devel posted 2 patches 1 week, 3 days ago
[PATCH v2 1/2] qemuMigrationSrcBeginXML: Don't call 'qemuMigrationSrcBeginPhaseBlockDirtyBitmaps' with offline VM
Posted by Peter Krempa via Devel 1 week, 3 days ago
From: Peter Krempa <pkrempa@redhat.com>

Commit a4f610ff3fe190058f1 made the call to
'qemuMigrationSrcBeginPhaseBlockDirtyBitmaps' inside
'qemuMigrationSrcBeginXML' unconditional. This unfortunately means that
it was called also with 'VIR_MIGRATE_OFFLINE'.

Attempting to enter the monitor in such case results in an error:

 error: operation failed: domain is no longer running

Restrict the call only to non-offline migration.

Fixes: a4f610ff3fe190058f18baea18b095d0bc69441b
Resolves: https://redhat.atlassian.net/browse/RHEL-156800
Closes: https://gitlab.com/libvirt/libvirt/-/work_items/865
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 src/qemu/qemu_migration.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index fec808ccfb..cd4ddde897 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -2692,7 +2692,8 @@ qemuMigrationSrcBeginXML(virDomainObj *vm,
     if (!(mig = qemuMigrationCookieNew(vm->def, priv->origname)))
         return NULL;

-    if (qemuMigrationSrcBeginPhaseBlockDirtyBitmaps(mig, vm) < 0)
+    if (!(flags & VIR_MIGRATE_OFFLINE) &&
+        qemuMigrationSrcBeginPhaseBlockDirtyBitmaps(mig, vm) < 0)
         return NULL;

     if (qemuMigrationCookieFormat(mig, driver, vm,
-- 
2.53.0