From: Christian Ehrhardt Date: Thu, 9 Mar 2017 09:54:32 +0000 (+0100) Subject: qemu: monitor: do not report error on shutdown X-Git-Tag: v3.4.0-rc1~119 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aeda1b8c56dc58b0a413acc61bbea938b40499e1;p=thirdparty%2Flibvirt.git qemu: monitor: do not report error on shutdown If a shutdown is expected because it was triggered via libvirt we can also expect the monitor to close. In those cases do not report an internal error like: "internal error: End of file from qemu monitor" Signed-off-by: Christian Ehrhardt --- diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 1d40d521a9..2148d483ed 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -63,6 +63,7 @@ struct _qemuMonitor { int fd; int watch; int hasSendFD; + int willhangup; virDomainObjPtr vm; @@ -693,8 +694,10 @@ qemuMonitorIO(int watch, int fd, int events, void *opaque) if (events & VIR_EVENT_HANDLE_HANGUP) { hangup = true; if (!error) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("End of file from qemu monitor")); + if (!mon->willhangup) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("End of file from qemu monitor")); + } eof = true; events &= ~VIR_EVENT_HANDLE_HANGUP; } @@ -733,7 +736,7 @@ qemuMonitorIO(int watch, int fd, int events, void *opaque) if (mon->lastError.code != VIR_ERR_OK) { /* Already have an error, so clear any new error */ virResetLastError(); - } else { + } else if (!mon->willhangup) { virErrorPtr err = virGetLastError(); if (!err) virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -1327,6 +1330,7 @@ qemuMonitorEmitShutdown(qemuMonitorPtr mon) { int ret = -1; VIR_DEBUG("mon=%p", mon); + mon->willhangup = 1; QEMU_MONITOR_CALLBACK(mon, ret, domainShutdown, mon->vm); return ret;