File 484cc321-fix-spice-migration.patch of Package libvirt.openSUSE_13.1_Update

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);
openSUSE Build Service is sponsored by