pipewire-media-session seems to hang and crash on exit
- PipeWire version (
pipewire --version
): 0.3.48 - Distribution and distribution version (
PRETTY_NAME
from/etc/os-release
): Fedora 36 ARM 32bit - Desktop Environment: Gnome Shell 42 (wayland)
- Kernel version (
uname -r
): 5.8.18
Description of Problem:
pipewire-media-session seems to hang and sefaults when trying to abort/exit.
How Reproducible:
It's started using the pipewire-media-session user service
Steps to Reproduce:
Actual Results:
Systemd logging:
Mar 24 10:48:39 odroidxu4 systemd[1319]: Started pipewire-media-session.service - PipeWire Media Session Manager.
Mar 24 10:48:39 odroidxu4 systemd[1319]: Started pipewire-pulse.service - PipeWire PulseAudio.
Mar 24 10:48:39 odroidxu4 rtkit-daemon[645]: Successfully made thread 1573 of process 1573 (/usr/bin/pipewire) owned by '1000' high priority at nice level -11.
Mar 24 10:48:39 odroidxu4 rtkit-daemon[645]: Successfully made thread 1575 of process 1575 (/usr/bin/pipewire-pulse) owned by '1000' high priority at nice level -11.
Mar 24 10:48:39 odroidxu4 rtkit-daemon[645]: Successfully made thread 1584 of process 1574 (/usr/bin/pipewire-media-session) owned by '1000' RT at priority 20.
Mar 24 10:48:40 odroidxu4 rtkit-daemon[645]: Successfully made thread 1587 of process 1575 (/usr/bin/pipewire-pulse) owned by '1000' RT at priority 20.
Mar 24 10:48:40 odroidxu4 rtkit-daemon[645]: Successfully made thread 1588 of process 1573 (/usr/bin/pipewire) owned by '1000' RT at priority 20.
Mar 24 10:48:40 odroidxu4 pipewire-pulse[1586]: 536870912
Mar 24 10:48:56 odroidxu4 systemd[908]: Stopping pipewire-pulse.service - PipeWire PulseAudio...
Mar 24 10:48:56 odroidxu4 systemd[908]: Stopped pipewire-pulse.service - PipeWire PulseAudio.
Mar 24 10:48:56 odroidxu4 systemd[908]: Stopping pipewire-media-session.service - PipeWire Media Session Manager...
Mar 24 10:48:56 odroidxu4 pipewire-media-session[982]: free(): invalid pointer
Mar 24 10:48:56 odroidxu4 systemd[1]: Started systemd-coredump@1-2160-0.service - Process Core Dump (PID 2160/UID 0).
Mar 24 10:48:57 odroidxu4 systemd-coredump[2162]: [🡕] Process 982 (pipewire-media-) of user 42 dumped core.
Module linux-vdso.so.1 with build-id b917e210f89ac1320d8a565ec90951dd124f1cad
Module libpipewire-module-session-manager.so with build-id 66a467e0f0ef6b4273679088c29d3f4e952438ae
ELF object binary architecture: ARM
Mar 24 10:48:57 odroidxu4 systemd[908]: pipewire-media-session.service: Main process exited, code=dumped, status=6/ABRT
Mar 24 10:48:57 odroidxu4 systemd[908]: pipewire-media-session.service: Failed with result 'core-dump'.
Mar 24 10:48:57 odroidxu4 systemd[908]: Stopped pipewire-media-session.service - PipeWire Media Session Manager.
Mar 24 10:48:57 odroidxu4 systemd[908]: Stopping pipewire.service - PipeWire Multimedia Service...
Mar 24 10:48:57 odroidxu4 systemd[1]: systemd-coredump@1-2160-0.service: Deactivated successfully.
Mar 24 10:48:57 odroidxu4 systemd[908]: Stopped pipewire.service - PipeWire Multimedia Service.
Mar 24 10:48:57 odroidxu4 systemd[908]: Closed pipewire-pulse.socket - PipeWire PulseAudio.
Mar 24 10:48:57 odroidxu4 systemd[908]: Closed pipewire.socket - PipeWire Multimedia System Socket.
Backtrace when running from gdb when pressing CTRL + C:
(gdb) bt full
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
tid = 3015
ret = 0
pd = <optimized out>
old_mask = {__val = {0, 0, 0, 3070226472, 0, 1, 3070225612, 30, 1, 0, 3070227860, 5484872, 1, 0, 3070225664, 3204443992, 3204444272, 3204444256, 3069993472, 0, 3070182816, 3204443796, 3067427360, 3204443752, 0, 3069993396,
5484872, 3069993396, 5021696, 3204443752, 3204443324, 1977111134}}
ret = <optimized out>
#1 0xb6c8f848 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
No locals.
#2 0xb6c47bec in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
ret = <optimized out>
#3 0xb6c31614 in __GI_abort () at abort.c:79
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x544a60, sa_sigaction = 0x544a60}, sa_mask = {__val = {3066696340, 5524016, 3204443752, 5367280, 3066684380, 1, 2214001664, 5590608, 3066685560, 3070182816, 2214001664, 5022920,
3066685560, 5092728, 2214001664, 1, 5367304, 5503696, 3066684380, 0, 5494320, 5506528, 2214001664, 3043184108, 3204443667, 3204443672, 3067427588, 0, 0, 0, 2214001664, 5499888}}, sa_flags = -2080965632,
sa_restorer = 0xb6ff45a0}
sigs = {__val = {32, 0 <repeats 15 times>, 3070182816, 2214001664, 3204443876, 2214001664, 0, 5355904, 3070182816, 2214001664, 42, 5524064, 3070182816, 11, 5524016, 5524064, 4, 0}}
#4 0xb6c82844 in __libc_message (action=action@entry=do_abort, fmt=<optimized out>) at ../sysdeps/posix/libc_fatal.c:155
ap = {__ap = 0xbeffee7c}
fd = <optimized out>
list = <optimized out>
nlist = <optimized out>
cp = <optimized out>
#5 0xb6c9c37c in malloc_printerr (str=<optimized out>) at malloc.c:5664
No locals.
#6 0xb6c9e6e8 in _int_free (av=<optimized out>, p=<optimized out>, have_lock=<optimized out>) at malloc.c:4439
size = <optimized out>
fb = <optimized out>
nextchunk = <optimized out>
nextsize = <optimized out>
nextinuse = <optimized out>
prevsize = <optimized out>
bck = 0x0
fwd = <optimized out>
__PRETTY_FUNCTION__ = "_int_free"
#7 0xb6ca1294 in __GI___libc_free (mem=0x4bea58) at malloc.c:3391
ar_ptr = <optimized out>
p = 0x4bea50
err = 11
#8 0xb6eeca08 in clear_item (item=0x4d2a68) at ../src/pipewire/properties.c:69
No locals.
#9 pw_properties_clear (properties=properties@entry=0x4c6d88) at ../src/pipewire/properties.c:287
impl = 0x4c6d88
item = 0x4d2a68
#10 0xb6eeca38 in pw_properties_free (properties=0x4c6d88) at ../src/pipewire/properties.c:376
impl = 0x4c6d88
impl = <optimized out>
#11 pw_properties_free (properties=0x4c6d88) at ../src/pipewire/properties.c:368
impl = <optimized out>
#12 0x0040bcf0 in session_destroy (data=0x4c5ce8) at ../src/bluez-monitor.c:695
impl = 0x4c5ce8
#13 0x00407514 in session_shutdown (impl=0xbeffef68) at ../src/media-session.c:2295
_f = <optimized out>
_res = true
_list = 0xbefff068
_s = 0xbefff068
_cursor = {link = {next = 0x4b983c, prev = 0xbefff070}, cb = {funcs = 0x0, data = 0x0}, removed = 0x0, priv = 0x0}
_ci = <optimized out>
_count = <optimized out>
obj = <optimized out>
re = <optimized out>
free_list = {next = 0xbeffef50, prev = 0xbeffef50}
obj = <optimized out>
re = <optimized out>
free_list = <optimized out>
__func__ = <optimized out>
_list = <optimized out>
_s = <optimized out>
_cursor = <optimized out>
_ci = <optimized out>
_count = <optimized out>
_f = <optimized out>
_res = <optimized out>
_list = <optimized out>
_s = <optimized out>
_cursor = <optimized out>
_ci = <optimized out>
_count = <optimized out>
_f = <optimized out>
_res = <optimized out>
#14 main (argc=<optimized out>, argv=<optimized out>) at ../src/media-session.c:2603
impl = {this = {session = 0x0, props = 0x467330, session_id = 0, client_session = 0x0, loop = 0x467b90, context = 0x468958, dbus_connection = 0x4886e8, metadata = 0x0, info = 0x583ca8}, config_dir = 0x43dfbc "media-session.d", conf = 0x467438, modules = 0x468078, loop = 0x467b78, dbus = 0x472744, dbus_connection_listener = {link = {next = 0x488710, prev = 0x488710}, cb = {funcs = 0x458f58 <dbus_connection_events>, data = 0xbeffef70}, removed = 0x0, priv = 0x0}, monitor_core = 0x488760, monitor_listener = {link = {next = 0x488794, prev = 0x4887bc}, cb = {funcs = 0x458f64 <monitor_core_events>, data = 0xbeffef70}, removed = 0x0, priv = 0x0}, monitor_seq = 1073742018, policy_core = 0x49b358, policy_listener = {link = {next = 0x49b38c, prev = 0x49b3b4}, cb = {funcs = 0x458f94 <policy_core_events>, data = 0xbeffef70}, removed = 0x0, priv = 0x0}, proxy_policy_listener = {link = {next = 0x49b384, prev = 0x49b3cc}, cb = {funcs = 0x458fb8 <proxy_core_events>, data = 0xbeffef70}, removed = 0x0, priv = 0x0}, registry = 0x4ade80, registry_listener = {link = {next = 0x4adeb4, prev = 0x4adeb4}, cb = {funcs = 0x458fd0 <registry_events>, data = 0xbeffef70}, removed = 0x0, priv = 0x0}, monitor_registry = 0x49b310, monitor_registry_listener = {link = {next = 0x49b344, prev = 0x49b344}, cb = {funcs = 0x458f88 <monitor_registry_events>, data = 0xbeffef70}, removed = 0x0, priv = 0x0}, globals = {items = {data = 0x553998, size = 332, alloc = 512, extend = 64}, free_list = 4294967295}, object_list = {next = 0xbefff060, prev = 0xbefff060}, registry_event_list = {next = 0xbefff068, prev = 0xbefff068}, hooks = {list = {next = 0xbeffef58, prev = 0x4bea1c}}, endpoint_link_list = {next = 0xbefff078, prev = 0xbefff078}, endpoint_links = {items = {data = 0x4885d8, size = 0, alloc = 256, extend = 64}, free_list = 4294967295}, link_list = {next = 0xbefff094, prev = 0xbefff094}, sync_list = {next = 0xbefff09c, prev = 0xbefff09c}, rescan_seq = 1073742717, last_seq = 1073742574, scanning = 0, rescan_pending = 0, seat_active = 1}
support = <optimized out>
str = <optimized out>
config_name = <optimized out>
do_show_help = <optimized out>
n_support = 10
res = 0
c = <optimized out>
i = <optimized out>
item = <optimized out>
level = <optimized out>
config_dir = <optimized out>
long_options = {{name = 0x444524 "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x44452c "version", has_arg = 0, flag = 0x0, val = 86}, {name = 0x444534 "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x44453c "verbose", has_arg = 0, flag = 0x0, val = 118}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
__func__ = "main"
Expected Results:
no crashes
Additional Info (as attachments):
- pw-dump.log: pw-dump.log