-net socket,connect/listen does not work in 2.7.0

Bug #1640525 reported by Pierre Labastie
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

Using 2.7.0 release on Debian Sid. What I did: start one VM with:
----
/home/pierre/build/qemu/build/x86_64-softmmu/qemu-system-x86_64 \
-smp 4 \
-cpu Nehalem \
-soundhw ac97 \
-k fr \
-localtime \
-enable-kvm \
-m 4099 \
-drive file=/mnt/virtualMachines/qemu/lfs-7.10-porg.qcow2,cache=writeback \
-cdrom /mnt/virtualMachines/qemu/grub-img.iso \
-boot order=c,once=d,menu=on \
-vga std \
-serial mon:stdio \
-net nic,vlan=0,model=e1000,macaddr=52:54:00:12:34:58 \
-net user,vlan=0,hostfwd=tcp::2223-10.0.2.9:22 \
-net nic,vlan=1,model=e1000,macaddr=52:54:00:12:34:56 \
-net socket,vlan=1,listen=:4321
----
Start another one with:
----
/home/pierre/build/qemu/build/x86_64-softmmu/qemu-system-x86_64 \
-smp 4 \
-cpu Nehalem \
-soundhw ac97 \
-k fr \
-localtime \
-enable-kvm \
-m 4099 \
-drive file=/mnt/virtualMachines/qemu/lfs-7.10-october.qcow2,cache=writeback \
-cdrom /mnt/virtualMachines/qemu/grub-img.iso \
-boot order=c \
-serial mon:stdio \
-vga std \
-net nic,vlan=0,model=e1000,macaddr=52:54:00:12:34:57 \
-net socket,vlan=0,connect=localhost:4321
----
The network settings of the first machine are:
----
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 52:54:00:12:34:58 brd ff:ff:ff:ff:ff:ff
3: enp0s4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.9/24 brd 10.0.2.255 scope global br0
       valid_lft forever preferred_lft forever
----
The network settings on the second machine are:
----
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:12:34:57 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.10/24 brd 10.0.2.255 scope global enp0s3
       valid_lft forever preferred_lft forever
----
typing "ping -c 1 10.0.2.10" on the first machine returns:
----
PING 10.0.2.10 (10.0.2.10): 56 data bytes
92 bytes from virtuallfs (10.0.2.9): Destination Host Unreachable
--- 10.0.2.10 ping statistics ---
1 packets transmitted, 0 packets received, 100% packet loss
----
and something similar when typing "ping -c 1 10.0.2.9" on the second machine.

This very same setting works as expected in version 2.6.0. I could bisect, and the offending commit is 16a3df403b1:
----
commit 16a3df403b10c4ac347159e39005fd520b2648bb
Author: Zhang Chen <email address hidden>
Date: Fri May 13 15:35:19 2016 +0800

    net/net: Add SocketReadState for reuse codes

    This function is from net/socket.c, move it to net.c and net.h.
    Add SocketReadState to make others reuse net_fill_rstate().
    suggestion from jason.

    v4:
     - move 'rs->finalize = finalize' to rs_init()

    v3:
     - remove SocketReadState init callback
     - put finalize callback to net_fill_rstate()

    v2:
     - rename ReadState to SocketReadState
     - add SocketReadState init and finalize callback

    v1:
     - init patch

    Signed-off-by: Zhang Chen <email address hidden>
    Signed-off-by: Li Zhijian <email address hidden>
    Signed-off-by: Wen Congyang <email address hidden>
    Signed-off-by: Jason Wang <email address hidden>
----

BTW, the systems on both VM are built from http://www.linuxfromscratch.org. But I do not think this is important, since I could do the bisect. Of course, I'll be happy to try other VMs, if you point me to some.

Revision history for this message
Daniel Berrange (berrange) wrote :
Revision history for this message
Thomas Huth (th-huth) wrote :
Changed in qemu:
status: New → Fix Committed
Revision history for this message
Pierre Labastie (pierre.labastie) wrote :

Great. Thanks to you both.

Revision history for this message
Thomas Huth (th-huth) wrote :

Fix has been released with QEMU v2.8

Changed in qemu:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.