When TD VM reboot, qemu process is recreated by destroying old and
creating new one. When new qemu process starts, it sends a RESUME
event while libvirt domain isn't in run state yet. Then event
VIR_DOMAIN_EVENT_RESUMED is sent out and confuse control plane.
Check priv->pausedShutdown and bypass the event for TD VM, for
normal VM, domain is in run state and already bypassing it.
Signed-off-by: Zhenzhong Duan <zhenzhong.duan(a)intel.com>
---
src/qemu/qemu_process.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 62cbc3a3f8..67b4679745 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -813,9 +813,11 @@ qemuProcessHandleResume(qemuMonitor *mon G_GNUC_UNUSED,
reason = VIR_DOMAIN_RUNNING_POSTCOPY;
}
virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, reason);
- event = virDomainEventLifecycleNewFromObj(vm,
- VIR_DOMAIN_EVENT_RESUMED,
- eventDetail);
+
+ if (!priv->pausedShutdown)
+ event = virDomainEventLifecycleNewFromObj(vm,
+ VIR_DOMAIN_EVENT_RESUMED,
+ eventDetail);
qemuDomainSaveStatus(vm);
}
--
2.34.1