Crash when switching outputs in GNOME Settings
This is reproducible by switching output twice in GNOME Settings. It seems like a double-free.
Backtrace:
Program terminated with signal SIGABRT, Aborted.
#0 0x00007ff12dfe6615 in raise () from /usr/lib/libc.so.6
[Current thread is 1 (Thread 0x7ff12334cc40 (LWP 82046))]
(gdb) bt
#0 0x00007ff12dfe6615 in raise () at /usr/lib/libc.so.6
#1 0x00007ff12dfcf862 in abort () at /usr/lib/libc.so.6
#2 0x00007ff12e0285e8 in __libc_message () at /usr/lib/libc.so.6
#3 0x00007ff12e03027a in () at /usr/lib/libc.so.6
#4 0x00007ff12e031334 in malloc_consolidate () at /usr/lib/libc.so.6
#5 0x00007ff12e031b30 in _int_free () at /usr/lib/libc.so.6
#6 0x00007ff1202cf348 in core_event_demarshal_remove_id (object=0x56145237a350, msg=<optimized out>) at ../src/modules/module-protocol-native/protocol-native.c:337
#7 0x00007ff1202cd0f7 in process_remote (impl=impl@entry=0x56145237ac40) at ../src/modules/module-protocol-native.c:711
#8 0x00007ff1202cd678 in on_remote_data (data=0x56145237ac40, fd=<optimized out>, mask=<optimized out>) at ../src/modules/module-protocol-native.c:752
#9 0x00007ff12fd54b7b in loop_iterate (object=0x561452360098, timeout=<optimized out>) at ../spa/plugins/support/loop.c:306
#10 0x00007ff12e26b213 in source_dispatch (source=0x56145235f260, callback=<optimized out>, user_data=<optimized out>) at ../pipewire-pulseaudio/src/mainloop-glib.c:56
#11 0x00007ff12fa44914 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#12 0x00007ff12fa987d1 in () at /usr/lib/libglib-2.0.so.0
#13 0x00007ff12fa43121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#14 0x00007ff12fc4ad1e in g_application_run () at /usr/lib/libgio-2.0.so.0
#15 0x00005614500cb2dc in main ()
Frame 6 is:
(gdb) f 6
#6 0x00007ff1202cf348 in core_event_demarshal_remove_id (object=0x56145237a350, msg=<optimized out>) at ../src/modules/module-protocol-native/protocol-native.c:337
337 return pw_proxy_notify(proxy, struct pw_core_events, remove_id, 0, id);
Full Backtrace:
Program terminated with signal SIGABRT, Aborted.
#0 0x00007ff12dfe6615 in raise () from /usr/lib/libc.so.6
[Current thread is 1 (Thread 0x7ff12334cc40 (LWP 82046))]
(gdb) bt full
#0 0x00007ff12dfe6615 in raise () at /usr/lib/libc.so.6
#1 0x00007ff12dfcf862 in abort () at /usr/lib/libc.so.6
#2 0x00007ff12e0285e8 in __libc_message () at /usr/lib/libc.so.6
#3 0x00007ff12e03027a in () at /usr/lib/libc.so.6
#4 0x00007ff12e031334 in malloc_consolidate () at /usr/lib/libc.so.6
#5 0x00007ff12e031b30 in _int_free () at /usr/lib/libc.so.6
#6 0x00007ff1202cf348 in core_event_demarshal_remove_id (object=0x56145237a350, msg=<optimized out>) at ../src/modules/module-protocol-native/protocol-native.c:337
_f = <optimized out>
list = 0x56145237a3a8
s = 0x56145237a3a8
cursor = {link = {next = 0x561452317330, prev = 0x56145237a3f8}, cb = {funcs = 0x0, data = 0x0}, removed = 0x0, priv = 0x0}
ci = <optimized out>
count = 0
proxy = 0x56145237a350
prs = {data = 0x56145251ac50, size = 24, _padding = 0, state = {offset = 24, flags = 0, frame = 0x0}}
id = 37
#7 0x00007ff1202cd0f7 in process_remote (impl=impl@entry=0x56145237ac40) at ../src/modules/module-protocol-native.c:711
proxy = 0x56145237a350
demarshal = <optimized out>
marshal = <optimized out>
msg = 0x56145237bd40
conn = 0x56145237acf0
this = 0x56145237a350
res = <optimized out>
__func__ = "process_remote"
#8 0x00007ff1202cd678 in on_remote_data (data=0x56145237ac40, fd=<optimized out>, mask=<optimized out>) at ../src/modules/module-protocol-native.c:752
impl = 0x56145237ac40
this = 0x56145237a350
conn = <optimized out>
context = <optimized out>
loop = 0x5614522fc590
res = <optimized out>
__func__ = "on_remote_data"
#9 0x00007ff12fd54b7b in loop_iterate (object=0x561452360098, timeout=<optimized out>) at ../spa/plugins/support/loop.c:306
s = <optimized out>
impl = 0x561452360098
loop = 0x5614523600b0
ep =
{{events = 1, data = 0x56145238ceb0}, {events = 1369030480, data = 0x4ed4b6b1488f}, {events = 0, data = 0x7ff12f144370}, {events = 1369030376, data = 0x7ff12daa4943}, {events = 789594064, data = 0x56145199df60}, {events = 0, data = 0x7fff00000000}, {events = 4666256, data = 0x2}, {events = 4666288, data = 0x0}, {events = 1073741824, data = 0xdca1c0dcd4544d00}, {events = 766162896, data = 0x7ff12faa3977}, {events = 799645809, data = 0xdca1c0dcd4544d00}, {events = 4666448, data = 0x7ff12faa393d}, {events = 799645809, data = 0x1}, {events = 4666480, data = 0x5614519b58f0}, {events = 800067043, data = 0x7ff12fa929b9 <sysprof_collector_mark_vprintf+57>}, {events = 1371730256, data = 0x4ed4b6b16ced}, {events = 1399, data = 0x561451c2f138}, {events = 766148404, data = 0x56145199bee8}, {events = 1371730048, data = 0xdca1c0dcd4544d00}, {events = 1381356432, data = 0x0}, {events = 1369223200, data = 0x1}, {events = 1369139248, data = 0x5614519b58f0}, {events = 0, data = 0x7ff12fa938ed}, {events = 40, data = 0x7fff00473550}, {events = 4666512, data = 0xdca1c0dcd4544d00}, {events = 5380567, data = 0xdca1c0dcd4544d00}, {events = 4666592, data = 0x56145199be00}, {events = 1369030352, data = 0x5614519cb0b0}, {events = 1369139248, data = 0x56145199bee8}, {events = 1369030328, data = 0x7ff12e099fb4 <write+100>}, {events = 0, data = 0x8}, {events = 4666640, data = 0x8}}
i = 0
nfds = <optimized out>
#10 0x00007ff12e26b213 in source_dispatch (source=0x56145235f260, callback=<optimized out>, user_data=<optimized out>) at ../pipewire-pulseaudio/src/mainloop-glib.c:56
_f = <optimized out>
_res = -95
_o = <optimized out>
s = 0x56145235f260
result = <optimized out>
#11 0x00007ff12fa44914 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#12 0x00007ff12fa987d1 in () at /usr/lib/libglib-2.0.so.0
#13 0x00007ff12fa43121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#14 0x00007ff12fc4ad1e in g_application_run () at /usr/lib/libgio-2.0.so.0
#15 0x00005614500cb2dc in main ()