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.d...@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