]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: dump: Resume CPUs only when the VM is still alive
authorPeter Krempa <pkrempa@redhat.com>
Tue, 9 Sep 2014 15:15:34 +0000 (17:15 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 10 Sep 2014 08:12:42 +0000 (10:12 +0200)
Check if the VM is alive after we possibly called into monitor to reset
the guest.

src/qemu/qemu_driver.c

index 24785205731a41d9cc6df8915bac350e196e79be..a8cda432266c27b28dc7587198b38806a9b59245 100644 (file)
@@ -3681,15 +3681,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"));
+            }
         }
     }