diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 2caed7315b..43b5ad5d6e 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -11780,5 +11780,15 @@ qemuDomainRemoveLogs(virQEMUDriver *driver, int qemuDomainObjWait(virDomainObj *vm) { - return virDomainObjWait(vm); + qemuDomainObjPrivate *priv = vm->privateData; + + if (virDomainObjWait(vm) < 0) + return -1; + + if (priv->beingDestroyed) { + virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("domain is not running")); + return -1; + } + + return 0; } diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 0b48852b9d..8a8e9ab207 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2078,7 +2078,7 @@ qemuMigrationSrcWaitForCompletion(virDomainObj *vm, return rv; if (qemuDomainObjWait(vm) < 0) { - if (virDomainObjIsActive(vm)) + if (virDomainObjIsActive(vm) && !priv->beingDestroyed) jobData->status = VIR_DOMAIN_JOB_STATUS_FAILED; return -2; }