Add a log entry to the VM log file for every time we receive an IO error
event from qemu. The log entry is as follows:
2025-01-24 16:03:28.928+0000: IO error device='virtio-disk0'
node-name='libvirt-1-storage' reason='other: Input/output error'
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_process.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 95d0a40f84..e813c11f7e 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -836,6 +836,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
virStorageSource *errsrc = NULL;
const char *srcPath = "";
const char *devAlias = "";
+ g_autofree char *timestamp = NULL;
virObjectLock(vm);
priv = QEMU_DOMAIN_PRIVATE(vm);
@@ -884,6 +885,11 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
}
virObjectUnlock(vm);
+ if ((timestamp = virTimeStringNow()) != NULL) {
+ qemuDomainLogAppendMessage(priv->driver, vm, "%s: IO error
device='%s' node-name='%s' reason='%s'\n",
+ timestamp, NULLSTR(devAlias), NULLSTR(nodename),
NULLSTR(reason));
+ }
+
virObjectEventStateQueue(priv->driver->domainEventState, ioErrorEvent);
virObjectEventStateQueue(priv->driver->domainEventState, ioErrorEvent2);
virObjectEventStateQueue(priv->driver->domainEventState, lifecycleEvent);
--
2.48.1