On 10/15/21 1:53 AM, Jim Fehlig wrote:
There have been countless reports from users concerned about the
following
error reported by libvirtd when qemu domains are shutdown
internal error: End of file from qemu monitor
While the error is harmless, users often mistaken it for real problem with
their deployments. EOF from the monitor can't be entirely ignored since
other threads may be using the monitor and must be able to detect the EOF
condition.
One potential fix is to delay reporting EOF until the monitor is used
after EOF is detected. This patch adds a 'goteof' member to the
qemuMonitor structure, which is set when EOF is detected on the monitor
socket. If another thread later tries to send data on the monitor, the
EOF error is reported.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
First non-RFC version of the patch. RFC version can be found here
https://listman.redhat.com/archives/libvir-list/2021-October/msg00484.html
Tests mentioned in the below post are running on this version of the
patch and have completed 12 iterations thus far
https://listman.redhat.com/archives/libvir-list/2021-October/msg00351.html
src/qemu/qemu_monitor.c | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 7ff6a1161f..434cc26c10 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -113,6 +113,7 @@ struct _qemuMonitor {
/* true if qemu no longer wants 'props' sub-object of object-add */
bool objectAddNoWrap;
+ bool goteof;
Nit pick - sorry for not raising this earlier, but this placement feels
a bit weird. The goteof has nothing to do with objectAddNoWrap member.
Can you please move it a few lines up? Somewhere around lastError or
waitGreeting - that place looks better.
};
Reviewed-by: Michal Privoznik <mprivozn(a)redhat.com>
Michal