[libvirt] [PATCH 4/4] qemu: dump: Resume CPUs only when the VM is still alive

Peter Krempa pkrempa at redhat.com
Tue Sep 9 15:25:35 UTC 2014


Check if the VM is alive after we possibly called into monitor to reset
the guest.
---
 src/qemu/qemu_driver.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index f0e8994..9765af5 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3683,15 +3683,17 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom,
             qemuDomainObjExitMonitor(driver, vm);
         }

-        if (resume && qemuProcessStartCPUs(driver, vm, dom->conn,
-                                           VIR_DOMAIN_RUNNING_UNPAUSED,
-                                           QEMU_ASYNC_JOB_DUMP) < 0) {
-            event = virDomainEventLifecycleNewFromObj(vm,
-                                             VIR_DOMAIN_EVENT_SUSPENDED,
-                                             VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR);
-            if (virGetLastError() == NULL)
-                virReportError(VIR_ERR_OPERATION_FAILED,
-                               "%s", _("resuming after dump failed"));
+        if (resume && virDomainObjIsActive(vm)) {
+            if (qemuProcessStartCPUs(driver, vm, dom->conn,
+                                     VIR_DOMAIN_RUNNING_UNPAUSED,
+                                     QEMU_ASYNC_JOB_DUMP) < 0) {
+                event = virDomainEventLifecycleNewFromObj(vm,
+                                                          VIR_DOMAIN_EVENT_SUSPENDED,
+                                                          VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR);
+                if (virGetLastError() == NULL)
+                    virReportError(VIR_ERR_OPERATION_FAILED,
+                                   "%s", _("resuming after dump failed"));
+            }
         }
     }

-- 
2.0.2




More information about the libvir-list mailing list