Bug#1124666: gnome-settings-daemon: gsd-media-keys crashes when bluetooth audio is switched to hands-free
Jérémy Lal
kapouer at melix.org
Mon Jan 5 10:45:48 GMT 2026
Package: gnome-settings-daemon
Version: 49.1-4
Severity: important
Dear Maintainer,
since latest batch of gnome updates (somewhere between 2025-12-31 and 2026-01-04),
switching the output mode of my bluetooth headset (from speaker to hands-free or the reverse)
makes /usr/libexec/gsd-media-keys crash, which in turn makes gnome-shell quit.
Please find attached a full bt.
Jérémy.
-- System Information:
Debian Release: forky/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 6.17.13+deb14-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages gnome-settings-daemon depends on:
ii gnome-settings-daemon-common 49.1-4
ii gsettings-desktop-schemas 49.1-3
ii libasound2t64 1.2.15-2
ii libc6 2.42-7
ii libcanberra0 0.30-19
ii libcolord2 1.4.8-2
ii libcups2t64 2.4.16-1
ii libfontconfig1 2.15.0-2.4
ii libgck-2-2 4.4.0.1-8
ii libgcr-4-4 4.4.0.1-8
ii libgeoclue-2-0 2.8.0-1
ii libgeocode-glib-2-0 3.26.4-3
ii libglib2.0-0t64 2.86.3-4
ii libgnome-desktop-4-2t64 44.4-1
ii libgudev-1.0-0 238-7
ii libgweather-4-0t64 4.4.4-4
ii libmm-glib0 1.24.2-2
ii libnm0 1.54.3-1
ii libnotify4 0.8.6-2
ii libp11-kit0 0.25.10-1
ii libpam-systemd [logind] 259-1
ii libpolkit-gobject-1-0 127-1
ii libpulse-mainloop-glib0 17.0+dfsg1-2+b1
ii libpulse0 17.0+dfsg1-2+b1
ii libspa-0.2-bluetooth 1.4.9-1+b1
ii libsystemd0 259-1
ii libupower-glib3 1.91.0-1
ii libx11-6 2:1.8.12-1
ii libxfixes3 1:6.0.0-2+b4
ii pipewire-audio 1.4.9-1
Versions of packages gnome-settings-daemon recommends:
ii iio-sensor-proxy 3.8-1
ii pipewire-audio 1.4.9-1
ii pkexec 127-1
ii systemd-oomd 259-1
ii x11-xserver-utils 7.7+11
Versions of packages gnome-settings-daemon suggests:
ii usbguard 1.1.4+ds-1
-- no debconf information
-------------- next part --------------
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo at entry=6, no_tid=no_tid at entry=0) at ./nptl/pthread_kill.c:44
tid = <optimized out>
ret = 0
pd = <optimized out>
old_mask = {__val = {94035306993776}}
ret = <optimized out>
#1 0x00007f38e8e9749f in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
#2 0x00007f38e8e40942 in __GI_raise (sig=sig at entry=6) at ../sysdeps/posix/raise.c:26
ret = <optimized out>
#3 0x00007f38e8e284ac in __GI_abort () at ./stdlib/abort.c:77
act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {7566047375423760768, 94035455306112, 139882409138821, 140720308486144, 0, 0, 139878494896129, 139882409384425, 94036178239488, 94035455309856, 0, 0, 15358453037308297216, 94035306999040, 94035455309856, 94035306999040}}, sa_flags = 1441219648, sa_restorer = 0x55864d11d870}
#4 0x00007f38e947e0bc in g_assertion_message
(domain=domain at entry=0x55864d11a30a "Gvc", file=file at entry=0x55864d11d870 "../subprojects/gvc/gvc-mixer-stream.c", line=line at entry=535, func=func at entry=0x55864d11ed00 <__func__.11> "gvc_mixer_stream_get_port", message=message at entry=0x558655e74440 "code should not be reached") at ../../../glib/gtestutils.c:3459
lstr = "535\000\000\000\000\000\260\370\347U\206U\000\0000_\231\032\374\177\000\000\000\000\000\000\000\000\000"
s = 0x558655e8f820 "_P\214\r\203U"
#5 0x00007f38e94ecc8e in g_assertion_message_expr (domain=domain at entry=0x55864d11a30a "Gvc", file=file at entry=0x55864d11d870 "../subprojects/gvc/gvc-mixer-stream.c", line=line at entry=535, func=func at entry=0x55864d11ed00 <__func__.11> "gvc_mixer_stream_get_port", expr=expr at entry=0x0) at ../../../glib/gtestutils.c:3485
s = 0x558655e74440 "code should not be reached"
#6 0x000055864d11408c in gvc_mixer_stream_get_port (stream=0x558655e301a0 [GvcMixerSink]) at ../subprojects/gvc/gvc-mixer-stream.c:535
l = 0x0
#7 0x000055864d10db05 in gvc_mixer_control_lookup_device_from_stream (control=control at entry=0x558655e6b380 [GvcMixerControl], stream=stream at entry=0x558655e301a0 [GvcMixerSink]) at ../subprojects/gvc/gvc-mixer-control.c:274
port = <optimized out>
device = 0x558655e900a0 [GvcMixerUIDevice]
stream_id = 3
devices = 0x558655e8e960 = {0x558655e900a0, 0x558655e90a30, 0x558655e90640, 0x558655e41520, 0x558655e61300, 0x558655e908c0}
d = 0x558655e8e960 = {0x558655e900a0, 0x558655e90a30, 0x558655e90640, 0x558655e41520, 0x558655e61300, 0x558655e908c0}
is_network_stream = 0
ports = 0x558655e962b0 = {0x558655e96250}
ret = 0x0
#8 0x000055864d10dd2c in on_default_sink_port_notify (object=0x558655e301a0 [GvcMixerSink], pspec=<optimized out>, control=0x558655e6b380 [GvcMixerControl]) at ../subprojects/gvc/gvc-mixer-control.c:1024
port = 0x558655e5b9e0 "headphone-output"
output = <optimized out>
#13 0x00007f38e95ed4e3 in <emit signal 'notify:port' on instance 0x558655e301a0 [GvcMixerSink]> (instance=instance at entry=0x558655e301a0, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3598
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7ffc1a996240, reg_save_area = 0x7ffc1a996180}}
#9 0x00007f38e95d0a03 in g_closure_invoke (closure=0x558655e97730, return_value=0x0, n_param_values=n_param_values at entry=2, param_values=param_values at entry=0x7ffc1a995f30, invocation_hint=invocation_hint at entry=0x7ffc1a995e80) at ../../../gobject/gclosure.c:916
marshal = 0x7f38e95d3e70 <g_cclosure_marshal_VOID__PARAM>
marshal_data = 0x0
in_marshal = 0
reffed_flags = {flags = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 0, n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0, is_invalid = 0}, closure = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 0, n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0, is_invalid = 0, marshal = 0x0, data = 0x7f38e95cf170 <g_type_class_meta_marshal>, notifiers = 0x0}, atomic_int = 2}
real_closure = 0x558655e97710
#10 0x00007f38e95e5e0a in signal_emit_unlocked_R (node=node at entry=0x7ffc1a996010, detail=detail at entry=441, instance=instance at entry=0x558655e301a0, emission_return=emission_return at entry=0x0, instance_and_params=instance_and_params at entry=0x7ffc1a995f30) at ../../../gobject/gsignal.c:3903
tmp = <optimized out>
handler = 0x558655e8d040
accumulator = <optimized out>
emission = {next = 0x0, instance = 0x558655e301a0, ihint = {signal_id = 1, detail = 441, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4 [void]}
class_closure = <optimized out>
hlist = <optimized out>
handler_list = 0x558655e8d040
return_accu = <optimized out>
accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = <optimized out>
max_sequential_handler_number = <optimized out>
return_value_altered = <optimized out>
n_params = <optimized out>
EMIT_RESTART = <optimized out>
#11 0x00007f38e95e781c in signal_emit_valist_unlocked (instance=instance at entry=0x558655e301a0, signal_id=signal_id at entry=1, detail=detail at entry=441, var_args=var_args at entry=0x7ffc1a996160) at ../../../gobject/gsignal.c:3535
instance_and_params = 0x7ffc1a995f30
param_values = 0x7ffc1a995f48
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = <optimized out>, itype = <optimized out>, name = <optimized out>, destroyed = <optimized out>, flags = <optimized out>, n_params = <optimized out>, single_va_closure_is_valid = <optimized out>, single_va_closure_is_after = <optimized out>, param_types = <optimized out>, return_type = <optimized out>, class_closure_bsa = <optimized out>, accumulator = <optimized out>, c_marshaller = <optimized out>, va_marshaller = <optimized out>, emission_hooks = <optimized out>, single_va_closure = <optimized out>}
#12 0x00007f38e95ed428 in g_signal_emit_valist (instance=0x558655e301a0, signal_id=1, detail=441, var_args=0x7ffc1a996160) at ../../../gobject/gsignal.c:3278
#14 0x00007f38e95d5174 in g_object_dispatch_properties_changed (object=0x558655e301a0 [GvcMixerSink], n_pspecs=<optimized out>, pspecs=<optimized out>) at ../../../gobject/gobject.c:1889
i = <optimized out>
#15 0x00007f38e95d975b in g_object_notify_by_spec_internal (object=0x558655e301a0 [GvcMixerSink], pspec=0x558655e868b0 [GParamString]) at ../../../gobject/gobject.c:1994
object_flags = <optimized out>
needs_notify = 1
in_init = <optimized out>
#16 g_object_notify_by_pspec (object=object at entry=0x558655e301a0 [GvcMixerSink], pspec=0x558655e868b0 [GParamString]) at ../../../gobject/gobject.c:2100
#17 0x000055864d114168 in gvc_mixer_stream_set_port (stream=stream at entry=0x558655e301a0 [GvcMixerSink], port=<optimized out>) at ../subprojects/gvc/gvc-mixer-stream.c:563
l = 0x0
#18 0x000055864d10f3cf in update_sink (control=0x558655e6b380 [GvcMixerControl], info=0x7ffc1a9964d0) at ../subprojects/gvc/gvc-mixer-control.c:1533
active_port = <optimized out>
stream = 0x558655e301a0 [GvcMixerSink]
is_new = 0
max_volume = <optimized out>
map = 0x0
map_buff = "front-left,front-right\000\000\300\b\351U\206U\000\000\320\b\351U\206U\000\000\310\b\351U\206U\000\000\000S\351U\206U\000\000ï\021M\206U\000\000Xe\231\032\374\177\000\000\033I\352\3508\177\000\000\001", '\000' <repeats 15 times>, "\002\000\000\0008\177\000\000\033I\352\3508\177\000\000P\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\300:\001\3518\177\000\000\003\000\000\000\000\000\000\000p\025\344U\206U\000\000\300:\001\3518\177\000\000\003\000\000\000\000\000\000\000VL\352\3508\177\000\000\000\000\000\0008\177\000\000B\000\000\000\000\000\000\000A\000\000\000\000\000\000\000("...
#19 0x00007f38e93fd754 in context_get_sink_info_callback (pd=pd at entry=0x558655e75940, command=command at entry=2, tag=tag at entry=51, t=t at entry=0x558655e76630, userdata=userdata at entry=0x558655e82960) at ../src/pulse/introspect.c:268
cb = <optimized out>
mute = false
flags = 167
state = 2
ap = 0x558655e8b4c2 "headphone-output"
o = 0x558655e82960
eol = 1
i = {name = 0x558655e8acc0 "bluez_output.80:C3:BA:01:01:7A", index = 76, description = 0x558655e8ace0 "HD 450BT", sample_spec = {format = PA_SAMPLE_FLOAT32LE, rate = 48000, channels = 2 '\002'}, channel_map = {channels = 2 '\002', map = {PA_CHANNEL_POSITION_FRONT_LEFT, PA_CHANNEL_POSITION_FRONT_RIGHT, PA_CHANNEL_POSITION_MONO <repeats 30 times>}}, owner_module = 4294967295, volume = {channels = 2 '\002', values = {21673, 21673, 0 <repeats 30 times>}}, mute = 0, monitor_source = 76, monitor_source_name = 0x558655e8ad0a "bluez_output.80:C3:BA:01:01:7A.monitor", latency = 0, driver = 0x558655e8ad3b "PipeWire", flags = (PA_SINK_HW_VOLUME_CTRL | PA_SINK_LATENCY | PA_SINK_HARDWARE | PA_SINK_DECIBEL_VOLUME | PA_SINK_DYNAMIC_LATENCY), proplist = 0x558655e8b4f0, configured_latency = 0, base_volume = 65536, state = PA_SINK_SUSPENDED, n_volume_steps = 512, card = 68, n_ports = 1, ports = 0x558655e956a0, active_port = 0x558655e8d960, n_formats = 1 '\001', formats = 0x558655e956c0}
j = <optimized out>
#20 0x00007f38e8b75391 in run_action (pd=pd at entry=0x558655e75940, r=0x558655e7f3e0, command=2, ts=ts at entry=0x558655e76630) at ../src/pulsecore/pdispatch.c:291
callback = 0x7f38e93fd520 <context_get_sink_info_callback>
userdata = 0x558655e82960
tag = 51
#21 0x00007f38e8b75730 in pa_pdispatch_run (pd=0x558655e75940, packet=packet at entry=0x558655e51d80, ancil_data=ancil_data at entry=0x558655e77b08, userdata=userdata at entry=0x558655e6bc50) at ../src/pulsecore/pdispatch.c:344
r = <optimized out>
tag = 51
command = 2
ts = 0x558655e76630
ret = -1
pdata = <optimized out>
plen = 2090
#22 0x00007f38e93f1ea2 in pstream_packet_callback (p=<optimized out>, packet=0x558655e51d80, ancil_data=0x558655e77b08, userdata=0x558655e6bc50) at ../src/pulse/context.c:364
c = 0x558655e6bc50
#23 0x00007f38e8b7804b in do_read (p=p at entry=0x558655e77870, re=re at entry=0x558655e779f0) at ../src/pulsecore/pstream.c:1032
d = <optimized out>
l = <optimized out>
r = <optimized out>
release_memblock = 0x0
#24 0x00007f38e8b7aed7 in do_pstream_read_write (p=0x558655e77870) at ../src/pulsecore/pstream.c:265
#25 0x00007f38e93dd4a8 in dispatch_func (source=0x558655e6c0e0, callback=<optimized out>, userdata=<optimized out>) at ../src/pulse/glib-mainloop.c:581
g = 0x558655e6c0e0
e = 0x558655e91490
#26 0x00007f38e94ba6ae in g_main_dispatch (context=context at entry=0x558655e33220) at ../../../glib/gmain.c:3565
dispatch = 0x7f38e93dd320 <dispatch_func>
prev_source = 0x0
begin_time_nsec = 9111332442434
was_in_call = 0
user_data = 0x0
callback = 0x0
cb_funcs = 0x0
cb_data = 0x0
need_destroy = <optimized out>
source = 0x558655e6c0e0
current = 0x558655e2d7b0
i = 0
#27 0x00007f38e94bda4f in g_main_context_dispatch_unlocked (context=0x558655e33220) at ../../../glib/gmain.c:4425
#28 g_main_context_iterate_unlocked (context=context at entry=0x558655e33220, block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>) at ../../../glib/gmain.c:4490
max_priority = 2147483647
timeout_usec = 29999000
some_ready = 1
nfds = 3
allocated_nfds = <optimized out>
fds = 0x558655e4fb20
begin_time_nsec = <optimized out>
#29 0x00007f38e94be1d0 in g_main_context_iteration (context=context at entry=0x558655e33220, may_block=may_block at entry=1) at ../../../glib/gmain.c:4556
retval = <optimized out>
#30 0x00007f38e970c13d in g_application_run (application=application at entry=0x558655e29fe0 [GsdMediaKeysManager], argc=argc at entry=1, argv=argv at entry=0x7ffc1a996ba8) at ../../../gio/gapplication.c:2741
arguments = 0x7f38d8005070
status = 0
context = 0x558655e33220
acquired_context = <optimized out>
#31 0x000055864d10941d in start (manager=0x558655e29fe0 [GsdMediaKeysManager], argc=1, argv=0x7ffc1a996ba8) at ../plugins/common/gsd-main-helper.c:204
error = 0x0
#32 gsd_main_helper (manager_type=<optimized out>, argc=<optimized out>, argv=<optimized out>) at ../plugins/common/gsd-main-helper.c:250
error = 0x0
context = 0x558655e26a20
manager = 0x558655e29fe0
#33 0x00007f38e8e29f75 in __libc_start_call_main (main=main at entry=0x55864d0ffa40 <main>, argc=argc at entry=1, argv=argv at entry=0x7ffc1a996ba8) at ../sysdeps/nptl/libc_start_call_main.h:58
self = <optimized out>
result = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -4616450250376912011, 1, 139882413203456, 140720754748344, 94035307036664, -4616450250409417867, -4726820265492389003}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7f38e9895efe <call_init+206>, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = -376873218
not_first_call = <optimized out>
#34 0x00007f38e8e2a027 in __libc_start_main_impl (main=0x55864d0ffa40 <main>, argc=1, argv=0x7ffc1a996ba8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc1a996b98) at ../csu/libc-start.c:360
#35 0x000055864d0ffa91 in _start ()
More information about the pkg-gnome-maintainers
mailing list