Bug 666266

Summary: outgoing qemu migrations block all other libvirt calls
Product: [Community] Virtualization Tools Reporter: Igor <igor47>
Component: libvirtAssignee: Libvirt Maintainers <libvirt-maint>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: low    
Version: unspecifiedCC: crobinso, eblake, xen-maint
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-04-19 23:40:23 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Igor 2010-12-29 22:50:42 UTC
Description of problem:
When a migration is running, libvirt becomes completely inaccessible, with all other calls blocking until the migration completes.

Version-Release number of selected component (if applicable):
Tested on 0.8.5 and 0.8.6, including the default built for Fedora 14 on Fedora 14

How reproducible:
Always


Steps to Reproduce:
1. Begin a migration of a qemu domain
2. Attempt any other libvirt action; 'virsh list' is an easy example
  
Actual results: 
The second command will stall until the migration is complete

Expected results:
The second command should return immediately with results

Additional info:

Comment 1 Igor 2011-03-24 09:51:59 UTC
I recently had a chance to come back to this problem, and I'm sorry to 
say that it hasn't gotten any better. I tested on debian sid with a 
stock install of kvm 0.14 and libvirt 0.8.8-3 -- i'm still completely
unable to interact with libvirt while an outgoing migration is in 
progress, although it seems as though actual migrations have gotten much
faster.

Comment 2 Eric Blake 2012-04-19 23:40:23 UTC
Should be better now, thanks to commits like these:

commit d58e91a812e254d1384370fe6f3c7b0b24cc952a
Author: Jiri Denemark <jdenemar>
Date:   Tue Jul 19 02:27:32 2011 +0200

    qemu: Migration job on source daemon
    
    Make MIGRATION_OUT use the new helper methods.
    
    This also introduces new protection to migration v3 process: the
    migration job is held from Begin to Confirm to avoid changes to a domain
    during migration (esp. between Begin and Perform phases). This change is
    automatically applied to p2p and tunneled migrations. For normal
    migration, this requires support from a client. In other words, if an
    old (pre 0.9.4) client starts normal migration of a domain, the domain
    will not be protected against changes between Begin and Perform steps.

If you can still reproduce the problem on 0.9.11, feel free to reopen this, but for now I'm going to close it.