@@ -182,6 +182,7 @@ qemuMonitorTextCreateSnapshot(qemuMonitorPtr mon,
if (strstr(reply, "Error while creating snapshot") ||
strstr(reply, "Could not open VM state file") ||
strstr(reply, "State blocked by non-migratable device") ||
+ strstr(reply, "Error: ") ||
(strstr(reply, "Error") && strstr(reply, "while writing VM"))) {
virReportError(VIR_ERR_OPERATION_FAILED,
_("Failed to take snapshot: %s"), reply);
@@ -229,6 +230,7 @@ int qemuMonitorTextLoadSnapshot(qemuMonitorPtr mon, const char *name)
_("Failed to load snapshot: %s"), reply);
goto cleanup;
} else if (strstr(reply, "Could not open VM state file") ||
+ strstr(reply, "Error: ") ||
(strstr(reply, "Error") &&
(strstr(reply, "while loading VM state") ||
strstr(reply, "while activating snapshot on")))) {
@@ -266,8 +268,9 @@ int qemuMonitorTextDeleteSnapshot(qemuMonitorPtr mon, const char *name)
} else if (strstr(reply, "Snapshots not supported on device")) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s", reply);
goto cleanup;
- } else if (strstr(reply, "Error") &&
- strstr(reply, "while deleting snapshot")) {
+ } else if (strstr(reply, "Error: ") ||
+ (strstr(reply, "Error") &&
+ strstr(reply, "while deleting snapshot"))) {
virReportError(VIR_ERR_OPERATION_FAILED,
_("Failed to delete snapshot: %s"), reply);
goto cleanup;
qemu 4.0.0 will prefix most errors with 'Error: ', so consider any string instance of that an error. This fixes savevm failure detection when migration is blocked due to usage of nested VMX https://bugzilla.redhat.com/show_bug.cgi?id=1697997 Signed-off-by: Cole Robinson <crobinso@redhat.com> --- src/qemu/qemu_monitor_text.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -- 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list