[pipewire-pulse][module-combine-sink] Switching a physical device configuration results in a segfault
- PipeWire version (
pipewire --version
): master (c23c27b5) - Distribution and distribution version (
PRETTY_NAME
from/etc/os-release
): Archlinux - Desktop Environment: i3, nothing fancy
- Kernel version (
uname -r
): 6.3.0-arch1-1
Description of Problem:
When using module-combine-sink
(used through pactl load-module module-combine-sink
), if I switch a device configuration (in my case switching which HDMI port to use) a few times quickly, I get the following segfault:
(gdb) bt
#0 0x00007f65171a96a4 in pw_stream_trigger_process (stream=0x0) at ../src/pipewire/stream.c:2465
#1 0x00007f6514ee8d05 in combine_input_process (d=0x55ee3eee5210) at ../src/modules/module-combine-stream.c:753
#2 0x00007f651719dd19 in impl_node_process_input (object=0x55ee3eef92a0) at ../src/pipewire/stream.c:1000
#3 0x00007f65157a4279 in impl_node_process (object=0x55ee3eefb1e8) at ../spa/plugins/audioconvert/audioadapter.c:1502
#4 0x00007f65171736f9 in process_node (data=0x55ee3ef18f20) at ../src/pipewire/impl-node.c:1148
#5 0x00007f6517171370 in node_on_fd_events (source=<optimized out>) at ../src/pipewire/impl-node.c:1199
#6 0x00007f6517221e4e in loop_iterate (object=0x55ee3e2a67f8, timeout=-1) at ../spa/plugins/support/loop.c:439
#7 0x00007f6517147e1c in do_loop (user_data=0x55ee3e2a6690) at ../src/pipewire/data-loop.c:61
#8 0x00007f6516f9cbb5 in start_thread (arg=<optimized out>) at pthread_create.c:444
#9 0x00007f651701ecb4 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
How Reproducible:
Pretty much 100%
Steps to Reproduce:
pactl load-module module-combine-sink
- Get something playing sound on the
combined
sink - Go to
Configuration
on pavucontrol, take a device that has multple configurations, use the scroll wheel to quickly switch between them - Do that until it crashes. Note that it might take a while or happen immediately, it's kinda random
Actual Results:
Crash
Expected Results:
No crash
Additional Info (as attachments):
-
pw-dump > pw-dump.log
: pw-dump.log