On Tue, May 10, 2022 at 17:21:02 +0200, Jiri Denemark wrote: > We want to use query-migrate QMP command to check the current migration > state when reconnecting to active domains, but the reply we get to this > command may not contain any statistics at all if called on the > destination host. > > Signed-off-by: Jiri Denemark <jdenemar@xxxxxxxxxx> > --- > src/qemu/qemu_monitor_json.c | 88 +++++++++++++++++------------------- > 1 file changed, 42 insertions(+), 46 deletions(-) > > diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c > index 3a497dceae..df3fdfe4fb 100644 > --- a/src/qemu/qemu_monitor_json.c > +++ b/src/qemu/qemu_monitor_json.c > @@ -3249,56 +3249,52 @@ qemuMonitorJSONGetMigrationStatsReply(virJSONValue *reply, > case QEMU_MONITOR_MIGRATION_STATUS_PRE_SWITCHOVER: > case QEMU_MONITOR_MIGRATION_STATUS_DEVICE: > ram = virJSONValueObjectGetObject(ret, "ram"); > - if (!ram) { > - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", > - _("migration was active, but no RAM info was set")); > - return -1; > - } > + if (ram) { > + if (virJSONValueObjectGetNumberUlong(ram, "transferred", > + &stats->ram_transferred) < 0) { > + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", > + _("migration was active, but RAM 'transferred' " > + "data was missing")); > + return -1; > + } > + if (virJSONValueObjectGetNumberUlong(ram, "remaining", > + &stats->ram_remaining) < 0) { > + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", > + _("migration was active, but RAM 'remaining' " > + "data was missing")); > + return -1; > + } > + if (virJSONValueObjectGetNumberUlong(ram, "total", > + &stats->ram_total) < 0) { > + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", > + _("migration was active, but RAM 'total' " > + "data was missing")); > + return -1; > + } Please fix error messages to conform with coding style since you are touching them. Reviewed-by: Peter Krempa <pkrempa@xxxxxxxxxx>