KDE Connect daemon crashes when restarting PipeWire
kdeconnectd
crashes when restarting PipeWire.
The following backtrace was obtained with valgrind and vgdb using the following command:
% VALGRIND=1 QT_LOGGING_RULES="*.debug=true" valgrind --keep-debuginfo=yes --track-origins=yes --fair-sched=try --vgdb=yes --vgdb-error=1 /usr/lib/kdeconnectd
(gdb) bt -full
#0 spa_list_insert (elem=0x1169f258, list=0x1) at ../pipewire/spa/include/spa/utils/list.h:48
No locals.
#1 on_remote_data (data=0x116a0810, fd=<optimized out>, mask=<optimized out>)
at ../pipewire/src/modules/module-protocol-native.c:769
list = 0x1169f258
s = 0x1169f258
cursor = {link = {next = 0x1169f2a8, prev = 0xbf28cf0}, cb = {funcs = 0x0, data = 0x0}, removed = 0x0,
priv = 0x0}
ci = 0x1169f258
count = <optimized out>
impl = 0x116a0810
this = 0x1169f200
core_proxy = 0x1169f200
conn = <optimized out>
context = <optimized out>
loop = <optimized out>
res = -32
error = <optimized out>
__func__ = "on_remote_data"
#2 0x0000000010c1431b in loop_iterate (object=0x10a5b198, timeout=<optimized out>)
at ../pipewire/spa/plugins/support/loop.c:306
s = <optimized out>
impl = 0x10a5b198
loop = 0x10a5b1b0
ep = {{events = 17, data = 0x116b2b80}, {events = 4354, data = 0x7760da6}, {events = 201301616,
data = 0x0}, {events = 0, data = 0x0}, {events = 201294512,
data = 0x5b5ac40 <QMessageLogger::debug(char const*, ...) const+240>}, {events = 0,
data = 0xd28155bb7ac8700}, {events = 0, data = 0xbfff1c0}, {events = 201322944, data = 0x9e4d570}, {
events = 167636064, data = 0x9fdec60}, {events = 4278187296, data = 0xd28155bb7ac8700}, {
events = 98742282, data = 0x7772977}, {events = 125210737, data = 0x9ef15ab820b5}, {
events = 4278187376, data = 0x0}, {events = 125631971,
data = 0x77619b9 <sysprof_collector_mark_vprintf+57>}, {events = 125631971, data = 0x9ef15ab820b5}, {
events = 6077, data = 0x9ef105176202}, {events = 3842, data = 0x9ef105147e1d}, {events = 30382,
data = 0xd28155bb7ac8700}, {events = 167636064, data = 0x1ffefff688}, {events = 166581616,
data = 0x9ef15ab820b5}, {events = 4278187680, data = 0x0}, {events = 0, data = 0x77628ed}, {
events = 40, data = 0x1ffefff650}, {events = 4278187408, data = 0xd28155bb7ac8700}, {events = 0,
data = 0xd28155bb7ac8700}, {events = 1, data = 0x5da120a <QElapsedTimer::isMonotonic()+10>}, {
events = 200557296, data = 0x7772760}, {events = 100536808, data = 0x9ef15ab663bc}, {
events = 4278187680, data = 0x5da1d70}, {events = 0, data = 0x40145fc <update_get_addr+12>}, {
events = 4278187520, data = 0x62b6fb4 <write+100>}, {events = 0, data = 0x8}}
i = 0
nfds = <optimized out>
#3 0x0000000010b69138 in source_dispatch (source=0xc546b10, callback=<optimized out>, user_data=<optimized out>)
at ../pipewire/pipewire-pulseaudio/src/mainloop-glib.c:57
_f = <optimized out>
_res = -95
_o = <optimized out>
s = 0xc546b10
result = <optimized out>
#4 0x0000000007713914 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#5 0x00000000077677d1 in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#6 0x0000000007712121 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#7 0x0000000005da1941 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/libQt5Core.so.5
No symbol table info available.
#8 0x0000000005d4765c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
--Type <RET> for more, q to quit, c to continue without paging--c
No symbol table info available.
#9 0x0000000005d4faf4 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
No symbol table info available.
#10 0x000000000010c9b2 in ?? ()
No symbol table info available.
#11 0x00000000061ee152 in __libc_start_main () from /usr/lib/libc.so.6
No symbol table info available.
#12 0x000000000010c06e in _start ()
No symbol table info available.
Interestingly this crash does not seem to happen when running kdeconnectd
with only VALGRIND=1
but without the actual valgrind. Without the variable, it crashes most of the time.