Public bug reported: In short: 1) Get two Xenial hosts (instead, could be two lxd containers with QEMU inside or two VMs with nested virtualization enabled - doesn't matter); 1) Create a libvirt domain that uses QEMU (can be a bare instance, even without a disk, with a NIC without an IP address since we are testing L2 broadcasts); 2) Launch an instance; 3) Start listening for RARP packets on the destination host's bridge (QEMU uses a RARP L3 header and a broadcast L2 header which is easy to filter as no other software sends RARPs nowadays); 3) Do virsh migrate --live domain desturi; 4) Observe that no RARP packets are sent.
The expected result (QEMU actually sends 5 of those, grep for SELF_ANNOUNCE_ROUNDS == 5 in the sources): sudo tcpdump -e -i br0 rarp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes 18:19:32.460765 52:54:00:25:49:b7 (oui Unknown) > Broadcast, ethertype Reverse ARP (0x8035), length 60: Reverse Request who-is 52:54:00:25:49:b7 (oui Unknown) tell 52:54:00:25:49:b7 (oui Unknown), length 46 18:19:32.504609 52:54:00:25:49:b7 (oui Unknown) > Broadcast, ethertype Reverse ARP (0x8035), length 60: Reverse Request who-is 52:54:00:25:49:b7 (oui Unknown) tell 52:54:00:25:49:b7 (oui Unknown), length --- lsb_release -r Release: 16.04 dpkg --status qemu-kvm | grep Version Version: 1:2.5+dfsg-5ubuntu10.6 -- Fortunately, there is already a fix for this: https://lists.gnu.org/archive/html/qemu-devel/2016-07/msg04645.html http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ca1ee3d6b546e841a1b9db413eb8fa09f13a061b;hp=14e60aaece20a1cfc059a69f6491b0899f9257a8 The issue was introduced in fefe2a78abde932e0f340b21bded2c86def1d242: http://git.qemu.org/?p=qemu.git;a=commitdiff;h=fefe2a78abde932e0f340b21bded2c86def1d242 $ apt-get source qemu # we are looking at qemu_2.5+dfsg debian branch $ ls qemu*dsc qemu_2.5+dfsg-5ubuntu10.6.dsc $ git remote show origin | grep Fetch Fetch URL: git://anonscm.debian.org/pkg-qemu/qemu.git $ git checkout debian/qemu_2.5+dfsg-5 HEAD is now at aa4dbf2... Uploading version 2.5+dfsg-5 to unstable The commit that introduced the issue is present in qemu_2.5+dfsg-5. $ git merge-base --is-ancestor fefe2a78abde932e0f340b21bded2c86def1d242 HEAD ; echo $? 0 There are no patches for it: grep -RiP 'rarp' qemu-2.5+dfsg/debian/patches/ ; echo $? 1 ** Affects: qemu (Ubuntu) Importance: Undecided Status: New ** Tags: live-migration qemu ** Description changed: In short: 1) Get two Xenial hosts (instead, could be two lxd containers with QEMU inside or two VMs with nested virtualization enabled - doesn't matter); 1) Create a libvirt domain that uses QEMU (can be a bare instance, even without a disk, with a NIC without an IP address since we are testing L2 broadcasts); 2) Launch an instance; 3) Start listening for RARP packets on the destination host's bridge (QEMU uses a RARP L3 header and a broadcast L2 header which is easy to filter as no other software sends RARPs nowadays); 3) Do virsh migrate --live domain desturi; 4) Observe that no RARP packets are sent. - The expected result (QEMU actually sends of those, grep for + The expected result (QEMU actually sends 5 of those, grep for SELF_ANNOUNCE_ROUNDS == 5 in the sources): sudo tcpdump -e -i br0 rarp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes 18:19:32.460765 52:54:00:25:49:b7 (oui Unknown) > Broadcast, ethertype Reverse ARP (0x8035), length 60: Reverse Request who-is 52:54:00:25:49:b7 (oui Unknown) tell 52:54:00:25:49:b7 (oui Unknown), length 46 18:19:32.504609 52:54:00:25:49:b7 (oui Unknown) > Broadcast, ethertype Reverse ARP (0x8035), length 60: Reverse Request who-is 52:54:00:25:49:b7 (oui Unknown) tell 52:54:00:25:49:b7 (oui Unknown), length --- - lsb_release -r + lsb_release -r Release: 16.04 dpkg --status qemu-kvm | grep Version Version: 1:2.5+dfsg-5ubuntu10.6 -- Fortunately, there is already a fix for this: https://lists.gnu.org/archive/html/qemu-devel/2016-07/msg04645.html http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ca1ee3d6b546e841a1b9db413eb8fa09f13a061b;hp=14e60aaece20a1cfc059a69f6491b0899f9257a8 The issue was introduced in fefe2a78abde932e0f340b21bded2c86def1d242: http://git.qemu.org/?p=qemu.git;a=commitdiff;h=fefe2a78abde932e0f340b21bded2c86def1d242 - $ apt-get source qemu # we are looking at qemu_2.5+dfsg debian branch $ ls qemu*dsc qemu_2.5+dfsg-5ubuntu10.6.dsc $ git remote show origin | grep Fetch - Fetch URL: git://anonscm.debian.org/pkg-qemu/qemu.git + Fetch URL: git://anonscm.debian.org/pkg-qemu/qemu.git $ git checkout debian/qemu_2.5+dfsg-5 HEAD is now at aa4dbf2... Uploading version 2.5+dfsg-5 to unstable The commit that introduced the issue is present in qemu_2.5+dfsg-5. $ git merge-base --is-ancestor fefe2a78abde932e0f340b21bded2c86def1d242 HEAD ; echo $? 0 There are no patches for it: grep -RiP 'rarp' qemu-2.5+dfsg/debian/patches/ ; echo $? 1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1656480 Title: QEMU Does not Send L2 Broadcasts After Live Migration To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1656480/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
