summary refs log tree commit diff stats
path: root/results/classifier/118/review/1643619
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/review/1643619')
-rw-r--r--results/classifier/118/review/1643619114
1 files changed, 114 insertions, 0 deletions
diff --git a/results/classifier/118/review/1643619 b/results/classifier/118/review/1643619
new file mode 100644
index 000000000..0d37ec8b3
--- /dev/null
+++ b/results/classifier/118/review/1643619
@@ -0,0 +1,114 @@
+user-level: 0.920
+risc-v: 0.859
+debug: 0.827
+register: 0.812
+socket: 0.784
+performance: 0.783
+architecture: 0.777
+device: 0.776
+network: 0.775
+graphic: 0.773
+semantic: 0.762
+permissions: 0.762
+virtual: 0.762
+arm: 0.749
+PID: 0.747
+ppc: 0.747
+assembly: 0.740
+peripherals: 0.737
+boot: 0.706
+kernel: 0.706
+mistranslation: 0.680
+vnc: 0.668
+files: 0.662
+i386: 0.641
+hypervisor: 0.582
+KVM: 0.568
+x86: 0.533
+VMM: 0.524
+TCG: 0.494
+--------------------
+network: 0.990
+socket: 0.967
+debug: 0.944
+PID: 0.864
+kernel: 0.795
+virtual: 0.201
+user-level: 0.015
+TCG: 0.014
+assembly: 0.013
+files: 0.013
+hypervisor: 0.008
+x86: 0.006
+architecture: 0.004
+device: 0.003
+semantic: 0.002
+performance: 0.002
+register: 0.002
+boot: 0.001
+ppc: 0.001
+graphic: 0.001
+risc-v: 0.001
+peripherals: 0.001
+VMM: 0.001
+i386: 0.000
+mistranslation: 0.000
+permissions: 0.000
+vnc: 0.000
+arm: 0.000
+KVM: 0.000
+
+netlink broken on big-endian mips
+
+Debian QEMU version 2.7.0, but the bug also appears in current git master (commit c36ed06e9159)
+
+As the summary says, netlink is completely broken on big-endian mips running qemu-user.
+
+Running 'ip route' from within a Debian chroot with QEMU simply hangs. Running amd64 strace on qemu-mips-static shows that it's waiting for a netlink response from the kernel which never comes.
+
+[...]
+[pid 11249] socket(AF_NETLINK, SOCK_RAW|SOCK_CLOEXEC, NETLINK_ROUTE) = 3
+[pid 11249] setsockopt(3, SOL_SOCKET, SO_SNDBUF, [32768], 4) = 0
+[pid 11249] setsockopt(3, SOL_SOCKET, SO_RCVBUF, [1048576], 4) = 0
+[pid 11249] bind(3, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, 12) = 0
+[pid 11249] getsockname(3, {sa_family=AF_NETLINK, nl_pid=11249, nl_groups=00000000}, [12]) = 0
+[pid 11249] time([1479745823])          = 1479745823
+[pid 11249] sendto(3, {{len=671088640, type=0x1a00 /* NLMSG_??? */, flags=NLM_F_REQUEST|NLM_F_MULTI|0x100, seq=539046744, pid=0}, "\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\35\0\0\0\1"}, 40, 0, NULL, 0) = 40
+[pid 11249] recvmsg(3,
+
+Notice the len in the buffer passed to the kernel is 0x28000000 which looks byteswapped.
+
+Removing the call to fd_trans_unregister in the NR_socket syscall in do_syscall fixes this for me, but I don't understand why the fd translation was immediately unregistered after being registered just before in do_socket - presumably it was added for a reason.
+
+--- a/linux-user/syscall.c
++++ b/linux-user/syscall.c
+@@ -9331,7 +9331,6 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
+ #ifdef TARGET_NR_socket
+     case TARGET_NR_socket:
+         ret = do_socket(arg1, arg2, arg3);
+-        fd_trans_unregister(ret);
+         break;
+ #endif
+ #ifdef TARGET_NR_socketpair
+
+I also notice fd_trans_unregister does not appear in the socketcall implementation which seems like an oversight.
+
+Same here. While running qemu-debootstrap using Debian qemu 2.7, debootstrap hangs on groupadd calls. Reproduction on amd64 host, running jessie, on a failed qemu-debootstrap but sufficiently working jessie mips chroot. See attached strace of groupadd. Problem reproduces with compiled qemu from git master, commit 00227fefd2059464cd2f59aed29944874c630e2f.
+
+...
+[pid 31008] socket(PF_NETLINK, SOCK_RAW, NETLINK_AUDIT) = 3
+[pid 31008] fcntl(3, F_SETFD, FD_CLOEXEC) = 0
+...
+[pid 31008] sendto(3, "\0\0\0x\4\\\0\5\0\0\0\1\0\0\0\0op=adding group "..., 120, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 120
+[pid 31008] ppoll([{fd=3, events=POLLIN}], 1, {0, 500000000}, NULL, 0) = 0 (Timeout)
+[pid 31008] recvfrom(3, 0x7facef9e1504, 8988, 66, 0x7fff0138c9b0, 0x7fff0138c9f4) = -1 EAGAIN (Resource temporarily unavailable)
+[pid 31008] ppoll([{fd=3, events=POLLIN}], 1, {0, 500000000}, NULL, 0) = 0 (Timeout)
+[pid 31008] recvfrom(3, 0x7facef9e1504, 8988, 66, 0x7fff0138c9b0, 0x7fff0138c9f4) = -1 EAGAIN (Resource temporarily unavailable)
+...etc ... etc...
+
+Strace jessie mips groupadd.
+
+Patch applied by James works for me as well. Dropping a qemu-user static binary from Debian qemu 2.1 into the mips chroot can also be used as workaround.
+
+This has been fixed by 40493c5f2b0f124c9b2581e539bba14522e51269, which is exactly the same diff as given here.
+