File 93b15ba0-qemu-fix-hang-in-p2p-xbzrle-compression-parallel-mig.patch of Package libvirt.22291

commit 93b15ba0f2eb7858f8d88a5fd7354bd48bb7fc8d
Author: Lin Ma <lma@suse.com>
Date:   Thu Apr 16 12:44:51 2020 +0800

    qemu: fix hang in p2p + xbzrle compression + parallel migration
    
    When we do parallel migration, The multifd-channels migration parameter
    needs to be set on the destination side as well before incoming migration
    URI, unless we accept the default number of connections(2).
    
    Usually, This can be correctly handled by libvirtd. But in this case if
    we use p2p + xbzrle compression without parameter '--comp-xbzrle-cache',
    qemuMigrationParamsDump returns too early, The corresponding migration
    parameter will not be set on the destination side, It results QEMU hangs.
    
    Reproducer:
    virsh migrate --live --p2p --comp-methods xbzrle \
    --parallel --parallel-connections 3 GUEST qemu+ssh://dsthost/system
    
    or
    
    virsh migrate --live --p2p --compressed \
    --parallel --parallel-connections 3 GUEST qemu+ssh://dsthost/system
    
    Signed-off-by: Lin Ma <lma@suse.com>
    Message-Id: <20200416044451.21134-1-lma@suse.com>
    Reviewed-by: Jiri Denemark <jdenemar@redhat.com>

Index: libvirt-6.0.0/src/qemu/qemu_migration_params.c
===================================================================
--- libvirt-6.0.0.orig/src/qemu/qemu_migration_params.c
+++ libvirt-6.0.0/src/qemu/qemu_migration_params.c
@@ -630,7 +630,6 @@ qemuMigrationParamsDump(qemuMigrationPar
     if (migParams->compMethods == 1ULL << QEMU_MIGRATION_COMPRESS_XBZRLE &&
         !migParams->params[QEMU_MIGRATION_PARAM_XBZRLE_CACHE_SIZE].set) {
         *flags |= VIR_MIGRATE_COMPRESSED;
-        return 0;
     }
 
     for (i = 0; i < QEMU_MIGRATION_COMPRESS_LAST; ++i) {
openSUSE Build Service is sponsored by