Re: [libvirt] [PATCH] qemu: Fix migration with dname
On 10/05/2011 02:29 AM, Jiri Denemark wrote: Quick questions (from a latecomer to the thread): what happens if I use both the @dname and @dxml arguments? Are we properly requiring that the new name in both arguments match, and rejecting the migration as impossible otherwise (since you can't request two different names), or are we having one of the two names take priority over the other? These are actually very good questions :-) If dname is provided, it overrides the name from XML (no matter if that's from GetXMLDesc or dxml). Sounds like that is worth documenting. Also, if @dname is NULL but @dxml is provided, I think that we currently refuse migration to a server that only understands v2 migration (since only v3 can take @dxml). Can @dxml in isolation be used to change the name, without the use of @dname? However, if dname is not provided by dxml is and it contains domain name which is different, the destination libvirtd will have the name from dxml while source libvirtd will use the original name and migration will not work if those names do not match. But we don't currently have an explicit check for dxml name. I'm thinking about requiring the name to match either original name or dname (if set). Yeah, after more thought, I think the following semantics are worth enforcing: no dname or dxml - remote name is unchanged dname but no dxml - remote name becomes dname dname present, dxml with no name change - valid, remote uses dname dname present, dxml with name change - dxml MUST match dname dxml with no name change, no dname - remote name is unchanged dxml with name change, no dname - remote name changes to dxml (*) (*) if we can't easily change destination name using just dxml, then we could change this case to instead be an error, on the grounds that only dname can change the remote name (but once dname is present to change the name, then dxml can match either source or dname) -- Eric Blake ebl...@redhat.com+1-801-349-2682 Libvirt virtualization library http://libvirt.org -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] qemu: Fix migration with dname
On Tue, Oct 04, 2011 at 08:48:48 -0600, Eric Blake wrote: > On 10/04/2011 07:48 AM, Jiri Denemark wrote: > >>> > >>> IIUC, you are trying to fix this, by making sure that the 'Finish' > >>> method encodes the original name in the cookie, not the new name ? > >> > >> Yes, although the complete picture is that incoming (from the POV of > >> destination libvirtd) cookie is checked against the original name instead > >> of > >> the new one and cookies generated by destination libvirtd contain the > >> original > >> name. It applies to Prepare as well as Finish. > >> > >>> ACK, if my two questions here are correct > >> > >> Mostly correct so I take it as ACK :-) > > Quick questions (from a latecomer to the thread): what happens if I use > both the @dname and @dxml arguments? Are we properly requiring that the > new name in both arguments match, and rejecting the migration as > impossible otherwise (since you can't request two different names), or > are we having one of the two names take priority over the other? These are actually very good questions :-) If dname is provided, it overrides the name from XML (no matter if that's from GetXMLDesc or dxml). > Also, if @dname is NULL but @dxml is provided, I think that we currently > refuse migration to a server that only understands v2 migration (since > only v3 can take @dxml). Can @dxml in isolation be used to change the > name, without the use of @dname? However, if dname is not provided by dxml is and it contains domain name which is different, the destination libvirtd will have the name from dxml while source libvirtd will use the original name and migration will not work if those names do not match. But we don't currently have an explicit check for dxml name. I'm thinking about requiring the name to match either original name or dname (if set). Jirka -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] qemu: Fix migration with dname
On 10/04/2011 07:48 AM, Jiri Denemark wrote: IIUC, you are trying to fix this, by making sure that the 'Finish' method encodes the original name in the cookie, not the new name ? Yes, although the complete picture is that incoming (from the POV of destination libvirtd) cookie is checked against the original name instead of the new one and cookies generated by destination libvirtd contain the original name. It applies to Prepare as well as Finish. ACK, if my two questions here are correct Mostly correct so I take it as ACK :-) Quick questions (from a latecomer to the thread): what happens if I use both the @dname and @dxml arguments? Are we properly requiring that the new name in both arguments match, and rejecting the migration as impossible otherwise (since you can't request two different names), or are we having one of the two names take priority over the other? Also, if @dname is NULL but @dxml is provided, I think that we currently refuse migration to a server that only understands v2 migration (since only v3 can take @dxml). Can @dxml in isolation be used to change the name, without the use of @dname? -- Eric Blake ebl...@redhat.com+1-801-349-2682 Libvirt virtualization library http://libvirt.org -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] qemu: Fix migration with dname
On Tue, Oct 04, 2011 at 15:16:28 +0200, Jiri Denemark wrote: > On Tue, Oct 04, 2011 at 14:03:34 +0100, Daniel P. Berrange wrote: > > On Tue, Oct 04, 2011 at 12:06:10PM +0200, Jiri Denemark wrote: > > > 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. > > > > What is the actual error we get ? Is it that the 'Confirm' method > > raises an error "Incoming cookie data had unexpected name" ? > > It's actually the Prepare method that fails but the error is the same > (obviously since it comes from EatCookie). > > > > Notes: > > > Originally, I wanted to transfer the new name in migration cookie but > > > that appeared to be much more complicated and it would require adding > > > new Confirm API since the current version does not have 'dname' > > > parameter. > > > > IIUC, you are trying to fix this, by making sure that the 'Finish' > > method encodes the original name in the cookie, not the new name ? > > Yes, although the complete picture is that incoming (from the POV of > destination libvirtd) cookie is checked against the original name instead of > the new one and cookies generated by destination libvirtd contain the original > name. It applies to Prepare as well as Finish. > > > ACK, if my two questions here are correct > > Mostly correct so I take it as ACK :-) So I pushed this, thanks. Jirka -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] qemu: Fix migration with dname
On Tue, Oct 04, 2011 at 14:03:34 +0100, Daniel P. Berrange wrote: > On Tue, Oct 04, 2011 at 12:06:10PM +0200, Jiri Denemark wrote: > > 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. > > What is the actual error we get ? Is it that the 'Confirm' method > raises an error "Incoming cookie data had unexpected name" ? It's actually the Prepare method that fails but the error is the same (obviously since it comes from EatCookie). > > Notes: > > Originally, I wanted to transfer the new name in migration cookie but > > that appeared to be much more complicated and it would require adding > > new Confirm API since the current version does not have 'dname' > > parameter. > > IIUC, you are trying to fix this, by making sure that the 'Finish' > method encodes the original name in the cookie, not the new name ? Yes, although the complete picture is that incoming (from the POV of destination libvirtd) cookie is checked against the original name instead of the new one and cookies generated by destination libvirtd contain the original name. It applies to Prepare as well as Finish. > ACK, if my two questions here are correct Mostly correct so I take it as ACK :-) Jirka -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] qemu: Fix migration with dname
On Tue, Oct 04, 2011 at 12:06:10PM +0200, Jiri Denemark wrote: > 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. What is the actual error we get ? Is it that the 'Confirm' method raises an error "Incoming cookie data had unexpected name" ? > --- > Notes: > Originally, I wanted to transfer the new name in migration cookie but > that appeared to be much more complicated and it would require adding > new Confirm API since the current version does not have 'dname' > parameter. IIUC, you are trying to fix this, by making sure that the 'Finish' method encodes the original name in the cookie, not the new name ? ACK, if my two questions here are correct Daniel -- |: http://berrange.com -o-http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list