Bug 875770

Summary: libvirt: cancel migration is sent but migration continues
Product: Red Hat Enterprise Linux 6 Reporter: Chris Pelland <cpelland>
Component: libvirtAssignee: Michal Privoznik <mprivozn>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 6.3CC: acathrow, bazulay, dallan, dron, dyasny, dyuan, iheim, jdenemar, mjenner, mprivozn, mzhan, pm-eus, rwu, weizhan, zhpeng
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-0.9.10-21.el6_3.6 Doc Type: Bug Fix
Doc Text:
Cause: Libvirt allows users to cancel ongoing migration. Internally it was implemented by sending 'migrate_cancel' command to qemu. However, from libvirt POV migration has several phases. The first is begin, where the preparation work takes place (e.g. the connection to destination is established, the domain XML is sent to destination, ABI stability is checked, etc.). The very next phase is perform, where 'migrate' command is issued and libvirt waits for qemu to migrate. However, with bad timing it was possible to issue 'migrate_cancel' prior to 'migrate' command. Consequence: This inconvenience led to situation where migration wasn't cancelled even though user requested it. Fix: Correct fix was to check when translating to perform phase if user requested migration cancellation. That is, virDomainAbortJob() API not just issue 'migrate_cancel' but sets a flag as well. This flag is checked just before issuing 'migrate' command and may lead to not issuing the command at all (if user requested cancellation at prepare phase). Result: Migration can be cancelled at prepare phase as well.
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-11-22 09:40:28 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:
Bug Depends On: 873792    
Bug Blocks:    

Description Chris Pelland 2012-11-12 14:52:47 UTC
This bug has been copied from bug #873792 and has been proposed
to be backported to 6.3 z-stream (EUS).

Comment 6 weizhang 2012-11-14 12:17:57 UTC
Verify pass on

libvirt-0.9.10-21.el6_3.6.x86_64
qemu-kvm-0.12.1.2-2.323.el6.x86_64
kernel-2.6.32-329.el6.x86_64


# virsh migrate --live vr-rhel6u3-x86_64-kvm qemu+ssh://10.66.84.16/system --verbose & usleep 500000; virsh domjobabort vr-rhel6u3-x86_64-kvm

error: operation aborted: migration out: canceled by client

Comment 8 errata-xmlrpc 2012-11-22 09:40:28 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2012-1484.html