| From fcad662da8e472fc749a439d5bc2bdd30164d779 Mon Sep 17 00:00:00 2001 |
| Message-Id: <fcad662da8e472fc749a439d5bc2bdd30164d779@dist-git> |
| From: Jiri Denemark <jdenemar@redhat.com> |
| Date: Thu, 16 Jan 2020 19:57:53 +0100 |
| Subject: [PATCH] qemu: Don't emit SUSPENDED_POSTCOPY event on destination |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| When pause-before-switchover QEMU capability is enabled, we get STOP |
| event before MIGRATION event with postcopy-active state. To properly |
| handle post-copy migration and emit correct events commit |
| v4.10.0-rc1-4-geca9d21e6c added a hack to |
| qemuProcessHandleMigrationStatus which translates the paused state |
| reason to VIR_DOMAIN_PAUSED_POSTCOPY and emits |
| VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY event when migration state changes |
| to post-copy. |
| |
| However, the code was effective on both sides of migration resulting in |
| a confusing VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY event on the destination |
| host, where entering post-copy mode is already properly advertised by |
| VIR_DOMAIN_EVENT_RESUMED_POSTCOPY event. |
| |
| https://bugzilla.redhat.com/show_bug.cgi?id=1791458 |
| |
| Signed-off-by: Jiri Denemark <jdenemar@redhat.com> |
| Reviewed-by: Ján Tomko <jtomko@redhat.com> |
| (cherry picked from commit bd04d63ad97c21b6955710e6473a502f49816a3c) |
| |
| https://bugzilla.redhat.com/show_bug.cgi?id=1791886 |
| |
| Signed-off-by: Jiri Denemark <jdenemar@redhat.com> |
| Message-Id: <9b32d5af0dd1d3bf7108abc426dc4d6ceeaa84f8.1579193220.git.jdenemar@redhat.com> |
| Reviewed-by: Ján Tomko <jtomko@redhat.com> |
| |
| src/qemu/qemu_process.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c |
| index 4195042194..a7bbab9e56 100644 |
| |
| |
| @@ -1653,6 +1653,7 @@ qemuProcessHandleMigrationStatus(qemuMonitorPtr mon G_GNUC_UNUSED, |
| virDomainObjBroadcast(vm); |
| |
| if (status == QEMU_MONITOR_MIGRATION_STATUS_POSTCOPY && |
| + priv->job.asyncJob == QEMU_ASYNC_JOB_MIGRATION_OUT && |
| virDomainObjGetState(vm, &reason) == VIR_DOMAIN_PAUSED && |
| reason == VIR_DOMAIN_PAUSED_MIGRATION) { |
| VIR_DEBUG("Correcting paused state reason for domain %s to %s", |
| -- |
| 2.25.0 |
| |