blob: 6a3b363fec37f289f3aa26e74e0d5327942732d5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
ioctl SIOCGIFCONF causes qemu-aarch64-static to crash with "received signal outside vCPU context"
To reproduce it, compile the attached crash.c under aarch64 to a.out and execute on x86_64
qemu-aarch64-static ./a.out
It will print the following and crash:
socket=3
qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x60038cd6
qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x6000157a
The version of qemu-aarch64-static is
qemu-aarch64 version 3.0.0 (qemu-3.0.0-1.fc29)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
But it did also happen in previous versions so it is not a regression but a bug existed ever since.
I was hit by this issue when I tried to run some Java program. And it turns out jdk sets the buf to NULL: http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/887e525597f8/src/solaris/native/java/net/NetworkInterface.c#l1042
Setting to NULL is valid according to http://man7.org/linux/man-pages/man7/netdevice.7.html
But qemu doesn’t handle the case: https://github.com/qemu/qemu/blob/aa8e26de9617756febcbf794dda965df307fdaaa/linux-user/syscall.c#L4105
I guess qemu developers didn’t handle the case because the Linux kernel changed and they were based on behavior of old version: https://linux.die.net/man/7/netdevice
Please add the support for it otherwise a wide range of network related Java programs won’t run.
I sent out a patch: http://lists.nongnu.org/archive/html/qemu-devel/2018-10/msg01657.html
(Please ignore the other 2 identical patches. It was my first time sending out patches and I didn't know it was moderated so I sent it out multiple times).
I have patch at http://lists.nongnu.org/archive/html/qemu-devel/2018-10/msg05401.html, please let me know when it can be merged, thanks.
Kan Li's patch was applied to master as commit 22e4a267a6627e5b5b, so this will be fixed in the upcoming QEMU 4.0 release.
|