render / rpms / libvirt

Forked from rpms/libvirt 9 months ago
Clone
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