KVM migration fails when tunnelled due to parsing error in qemu monitor
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libvirt (Ubuntu) |
Fix Released
|
High
|
Serge Hallyn | ||
Lucid |
Fix Released
|
Medium
|
Serge Hallyn |
Bug Description
While attempting a live migration tunnelled like this :
virsh migrate --live --tunnelled --p2p guest1 qemu+ssh:
the source host (node1) logs this error :
Oct 6 17:44:06 node2 libvirtd: 17:44:06.513: error : qemuMonitorText
And the guest VM freezes and start consuming 100% CPU infinitely.
=======
SRU Justification:
1. Impact: tunnelled migration fails
2. Development fix: consists of a patch which fixes the parsing of the 'info migration' reply.
3. Stable Fix: a simple cherrypick of the development fix
4. Test case:
1. Set up two hosts with libvirt-bin.
2. Work around bug 869553. You can do this by simply turning off apparmor on both.
3. Have them share storage (I install nfs-kernel-server on one, nfs-client on the other, place /mnt on the server's /etc/exports, and mount it on the client)
4. Create a VM with disks on the shared storage. I basically follow https:/
5. Create a ssh key for root on the client; place it in root's .ssh/authorized
6. start the VM on the client
7. Migrate using:
virsh migrate --live --tunnelled --p2p cdboot qemu+ssh:
8. With the patch, the vm should now be running on the server and not the client.
5. Regression potential: this patch only affects the migration code, so if there is a regression it should only affect users of (non-tunnelled, as tunnelled is broken anyway) migration.
=======
Related branches
description: | updated |
When looking at the upstream git I found that Daniel P. Berrange had already fixed that in commit 0d3eee7fe8bcaa49. I have extract only the portion of this commit that touches src/qemu/ qemu_monitor_ text.c and created a debdiff with it.