|
|
7a3408 |
From 8aa9a7056bc7d9510819b67a7a082ad661d9dc99 Mon Sep 17 00:00:00 2001
|
|
|
7a3408 |
Message-Id: <8aa9a7056bc7d9510819b67a7a082ad661d9dc99@dist-git>
|
|
|
7a3408 |
From: Michal Privoznik <mprivozn@redhat.com>
|
|
|
7a3408 |
Date: Mon, 13 Jul 2015 15:26:04 +0200
|
|
|
7a3408 |
Subject: [PATCH] qemuProcessHandleMigrationStatus: Update migration status
|
|
|
7a3408 |
more frequently
|
|
|
7a3408 |
|
|
|
7a3408 |
https://bugzilla.redhat.com/show_bug.cgi?id=1212077
|
|
|
7a3408 |
|
|
|
7a3408 |
After Jirka's migration patches libvirt is listening on migration
|
|
|
7a3408 |
events from qemu instead of actively polling on the monitor. There is,
|
|
|
7a3408 |
however, a little regression (introduced in 6d2edb6a42d0d41). The
|
|
|
7a3408 |
problem is, the current status of migration job is updated in
|
|
|
7a3408 |
qemuProcessHandleMigrationStatus if and only if migration job was
|
|
|
7a3408 |
started. But eventually every asynchronous job may result in
|
|
|
7a3408 |
migration. Therefore, since this job is not strictly a
|
|
|
7a3408 |
migration job, internal state was not updated and later checks failed:
|
|
|
7a3408 |
|
|
|
7a3408 |
virsh # save fedora22 /tmp/fedora22_ble.save
|
|
|
7a3408 |
error: Failed to save domain fedora22 to /tmp/fedora22_ble.save
|
|
|
7a3408 |
error: operation failed: domain save job: is not active
|
|
|
7a3408 |
|
|
|
7a3408 |
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
|
7a3408 |
(cherry picked from commit 45cc2fca5c97d7e6d6e00389c6f459b5660d0f1f)
|
|
|
7a3408 |
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
|
7a3408 |
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
7a3408 |
---
|
|
|
7a3408 |
src/qemu/qemu_process.c | 3 +--
|
|
|
7a3408 |
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
|
7a3408 |
|
|
|
7a3408 |
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
|
|
|
7a3408 |
index 91ff5f8..e05be54 100644
|
|
|
7a3408 |
--- a/src/qemu/qemu_process.c
|
|
|
7a3408 |
+++ b/src/qemu/qemu_process.c
|
|
|
7a3408 |
@@ -1532,8 +1532,7 @@ qemuProcessHandleMigrationStatus(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|
|
7a3408 |
qemuMonitorMigrationStatusTypeToString(status));
|
|
|
7a3408 |
|
|
|
7a3408 |
priv = vm->privateData;
|
|
|
7a3408 |
- if (priv->job.asyncJob != QEMU_ASYNC_JOB_MIGRATION_OUT &&
|
|
|
7a3408 |
- priv->job.asyncJob != QEMU_ASYNC_JOB_MIGRATION_IN) {
|
|
|
7a3408 |
+ if (priv->job.asyncJob == QEMU_ASYNC_JOB_NONE) {
|
|
|
7a3408 |
VIR_DEBUG("got MIGRATION event without a migration job");
|
|
|
7a3408 |
goto cleanup;
|
|
|
7a3408 |
}
|
|
|
7a3408 |
--
|
|
|
7a3408 |
2.5.0
|
|
|
7a3408 |
|