mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
qemu: Return meaningful error when qemu dies early
https://bugzilla.redhat.com/show_bug.cgi?id=844378 When qemu dies early after connecting to its monitor but before we actually try to read something from the monitor, we would just fail domain start with useless message: "An error occurred, but the cause is unknown" This is because the real error gets reported in a monitor EOF handler executing within libvirt's event loop. The fix is to take any error set in qemuMonitor structure and propagate it into the thread-local error when qemuMonitorClose is called and no thread-local error is set. Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
11cb128f21
commit
cfa7ceab77
@ -928,6 +928,12 @@ void qemuMonitorClose(qemuMonitorPtr mon)
|
|||||||
virCondSignal(&mon->notify);
|
virCondSignal(&mon->notify);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Propagate existing monitor error in case the current thread has no
|
||||||
|
* error set.
|
||||||
|
*/
|
||||||
|
if (mon->lastError.code != VIR_ERR_OK && !virGetLastError())
|
||||||
|
virSetError(&mon->lastError);
|
||||||
|
|
||||||
virObjectUnlock(mon);
|
virObjectUnlock(mon);
|
||||||
virObjectUnref(mon);
|
virObjectUnref(mon);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user