https://bugs.kde.org/show_bug.cgi?id=500951
--- Comment #3 from Jona Wagner <j...@jonawagner.me> --- I did some more debugging (coredump available if needed) the Display Lock Record of libddcutil has this data: (gdb) p dlr $1 = (Display_Lock_Record *) 0x5b97091df140 (gdb) p *dlr $2 = {marker = "DDSC", io_path = {io_mode = DDCA_IO_I2C, path = {i2c_busno = 4, hiddev_devno = 4}}, display_mutex = {p = 0x1, i = {1, 0}}, display_mutex_thread = 0x7602b8000de0, linux_thread_id = 20887} The noted linux_thread_id is still active, the backtrace follows: ``` (gdb) thr 2 [Switching to thread 2 (Thread 0x7602c5ffb6c0 (LWP 20887))] #0 __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 56 ret (gdb) bt #0 __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 #1 0x00007602e7a9fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at cancellation.c:49 #2 0x00007602e7a9fe74 in __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at cancellation.c:75 #3 0x00007602e7b1aa06 in __GI_ppoll (fds=fds@entry=0x5b9709222c90, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42 #4 0x00007602e689f6a7 in ppoll (__fds=0x5b9709222c90, __nfds=1, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101 #5 g_main_context_poll_unlocked (priority=<optimized out>, context=0x7602b8000c40, timeout_usec=<optimized out>, fds=0x5b9709222c90, n_fds=1) at ../glib/glib/gmain.c:4591 #6 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7602b8000c40, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4268 #7 0x00007602e683be15 in g_main_context_iteration (context=0x7602b8000c40, may_block=1) at ../glib/glib/gmain.c:4338 #8 0x00007602e77c575d in QEventDispatcherGlib::processEvents (this=0x7602b8001010, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399 #9 0x00007602e75606a6 in QEventLoop::processEvents (this=0x7602c5ffaa70, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:103 #10 QEventLoop::exec (this=0x7602c5ffaa70, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:185 #11 0x00007602e7657999 in QThread::exec (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:590 #12 QThread::run (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:711 #13 0x00007602e76d8a9b in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:375 #14 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:311 #15 QThreadPrivate::start (arg=0x7602d801f188) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:339 #16 0x00007602e7aa370a in start_thread (arg=<optimized out>) at pthread_create.c:448 #17 0x00007602e7b27aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78 ``` I also checked the callback thread Mar 02 10:30:14 r9950 org_kde_powerdevil[1989]: [ 20885] libddcutil callback thread 0x7602bc002e00 started while the thread meta information still resides in memory ``` (gdb) p *(GThreadPosix*)0x7602bc002e00 $11 = {thread = {thread = {func = 0x7602e6ce4980 <dw_execute_callback_func>, data = 0x7602bc002a40, joinable = 1, priority = G_THREAD_PRIORITY_LOW}, ref_count = 1, ours = 1, name = 0x0, retval = 0x0}, system_thread = 129754267096768, joined = 0, lock = {p = 0x0, i = {0, 0}}, proxy = 0x7602e6871f10 <g_thread_proxy>} (gdb) p (pthread_t*) 129754267096768 $13 = (pthread_t *) 0x7602c4ff96c0 ``` the thread is no longer running ``` (gdb) info thr Id Target Id Frame 1 Thread 0x7602df5c4ac0 (LWP 1989) __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 * 2 Thread 0x7602c5ffb6c0 (LWP 20887) __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 3 Thread 0x7602dc9fa6c0 (LWP 2023) __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 4 Thread 0x7602dd1fb6c0 (LWP 2022) __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 5 Thread 0x7602dd9fc6c0 (LWP 2021) syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 6 Thread 0x7602de1fd6c0 (LWP 2020) __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 7 Thread 0x7602de9fe6c0 (LWP 2019) __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 8 Thread 0x7602df1ff6c0 (LWP 2005) __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56 ``` -- You are receiving this mail because: You are watching all bug changes.