Crash in `acp_device_find_best_port_index.constprop.0.isra.0`
Pipewire randomly crashed for me.
Affected Version
- Fedora 33
- pipewire 0.3.13
Steps to reproduce
Unclear.
Here is the trace
GNU gdb (GDB) Fedora 9.2-7.fc33
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/pipewire-media-session...
Reading symbols from /usr/lib/debug/usr/bin/pipewire-media-session-0.3.13-3.fc33.x86_64.debug...
warning: core file may not match specified executable file.
[New LWP 5509]
[New LWP 5512]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/pipewire-media-session -d bluez5'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 acp_device_find_best_port_index.constprop.0.isra.0 (name=0x0, dev=<optimized out>, dev=<optimized out>) at ../spa/plugins/alsa/acp/acp.c:1347
1347 return ports[best]->index;
[Current thread is 1 (Thread 0x7f5b7f39cc00 (LWP 5509))]
(gdb) thread apply all bt full
Thread 2 (Thread 0x7f5b7ea96640 (LWP 5512)):
#0 0x00007f5b7f7f3e4e in epoll_wait () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007f5b7f9ce1b4 in impl_pollfd_wait (object=<optimized out>, pfd=<optimized out>, ev=0x7f5b7ea95b60, n_ev=<optimized out>, timeout=<optimized out>) at ../spa/plugins/support/system.c:154
ep = 0x7f5b7ea959b0
i = <optimized out>
nfds = <optimized out>
#2 0x00007f5b7f9c5544 in loop_iterate (object=0x560739a384b8, timeout=-1) at ../spa/plugins/support/loop.c:289
_f = <optimized out>
_res = -95
_o = <optimized out>
impl = 0x560739a384b8
loop = 0x560739a384d0
ep = {{events = 0, data = 0x0} <repeats 32 times>}
i = <optimized out>
nfds = <optimized out>
#3 0x00007f5b7f935d67 in do_loop (user_data=0x560739a38360) at ../src/pipewire/data-loop.c:79
_f = <optimized out>
_res = -95
_o = <optimized out>
__clframe = <optimized out>
this = 0x560739a38360
res = <optimized out>
__func__ = "do_loop"
#4 0x00007f5b7f6b73f9 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#5 0x00007f5b7f7f3b03 in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 1 (Thread 0x7f5b7f39cc00 (LWP 5509)):
#0 acp_device_find_best_port_index.constprop.0.isra.0 (name=0x0, dev=<optimized out>, dev=<optimized out>) at ../spa/plugins/alsa/acp/acp.c:1347
i = <optimized out>
best = <optimized out>
best2 = <optimized out>
best3 = <optimized out>
ports = <optimized out>
#1 0x00007f5b7e1b733a in device_enable (impl=0x560739a72c50, mapping=<optimized out>, dev=0x560739a8f4b8) at ../spa/plugins/alsa/acp/acp.c:1007
mod_name = <optimized out>
port_index = <optimized out>
res = <optimized out>
__func__ = <optimized out>
#2 0x00007f5b7e1b7bff in acp_card_set_profile.isra.0 (card=0x560739a72c50, new_index=1) at ../spa/plugins/alsa/acp/acp.c:1069
impl = 0x560739a72c50
am = <optimized out>
old_index = 4294967295
profiles = <optimized out>
op = <optimized out>
np = <optimized out>
idx = 0
res = <optimized out>
__func__ = <optimized out>
#3 0x00007f5b7e197ec6 in acp_card_new (index=<optimized out>, props=<optimized out>) at ../spa/plugins/alsa/acp/acp.c:1195
impl = <optimized out>
card = <optimized out>
s = <optimized out>
profile_set = 0x560739a86290 "dell-dock-tb16-usb-audio.conf"
profile = 0x0
device_id = "0\000\377\377\377\377\377\377\000\000\000\000\000\000\000"
ignore_dB = false
profile_index = <optimized out>
__func__ = "acp_card_new"
#4 0x00007f5b7e169ec6 in impl_init (factory=<optimized out>, handle=0x560739a727b8, info=<optimized out>, support=<optimized out>, n_support=<optimized out>) at /usr/include/stdlib.h:363
this = 0x560739a727b8
str = <optimized out>
items = 0x7ffde6535af0
it = <optimized out>
n_items = 21
__func__ = "impl_init"
#5 0x00007f5b7f9561c3 in pw_load_spa_handle (lib=<optimized out>, factory_name=0x560739aa2160 "api.alsa.acp.device", info=0x560739aa2520, n_support=8, support=0x560739a379e8) at ../src/pipewire/pipewire.c:268
sup = 0x7f5b7f9ad0a0 <global_support.lto_priv>
plugin = 0x560739a82b60
handle = 0x560739a72790
factory = 0x7f5b7e1d51a0 <spa_alsa_acp_device_factory>
res = <optimized out>
__func__ = "pw_load_spa_handle"
#6 0x00007f5b7f93a298 in pw_context_load_spa_handle (context=0x560739a37850, factory_name=0x560739aa2160 "api.alsa.acp.device", info=0x560739aa2520) at ../src/pipewire/context.c:1065
lib = 0x560739a4dfb0 "alsa/libspa-alsa"
support = <optimized out>
n_support = 8
handle = <optimized out>
__func__ = "pw_context_load_spa_handle"
#7 0x0000560737f173a3 in probe_device.isra.0 (device=0x560739aa2410) at ../src/examples/media-session/alsa-monitor.c:756
impl = 0x560739a79b00
context = <optimized out>
handle = <optimized out>
iface = 0x1
res = <optimized out>
__func__ = <optimized out>
#8 0x0000560737ef8970 in reserve_acquired (data=0x560739aa2410, d=<optimized out>) at ../src/examples/media-session/alsa-monitor.c:591
device = 0x560739aa2410
__func__ = "reserve_acquired"
#9 0x0000560737ef7cc8 in filter_handler (c=<optimized out>, m=0x560739a522a0, userdata=0x560739aa2610) at ../src/examples/media-session/reserve.c:280
d = 0x560739aa2610
error = {name = 0x0, message = 0x0, dummy1 = 1, dummy2 = 0, dummy3 = 0, dummy4 = 1, dummy5 = 1, padding1 = 0x7ffde6535e78}
name = 0x560739a72264 "org.freedesktop.ReserveDevice1.Audio0"
__func__ = "filter_handler"
#10 0x00007f5b7f8d7221 in dbus_connection_dispatch () from /lib64/libdbus-1.so.3
No symbol table info available.
#11 0x00007f5b7f9b9376 in dispatch_cb (userdata=0x560739a4f7e0) at ../spa/plugins/support/dbus.c:67
conn = 0x560739a4f7e0
impl = 0x560739a40f88
#12 0x00007f5b7f9c55db in loop_iterate (object=0x560739a2f568, timeout=<optimized out>) at ../spa/plugins/support/loop.c:306
s = <optimized out>
impl = 0x560739a2f568
loop = 0x560739a2f580
ep = {{events = 1, data = 0x560739a52410}, {events = 1, data = 0x560739a78640}, {events = 1, data = 0x560739a524f0}, {events = 1, data = 0x560739a52410}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x7f5b7f883871 <_nl_C_name+1>}, {events = 3864224096, data = 0x7f5b7f72a02a <__dcigettext+1514>}, {events = 3864199235, data = 0x7f5b7f729ce0 <__dcigettext+672>}, {events = 1298088780, data = 0x6362696c2f534547}, {events = 7302446, data = 0x7f5b7f729c5b <__dcigettext+539>}, {events = 0, data = 0xc00000000}, {events = 16, data = 0x41da5f556f43fe00}, {events = 2139633776, data = 0x560737f32060 <pw_log_level>}, {events = 966980640, data = 0xfffffffc}, {events = 938601114, data = 0x560737f30940 <long_options>}, {events = 0, data = 0x7f5b7f94a0f0 <pw_log_log+224>}, {events = 3864223952, data = 0x7f5b7f8820f7}, {events = 48, data = 0x7ffde65361c0}, {events = 3864223984, data = 0x41da5f556f43fe00}, {events = 2139633776, data = 0x7}, {events = 0, data = 0x68}, {events = 7, data = 0x560739a2f420}, {events = 144, data = 0x41da5f556f43fe00}, {events = 967280440, data = 0xffffffffffffff88}, {events = 2139627767, data = 0x4}, {events = 4, data = 0x0}, {events = 4294967295, data = 0x7f5b7f78910a <strerror_l+90>}}
i = 0
nfds = <optimized out>
#13 0x00007f5b7f94aedb in pw_main_loop_run (loop=0x560739a2f420) at ../src/pipewire/main-loop.c:156
_f = <optimized out>
_res = -95
_o = <optimized out>
res = 0
__func__ = "pw_main_loop_run"
#14 0x0000560737ef5046 in main (argc=<optimized out>, argv=<optimized out>) at ../src/examples/media-session/media-session.c:2222
impl = {this = {session = 0x0, props = 0x560739a2f2d0, session_id = 0, client_session = 0x0, loop = 0x560739a2f450, context = 0x560739a37850, dbus_connection = 0x560739a4f7f0, metadata = 0x560739a78bd0, info = 0x560739a9b810}, loop = 0x560739a2f420, dbus = 0x560739a40fa0, monitor_core = 0x560739a52560, monitor_listener = {link = {next = 0x560739a525b8, prev = 0x560739a52608}, cb = {funcs = 0x560737f30640 <monitor_core_events>, data = 0x7ffde6536250}, removed = 0x0, priv = 0x0}, monitor_seq = 1073741841, policy_core = 0x560739a65610, policy_listener = {link = {next = 0x560739a65668, prev = 0x560739a656b8}, cb = {funcs = 0x560737f30700 <policy_core_events>, data = 0x7ffde6536250}, removed = 0x0, priv = 0x0}, proxy_policy_listener = {link = {next = 0x560739a65658, prev = 0x560739a656e8}, cb = {funcs = 0x560737f306c0 <proxy_core_events>, data = 0x7ffde6536250}, removed = 0x0, priv = 0x0}, registry = 0x560739a786b0, registry_listener = {link = {next = 0x560739a78708, prev = 0x560739a78708}, cb = {funcs = 0x560737f30690 <registry_events>, data = 0x7ffde6536250}, removed = 0x0, priv = 0x0}, globals = {items = {data = 0x560739a4f3c0, size = 352, alloc = 512, extend = 64}, free_list = 4294967295}, global_list = {next = 0x560739aa7078, prev = 0x560739a70a08}, hooks = {list = {next = 0x560739a78738, prev = 0x560739ab55c8}}, endpoint_link_list = {next = 0x7ffde65363d0, prev = 0x7ffde65363d0}, endpoint_links = {items = {data = 0x560739a4f5d0, size = 0, alloc = 512, extend = 64}, free_list = 4294967295}, link_list = {next = 0x7ffde6536408, prev = 0x7ffde6536408}, sync_list = {next = 0x7ffde6536418, prev = 0x7ffde6536418}, rescan_seq = 1073741983, last_seq = 1073741991, state_dir_fd = 20, state_dir = "/home/bjoern/.config/pipewire-media-session/", '\000' <repeats 4051 times>}
support = <optimized out>
n_support = 8
res = <optimized out>
c = <optimized out>
opt_enabled = <optimized out>
opt_disabled = 0x7ffde6538841 "bluez5"
opt_properties = <optimized out>
i = <optimized out>
item = <optimized out>
long_options = {{name = 0x560737f1f02d "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x560737f1f032 "version", has_arg = 0, flag = 0x0, val = 86}, {name = 0x560737f1f03a "enabled", has_arg = 1, flag = 0x0, val = 101}, {name = 0x560737f1f042 "disabled", has_arg = 1, flag = 0x0, val = 100}, {name = 0x560737f1f04b "properties", has_arg = 1, flag = 0x0, val = 112}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
__func__ = "main"