qemu: do not overwrite the error in qemuDomainObjExitMonitor

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 4f06820938)
This commit is contained in:
Luyao Huang 2015-03-19 11:14:39 +08:00 committed by Cole Robinson
parent bb00c1f9fc
commit 93c5841e08

View File

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