From: Jiri Denemark <jdenemar@redhat.com>
When virDomainAbortJob is called with VIR_DOMAIN_ABORT_JOB_POSTCOPY flag
and the post-copy migration of the domain is already stopped (either
because of a failure or previous call to virDomainAbortJob), the
migrate-pause QMP command fails with "migrate-pause is currently only
supported during postcopy-active or postcopy-recover state". Such error
might be confusing to end users especially when we mark it as an
internal error. Let's not call the QMP command at all and report a
clear error message instead.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_driver.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 7f08fd05e9..c5eedeedfa 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -12318,6 +12318,12 @@ qemuDomainAbortJobPostcopy(virDomainObj *vm,
return -1;
}
+ if (virDomainObjIsFailedPostcopy(vm, vm->job)) {
+ virReportError(VIR_ERR_OPERATION_INVALID, "%s",
+ _("post-copy migration already stopped"));
+ return -1;
+ }
+
VIR_DEBUG("Suspending post-copy migration at client request");
qemuDomainObjAbortAsyncJob(vm);
--
2.53.0