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
89
90
91
92
93
|
graphic: 0.965
assembly: 0.964
semantic: 0.960
instruction: 0.959
vnc: 0.959
device: 0.956
other: 0.954
socket: 0.945
boot: 0.938
network: 0.930
KVM: 0.924
mistranslation: 0.899
Segfault in audio_pcm_sw_write with audio over VNC
QEMU 5.0.0, built with ./configure --target-list=x86_64-softmmu --enable-debug --disable-strip --disable-docs --disable-sdl
Running on a headless host (Ryzen 3600), Arch Linux, 64bit latest.
Guest is also Arch Linux, 64bit.
Started with qemu-system-x86_64 -vnc 0.0.0.0:0 -enable-kvm -m 4096 -cpu host -smp cores=2,threads=1,sockets=1 -machine q35 -vga std -device
ich9-ahci,id=ahci -drive file=vm0.qcow2,format=qcow2,if=none,id=dsk0 -device ide-hd,drive=dsk0,bus=ahci.0 -soundhw hda
So, a headless VM is running on a server and is being connected to over VNC. The virtual sound card is detected and speaker test is running inside the VM. So far so good.
Then, i tell the VNC client to enable audio (QEMU Audio Client Message, 255,1,0). QEMU responds with a "stream is about to start" message (QEMU Audio Server Message, 255,1,1) and then promptly crashes without sending anything else.
Running it in GDB produces a crash at audio/audio.c:739
Thread 1 "qemu-system-x86" received signal SIGSEGV, Segmentation fault.
audio_pcm_sw_write (sw=0x5555575bbf30, buf=0x0, size=1628) at audio/audio.c:739
739 if (!sw->hw->pcm_ops->volume_out) {
The exact sequence of events does not matter - i can enable sound before playing anything, and then it would say nothing and keep working, but crash with the same message once anything sound-playing is launched in the VM.
Using different soundhw or adding various audiodev options does not seem to affect anything.
I can't quite figure out if the QEMU Audio VNC extension is supposed to work at all or not, but it would be handy to me if it is.
On 6/9/20 7:10 PM, Artyom wrote:
> Public bug reported:
>
> QEMU 5.0.0, built with ./configure --target-list=x86_64-softmmu
> --enable-debug --disable-strip --disable-docs --disable-sdl
>
> Running on a headless host (Ryzen 3600), Arch Linux, 64bit latest.
> Guest is also Arch Linux, 64bit.
>
> Started with qemu-system-x86_64 -vnc 0.0.0.0:0 -enable-kvm -m 4096 -cpu host -smp cores=2,threads=1,sockets=1 -machine q35 -vga std -device
> ich9-ahci,id=ahci -drive file=vm0.qcow2,format=qcow2,if=none,id=dsk0 -device ide-hd,drive=dsk0,bus=ahci.0 -soundhw hda
>
> So, a headless VM is running on a server and is being connected to over
> VNC. The virtual sound card is detected and speaker test is running
> inside the VM. So far so good.
>
> Then, i tell the VNC client to enable audio (QEMU Audio Client Message,
> 255,1,0). QEMU responds with a "stream is about to start" message (QEMU
> Audio Server Message, 255,1,1) and then promptly crashes without sending
> anything else.
>
> Running it in GDB produces a crash at audio/audio.c:739
>
> Thread 1 "qemu-system-x86" received signal SIGSEGV, Segmentation fault.
> audio_pcm_sw_write (sw=0x5555575bbf30, buf=0x0, size=1628) at audio/audio.c:739
> 739 if (!sw->hw->pcm_ops->volume_out) {
Isn't it the one fixed by
https://<email address hidden>/msg705896.html?
>
> The exact sequence of events does not matter - i can enable sound before
> playing anything, and then it would say nothing and keep working, but
> crash with the same message once anything sound-playing is launched in
> the VM.
>
> Using different soundhw or adding various audiodev options does not seem
> to affect anything.
>
> I can't quite figure out if the QEMU Audio VNC extension is supposed to
> work at all or not, but it would be handy to me if it is.
>
> ** Affects: qemu
> Importance: Undecided
> Status: New
>
Great.
Can confirm, that patch fixes it.
commit cbaf25d1f59ee13fc7542a06ea70784f2e000c04.
|