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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
debug: 0.972
device: 0.968
x86: 0.963
i386: 0.941
user-level: 0.920
architecture: 0.896
ppc: 0.889
graphic: 0.866
semantic: 0.853
mistranslation: 0.845
assembly: 0.844
performance: 0.799
peripherals: 0.781
kernel: 0.758
files: 0.736
register: 0.708
PID: 0.687
virtual: 0.665
permissions: 0.661
socket: 0.650
network: 0.625
vnc: 0.602
boot: 0.542
hypervisor: 0.540
arm: 0.523
VMM: 0.511
risc-v: 0.482
TCG: 0.355
KVM: 0.352
pulseaudio applications crash under linux-user-x86_64
Running a simple application that uses pulseaudio under qemu-i386 or qemu-x86_64 makes it crash (tested on Debian 8.0):
# apt-get install build-essential qemu-user libpulse-dev pulseaudio
$ cat > test.c << __EOF
#include <pulse/simple.h>
int main(void) {
pa_simple *s;
pa_sample_spec ss;
ss.format = PA_SAMPLE_S16NE;
ss.channels = 2;
ss.rate = 44100;
s = pa_simple_new(NULL, // Use the default server.
"Fooapp", // Our application's name.
PA_STREAM_PLAYBACK,
NULL, // Use the default device.
"Music", // Description of our stream.
&ss, // Our sample format.
NULL, // Use default channel map
NULL, // Use default buffering
// attributes.
NULL // Ignore error code.
);
int16_t buf[2 * 1000];
int i;
memset(buf, 0, sizeof buf);
for (i = 0; i < 44; i++) {
pa_simple_write(s, buf, sizeof buf, NULL);
}
pa_simple_free(s);
return 0;
}
__EOF
$ gcc test.c -o test -lpulse -lpulse-simple
$ ./test
<no output, no error>
$ qemu-x86_64 ./test
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault
$
I think this is related to the futex system call. In an attempt to debug the problem, I compiled pulseaudio in debug mode and it hit an assertion failure in pa_mutex_unlock.
Thank you for developing QEMU. :-)
The QEMU project is currently considering to move its bug tracking to another system. For this we need to know which bugs are still valid and which could be closed already. Thus we are setting older bugs to "Incomplete" now.
If you still think this bug report here is valid, then please switch the state back to "New" within the next 60 days, otherwise this report will be marked as "Expired". Or mark it as "Fix Released" if the problem has been solved with a newer version of QEMU already. Thank you and sorry for the inconvenience.
[Expired for QEMU because there has been no activity for 60 days.]
|