1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-20 06:50:22 +03:00

qemuDomainGetStatsIOThread: Don't error out if fetching iothread info fails

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 <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2025-02-17 14:22:46 +01:00
parent f05f54d8fb
commit a761c44b90

View File

@ -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;
}