]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix QEMU domain state after a save attempt fails
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 4 Feb 2010 17:19:51 +0000 (17:19 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 2 Mar 2010 16:23:31 +0000 (16:23 +0000)
When a VM save attempt failed, the VM would be left in a paused
state. It is neccessary to resume CPU execution upon failure
if it was running originally

* src/qemu/qemu_driver.c: Resume CPUs upon save failure

src/qemu/qemu_driver.c

index d03c2359051f707c20c3befe6681356f3d06b32b..7f7c459707cb2ba355561180fe1180c886ce62c3 100644 (file)
@@ -4221,6 +4221,16 @@ static int qemudDomainSave(virDomainPtr dom,
     }
 
 endjob:
+    if (ret != 0 && header.was_running) {
+        qemuDomainObjEnterMonitorWithDriver(driver, vm);
+        rc = qemuMonitorStartCPUs(priv->mon, dom->conn);
+        qemuDomainObjExitMonitorWithDriver(driver, vm);
+        if (rc < 0)
+            VIR_WARN0("Unable to resume guest CPUs after save failure");
+        else
+            vm->state = VIR_DOMAIN_RUNNING;
+    }
+
     if (vm &&
         qemuDomainObjEndJob(vm) == 0)
             vm = NULL;