[libvirt-users] Help? Running into problems with migrateToURI2() and virDomainDefCheckABIStability()

Cole Robinson crobinso at redhat.com
Tue Feb 11 22:45:19 UTC 2014


On 02/10/2014 06:46 PM, Chris Friesen wrote:
> Hi,
> 
> We've run into a problem with libvirt 1.1.2 and are looking for some comments
> on whether this is a bug or design intent.
> 
> We're trying to use migrateToURI() but we're using a few things (numatune,
> vcpu mask, etc.) that may need adjustment during the migration.  We found that
> migrateToURI2() mostly works if we use XML created by copying the domain XML
> from the running instance and modifying the appropriate sections.
> 
> The problem that we're seeing is that the serial console checking in
> libvirt/src/conf/domain_conf.c::virDomainDefCheckABIStability() is failing
> even though we haven't touched the serial console XML:
> 
> 2014-02-10 19:41:07.196 1264 ERROR nova.virt.libvirt.driver [-] [instance:
> 42a841a8-034f-4565-937e-adb396a2ec48] Live Migration failure: unsupported
> configuration: Target domain console count 1 does not match source 0
> 
> 
> On occasion it passes if the devices/serial/source element happens to be the
> same after migration, but this seems to be a fluke.
> 
> If we remove the devices/serial/source element in the XML it seems to make the
> serial console check work on the first migration, but upon doing subsequent
> migration it fails with a console count error:
> 
> 2014-02-07 16:11:32.459 28759 ERROR nova.virt.libvirt.driver [-] [instance:
> 1d7c470d-4337-450a-8a40-d0fb375ca2c1] Live Migration failure: unsupported
> configuration: Target domain console count 0 does not match source 1
> 
> Are we doing something wrong?  Is there an issue with the console check code? 
> Is there a better way to do what we're trying to do?
> 
> Any help would be appreciated...
> 

I think we will have to see the XML your passing before and after edit to
figure out what's going wrong. Also, showing all the arguments you are
invoking the migration APIs with.

This could have to do with some back compatible stuff we do with <console>
handling: basically, <console type='pty'/> implies <serial type='pty'/> and
vice versa. So if one is available in the XML, libvirt will force add another.
If you clear out the <serial> bit, then pass that to libvirt, it will just
fill it in with the matching console details. So you might need to remove
<serial> and the matching <console> piece.

- Cole




More information about the libvirt-users mailing list