]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: do not overwrite the error in qemuDomainObjExitMonitor
authorLuyao Huang <lhuang@redhat.com>
Thu, 19 Mar 2015 03:14:39 +0000 (11:14 +0800)
committerCole Robinson <crobinso@redhat.com>
Tue, 28 Apr 2015 15:06:42 +0000 (11:06 -0400)
https://bugzilla.redhat.com/show_bug.cgi?id=1196934

When qemu exits during startup, libvirt includes the error from
/var/log/libvirt/qemu/vm.log in the error message:

$ virsh start test3
error: Failed to start domain test3
error: internal error: early end of file from monitor: possible problem:
2015-02-27T03:03:16.985494Z qemu-kvm: -numa memdev is not supported by
machine rhel6.5.0

The check for domain liveness added to qemuDomainObjExitMonitor
in commit dc2fd51f sometimes overwrites this error:
$ virsh start test3
error: Failed to start domain test3
error: operation failed: domain is no longer running

Fix the check to only report an error if there is none set.

Signed-off-by: Luyao Huang <lhuang@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 4f068209387118f9b67c7cfe1a6c0097d7f573e7)

src/qemu/qemu_domain.c

index 3303c0c6f8aebc7c173fe0761383803a02e58cf0..20ac408d1528edd1c45e6a802ea83e31652fa1ff 100644 (file)
@@ -1604,8 +1604,9 @@ int qemuDomainObjExitMonitor(virQEMUDriverPtr driver,
 {
     qemuDomainObjExitMonitorInternal(driver, obj);
     if (!virDomainObjIsActive(obj)) {
-        virReportError(VIR_ERR_OPERATION_FAILED, "%s",
-                       _("domain is no longer running"));
+        if (!virGetLastError())
+            virReportError(VIR_ERR_OPERATION_FAILED, "%s",
+                           _("domain is no longer running"));
         return -1;
     }
     return 0;