Bug 740533

Summary: Migration with --dname failed with error
Product: Red Hat Enterprise Linux 6 Reporter: weizhang <weizhan>
Component: libvirtAssignee: Jiri Denemark <jdenemar>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: high    
Version: 6.2CC: acathrow, dallan, dyuan, gren, mzhan, rwu
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-0.9.4-15.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 744237 (view as bug list) Environment:
Last Closed: 2011-12-06 11:33:32 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:    
Bug Blocks: 744237, 747120    

Description weizhang 2011-09-22 11:29:52 UTC
Description of problem:
migration with --dname will fail with error
# virsh migrate --live kvm-rhel6-x86_64 qemu+ssh://10.66.83.178/system --dname kvm-rhel6-x86_64-new
error: internal error Incoming cookie data had unexpected name kvm-rhel6-x86_64 vs kvm-rhel6-x86_64-new

And on target host, it has a transient domain which named kvm-rhel6-x86_64-new transient domain in shut off status.

it can succeed on rhel6.1 libvirt-0.8.7.18, so it is a regression bug

Version-Release number of selected component (if applicable):
kernel-2.6.32-197.el6.x86_64
qemu-kvm-0.12.1.2-2.192.el6.x86_64
libvirt-0.9.4-12.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Prepare 2 hosts and prepare a nfs which is mounted on both hosts, and setting the virt_use_nfs boolean on both sides
# setsebool virt_use_nfs 1
and close the iptable on both sides
# iptables -F

2. Do migration
# virsh migrate --live kvm-rhel6-x86_64 qemu+ssh://10.66.83.178/system --dname kvm-rhel6-x86_64-new


Actual results:
error:internal error Incoming cookie data had unexpected name kvm-rhel6-x86_64 vs kvm-rhel6-x86_64-new

Expected results:
succeed with no error

Additional info:

Comment 3 Jiri Denemark 2011-09-23 16:03:41 UTC
Oh, migration cookie handling was enhanced in a way that is incompatible with dname. We send domain name as part of migration cookie and check that the name matches when parsing the cookie. However, source libvirtd sends old name in the cookie and destination libvirtd expects to see the new name there because it is always taken from the domain object. Fixing this would require explicitly passing name of the domain to functions that handle migration cookies.

Comment 5 Jiri Denemark 2011-10-04 13:49:29 UTC
This is fixed upstream by

commit cdd5ef7b0776c5fa09a1b5bcb5d8adbc82b525bd
Author: Jiri Denemark <jdenemar>
Date:   Tue Oct 4 09:11:35 2011 +0200

    qemu: Fix migration with dname
    
    Destination libvirtd remembers the original name in the prepare phase
    and clears it in the finish phase. The original name is used when
    comparing domain name in migration cookie.

Comment 7 Jiri Denemark 2011-10-04 21:43:45 UTC
Patch sent for internal review: http://post-office.corp.redhat.com/archives/rhvirt-patches/2011-October/msg00149.html

Comment 10 weizhang 2011-10-08 08:52:48 UTC
verify pass on
libvirt-0.9.4-16.el6.x86_64
kernel-2.6.32-206.el6.x86_64
qemu-kvm-0.12.1.2-2.195.el6.x86_64

with --dname, there is no error on migration.

Comment 11 errata-xmlrpc 2011-12-06 11:33:32 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-2011-1513.html