Bug 873792 - libvirt: cancel migration is sent but migration continues
libvirt: cancel migration is sent but migration continues
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libvirt (Show other bugs)
6.3
x86_64 Linux
high Severity high
: rc
: ---
Assigned To: Michal Privoznik
Virtualization Bugs
infra
: ZStream
Depends On: 728904
Blocks: 867347 875770
  Show dependency treegraph
 
Reported: 2012-11-06 12:39 EST by Dafna Ron
Modified: 2013-02-21 02:26 EST (History)
13 users (show)

See Also:
Fixed In Version: libvirt-0.10.2-8.el6
Doc Type: Bug Fix
Doc Text:
Libvirt allows users to cancel an ongoing migration. Previously, if an attempt to cancel the migration was made in the migration preparation phase, qemu missed the request and the migration was not canceled. With this update, the virDomainAbortJob() function sets a flag when a cancel request is made and this flag is checked before the main phase of the migration starts. As a result, a migration can now be properly canceled even in the preparation phase.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-02-21 02:26:00 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
logs (1.37 MB, application/x-gzip)
2012-11-06 12:39 EST, Dafna Ron
no flags Details

  None (edit)
Description Dafna Ron 2012-11-06 12:39:29 EST
Created attachment 639477 [details]
logs

Description of problem:

I cancelled migration of a vm right after it started and migration continued.
Michal looked at the logs and determined that vdsm isued 'migrate_cancel' before libvirt gets to 'migrate' 

Version-Release number of selected component (if applicable):

vdsm-4.9.6-41.0.el6_3.x86_64
libvirt-0.9.10-21.el6_3.5.x86_64
qemu-kvm-rhev-0.12.1.2-2.295.el6_3.5.x86_64

How reproducible:

100%

Steps to Reproduce:
1. migrate a vm from one host to a second host 
2. cancel migration right at the beginning of the migration
3.
  
Actual results:

migration continues

Expected results:

migration should be cancelled. 

Additional info: logs
Comment 1 Michal Privoznik 2012-11-06 12:47:04 EST
This is race. The first thread (the one that starts migration) sets job and is preparing to issue monitor commands to qemu. However, meanwhile second thread jumps in and since the job is already set, it cancels the job, issue 'migrate_cancel' and quit. Right after the first thread finished preparation and starts the migration (executes 'migrate' on the monitor).
Comment 2 Jiri Denemark 2012-11-06 13:21:53 EST
This is also tracked upstream in bug 728904.
Comment 3 Michal Privoznik 2012-11-07 06:04:23 EST
Patch proposed upstream:

https://www.redhat.com/archives/libvir-list/2012-November/msg00356.html
Comment 4 weizhang 2012-11-08 01:13:41 EST
I can reproduce with
# virsh migrate --live vr-rhel6u3-x86_64-kvm qemu+ssh://10.66.84.16/system --verbose & usleep 700000; virsh domjobabort vr-rhel6u3-x86_64-kvm; echo "$?"

domjobabort return 0 but migration continued

version
libvirt-0.10.2-7.el6.x86_64
qemu-kvm-0.12.1.2-2.323.el6.x86_64
kernel-2.6.32-329.el6.x86_64
Comment 8 weizhang 2012-11-14 07:19:24 EST
Verify pass on

libvirt-0.10.2-8.el6.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 9 errata-xmlrpc 2013-02-21 02:26:00 EST
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/RHSA-2013-0276.html

Note You need to log in before you can comment on or make changes to this bug.