- qemu: Fix seamless SPICE migration

484cc321-fix-spice-migration.patch
  bnc#842301

OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=309
This commit is contained in:
James Fehlig 2013-10-15 03:27:06 +00:00 committed by Git OBS Bridge
parent 17e6200a6a
commit 2df984b272
3 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,31 @@
commit 484cc3217b73b865f00bf42a9c12187b37200699
Author: Martin Kletzander <mkletzan@redhat.com>
Date: Fri Sep 20 16:40:20 2013 +0200
qemu: Fix seamless SPICE migration
Since the wait is done during migration (still inside
QEMU_ASYNC_JOB_MIGRATION_OUT), the code should enter the monitor as such
in order to prohibit all other jobs from interfering in the meantime.
This patch fixes bug #1009886 in which qemuDomainGetBlockInfo was
waiting on the monitor condition and after GetSpiceMigrationStatus
mangled its internal data, the daemon crashed.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1009886
Index: libvirt-1.1.2/src/qemu/qemu_migration.c
===================================================================
--- libvirt-1.1.2.orig/src/qemu/qemu_migration.c
+++ libvirt-1.1.2/src/qemu/qemu_migration.c
@@ -1598,7 +1598,10 @@ qemuMigrationWaitForSpice(virQEMUDriverP
/* Poll every 50ms for progress & to allow cancellation */
struct timespec ts = { .tv_sec = 0, .tv_nsec = 50 * 1000 * 1000ull };
- qemuDomainObjEnterMonitor(driver, vm);
+ if (qemuDomainObjEnterMonitorAsync(driver, vm,
+ QEMU_ASYNC_JOB_MIGRATION_OUT) < 0)
+ return -1;
+
if (qemuMonitorGetSpiceMigrationStatus(priv->mon,
&spice_migrated) < 0) {
qemuDomainObjExitMonitor(driver, vm);

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Mon Oct 14 21:25:49 MDT 2013 - jfehlig@suse.com
- qemu: Fix seamless SPICE migration
484cc321-fix-spice-migration.patch
bnc#842301
-------------------------------------------------------------------
Mon Oct 14 20:33:43 MDT 2013 - jfehlig@suse.com

View File

@ -410,6 +410,7 @@ Patch3: e65667c0-CVE-2013-4311.patch
Patch4: 922b7fda-CVE-2013-4311.patch
Patch5: e4697b92-CVE-2013-4311.patch
Patch6: 8294aa0c-CVE-2013-4399.patch
Patch7: 484cc321-fix-spice-migration.patch
# Need to go upstream
Patch100: xen-name-for-devid.patch
Patch101: clone.patch
@ -915,6 +916,7 @@ of recent versions of Linux (and other OSes).
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch100 -p1
%patch101
%patch102 -p1