Comment 0 for bug 1425619

Revision history for this message
Mathieu Gagné (mgagne) wrote :

This bug looks to be very similar to bug #1291321.

The source host runs 12.04 Precise with Ubuntu Cloud Archive. This means we have access to more recent QEMU packages.

The source host has QEMU 1.5 installed. (the package looks to be backported from 13.10 Saucy by UCA)
The destination host is running 14.04 Trusty with QEMU 2.0.

The machine type used by the instance I tried to live migrate is 'pc-i440fx-1.5'. (which looks to be the new default in QEMU 1.5)

When performing a live migration from QEMU 1.5 to QEMU 2.0, the migration fails with this error on the destination host:

Length mismatch: 0000:00:03.0/virtio-net-pci.rom: 20000 in != 40000
qemu: warning: error while loading state for instance 0x0 of device 'ram'

My hypothesis is that QEMU 1.5 was built against the qemu-kvm source tree. As mentionned in bug #1291321, the machine types defined in qemu-kvm are not compatible with the ones defined in qemu. This means the source 'pc-i440fx-1.5' mahine type is not compatible with the destination 'pc-i440fx-1.5' machine type.

A workaround has been introduced in QEMU 2.0 to allow incoming qemu-kvm instances (pc-1.0) to be properly translated to pc-1.0-precise) using the allow_incoming_qemukvm libvirt config.

But since the default machine type changed between QEMU 1.0 (pc-1.0) and 1.5 (pc-i440fx-1.5), the above workaround doesn't work for people running QEMU 1.5 introduced by UCA.

This means people with QEMU 1.5 on 12.04 Precise are stuck with instances they cannot migrate to a host running the latest LTS without destructive steps.