From: Peter Krempa <pkrempa@redhat.com>
Commits 7b5566ce67b18a and f879d5f40385358 ( v11.8.0-92-gf879d5f403 )
moved around code for re-activating block backends after migration.
While previously it was done when migration failed now we do it when we
need qemu to do some block operations.
Commit 7b5566ce67b18a introduced a bug where 'qemuBlockNodesEnsureActive'
is called also when the VM is offline (for migration with
'VIR_MIGRATE_OFFLINE'). That doesn't work though as attempting to enter
the monitor of an inactive VM returns failure.
Address it by calling 'qemuBlockNodesEnsureActive' only on active VMs
during migration.
Fixes: 7b5566ce67b18a2bebe68fdb07e046f25185f8d3
Resolves: https://redhat.atlassian.net/browse/RHEL-156800
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..3141018a78 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -2870,7 +2870,8 @@ qemuMigrationSrcBeginPhase(virQEMUDriver *driver,
vm->newDef && !qemuDomainVcpuHotplugIsInOrder(vm->newDef)))
cookieFlags |= QEMU_MIGRATION_COOKIE_CPU_HOTPLUG;
- if (qemuBlockNodesEnsureActive(vm, vm->job->asyncJob) < 0)
+ if (virDomainObjIsActive(vm) &&
+ qemuBlockNodesEnsureActive(vm, vm->job->asyncJob) < 0)
return NULL;
return qemuMigrationSrcBeginXML(vm, xmlin,
--
2.53.0