On Tue, Jan 28, 2025 at 05:28:16PM +0100, Peter Krempa wrote:
> Report any stored I/O error messages reported by the hypervisor when
> reporting messages of a domain. As the I/O error may be already stale we
> report also the timestamp when it was recorded.
>
> Example message:
>
> I/O error: disk='vda', index='1', path='/dev/mapper/errdev0',
> timestamp='2025-01-28 15:47:52.776+0000', message'Input/output error'
>
> Signed-off-by: Peter Krempa <[email protected]>
> ---
> include/libvirt/libvirt-domain.h | 3 ++
> src/conf/domain_conf.c | 50 ++++++++++++++++++++++++++++++++
> src/conf/domain_conf.h | 5 ++++
> src/libvirt_private.syms | 1 +
> src/libxl/libxl_driver.c | 3 +-
> src/qemu/qemu_driver.c | 15 +++++++++-
> src/test/test_driver.c | 3 +-
> 7 files changed, 77 insertions(+), 3 deletions(-)
>
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 8327e7079c..50733a5b3a 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -19821,9 +19821,11 @@ qemuDomainGetMessages(virDomainPtr dom,
> g_autoptr(GPtrArray) m = g_ptr_array_new_with_free_func(g_free);
> virDomainObj *vm = NULL;
> int rv = -1;
> + qemuDomainObjPrivate *priv;
>
> virCheckFlags(VIR_DOMAIN_MESSAGE_DEPRECATION |
> - VIR_DOMAIN_MESSAGE_TAINTING, -1);
> + VIR_DOMAIN_MESSAGE_TAINTING |
> + VIR_DOMAIN_MESSAGE_IOERRORS, -1);
>
> if (!(vm = qemuDomainObjFromDomain(dom)))
> return -1;
> @@ -19831,8 +19833,19 @@ qemuDomainGetMessages(virDomainPtr dom,
> if (virDomainGetMessagesEnsureACL(dom->conn, vm->def) < 0)
> goto cleanup;
>
> + priv = vm->privateData;
> +
> virDomainObjGetMessages(vm, m, flags);
>
> + if (priv->backup) {
&& (!flags || (flags & VIR_DOMAIN_MESSAGE_IOERRORS))
with that
Reviewed-by: Daniel P. Berrangé <[email protected]>
> + size_t i;
> +
> + for (i = 0; i < priv->backup->ndisks; i++)
> +
> virDomainObjGetMessagesIOErrorsChain(priv->backup->disks[i].store,
> + priv->backup->disks[i].name,
> + m);
> + }
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|