From a761c44b90367cc62c9ad002fd02b8f19fe847f0 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 17 Feb 2025 14:22:46 +0100 Subject: [PATCH] qemuDomainGetStatsIOThread: Don't error out if fetching iothread info fails MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The bulk domain stats API is meant to collect as much data as possible without erroring out. Ignore errors from 'qemuDomainGetIOThreadsMon()' and skip the data if an error happens. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik Reviewed-by: Ján Tomko --- src/qemu/qemu_driver.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 8d413fc4df..e513223de2 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -17531,22 +17531,21 @@ qemuDomainGetStatsIOThread(virQEMUDriver *driver G_GNUC_UNUSED, unsigned int privflags) { size_t i; - qemuMonitorIOThreadInfo **iothreads = NULL; + g_autofree qemuMonitorIOThreadInfo **iothreads = NULL; int niothreads = 0; - int ret = -1; if (!HAVE_JOB(privflags) || !virDomainObjIsActive(dom)) return 0; - if (qemuDomainGetIOThreadsMon(dom, &iothreads, &niothreads) < 0) - return -1; + if (qemuDomainGetIOThreadsMon(dom, &iothreads, &niothreads) < 0) { + virResetLastError(); + return 0; + } /* qemuDomainGetIOThreadsMon returns a NULL-terminated list, so we must free * it even if it returns 0 */ - if (niothreads == 0) { - ret = 0; - goto cleanup; - } + if (niothreads == 0) + return 0; virTypedParamListAddUInt(params, niothreads, "iothread.count"); @@ -17564,14 +17563,10 @@ qemuDomainGetStatsIOThread(virQEMUDriver *driver G_GNUC_UNUSED, } } - ret = 0; - - cleanup: for (i = 0; i < niothreads; i++) VIR_FREE(iothreads[i]); - VIR_FREE(iothreads); - return ret; + return 0; } -- 2.47.3