summary refs log tree commit diff stats
path: root/results/classifier/108/network/1569988
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/108/network/1569988')
-rw-r--r--results/classifier/108/network/156998873
1 files changed, 73 insertions, 0 deletions
diff --git a/results/classifier/108/network/1569988 b/results/classifier/108/network/1569988
new file mode 100644
index 000000000..199a9fcbb
--- /dev/null
+++ b/results/classifier/108/network/1569988
@@ -0,0 +1,73 @@
+network: 0.930
+device: 0.926
+PID: 0.887
+other: 0.884
+vnc: 0.884
+graphic: 0.883
+socket: 0.861
+semantic: 0.852
+debug: 0.842
+permissions: 0.827
+performance: 0.795
+files: 0.765
+boot: 0.743
+KVM: 0.647
+
+[2.6] user network broken reaching foreign servers on Win64
+
+Both on master and, starting with 2016-03-22 builds from http://qemu.weilnetz.de/w64/, user mode network can't reach foreign servers. For example, wget http://mifritscher resolves the DNS, but then the message "network target couldn't be reached" occures. 2016-03-03 works fine. I suspect the IPv6 changes. My connection is IPv4 only.
+
+I tested via knoppix 7.6. The command line is
+
+qemu-system-x86_64.exe -m 512 -k de --cdrom c:\Users\michaelfritscher\Downloads\linux\KNOPPIX_V7.4.2DVD-2014-09-28-DE.iso -netdev user,id=mynet0,restrict=n -device e1000,netdev=mynet0
+
+Under Linux, it is working fine.
+
+Another thing: if I disable ipv6, ipv4 runs still in sort of a timeout before writing  Network is unreachable (ENETUNREACH), while ipv6 says this without delay (which is ok/good)
+
+
+It looks like this commit caused the regression:
+
+$ git bisect bad
+c619644067f98098dcdbc951e2dda79e97560afa is the first bad commit
+commit c619644067f98098dcdbc951e2dda79e97560afa
+Author: Daniel P. Berrange <email address hidden>
+Date:   Mon Mar 7 11:19:18 2016 +0000
+
+    osdep: fix socket_error() to work with Mingw64
+
+
+Here is a patch which fixes the problem.
+
+diff --git a/slirp/tcp_input.c b/slirp/tcp_input.c
+index 2027a75..696867f 100644
+--- a/slirp/tcp_input.c
++++ b/slirp/tcp_input.c
+@@ -587,7 +587,7 @@ findso:
+ 
+          if ((tcp_fconnect(so, so->so_ffamily) == -1) &&
+ #if defined(_WIN32)
+-              socket_error() != WSAEWOULDBLOCK
++              socket_error() != EAGAIN
+ #else
+               (errno != EINPROGRESS) && (errno != EWOULDBLOCK)
+ #endif
+
+
+Latest QEMU needs a slightly different patch:
+
+diff --git a/slirp/tcp_input.c b/slirp/tcp_input.c
+index 5433e7f..3be2d2f 100644
+--- a/slirp/tcp_input.c
++++ b/slirp/tcp_input.c
+@@ -659,6 +659,7 @@ findso:
+          }
+ 
+          if ((tcp_fconnect(so, so->so_ffamily) == -1) &&
++              socket_error() != EAGAIN &&
+               (errno != EINPROGRESS) && (errno != EWOULDBLOCK)
+           ) {
+            uint8_t code;
+
+Fixed since v2.6.0-rc3 release.
+