Bug 515906

Summary: org_kde_powerdevil crashed after waking from standby after changing the conected monitors during standby
Product: [Plasma] plasmashell Reporter: Flupp <Flupp+bugs.kde.org>
Component: Power management & brightnessAssignee: Plasma Bugs List <plasma-bugs-null>
Status: REPORTED ---    
Severity: crash CC: kdedev
Priority: NOR Keywords: drkonqi
Version First Reported In: 6.5.5   
Target Milestone: 1.0   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Flupp 2026-02-12 12:48:21 UTC
Application: org_kde_powerdevil (6.5.5)

ApplicationNotResponding [ANR]: false
Qt Version: 6.10.2
Frameworks Version: 6.22.0
Operating System: Linux 6.18.8-arch2-1 x86_64
Windowing System: Wayland
Distribution: Arch Linux
DrKonqi: 6.5.5 [CoredumpBackend]

-- Information about the crash:
I was setting my laptop into standby, changing the monitor configuration (i.e., disconnecting some and connecting another external monitor), and resuming from standby. While in standby, I disconnected a monitor plugged in via HDMI, and connected the laptop to a docking station that has another monitor connected. The laptop was a significant time in standby when this happened (> 30min).

After resuming the standby, there was some issue that made the lock screen blinking, maybe a loose contact. I undocked and docked again, which resolved this issue.

After I was able to unlock, I noticed that org_kde_powerdevil crashed.

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: KDE Power Management System (org_kde_powerdevil), signal: Segmentation fault

[New LWP 317626]
[New LWP 2176]
[New LWP 2177]
[New LWP 2167]
[New LWP 2152]
[New LWP 2173]
[New LWP 2179]
[New LWP 2174]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/lib/org_kde_powerdevil'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f8729aa790c in ?? () from /usr/lib/libc.so.6
[Current thread is 1 (Thread 0x7f8719ffb6c0 (LWP 317626))]
add symbol table from file "/usr/lib/libc.so.6"
add symbol table from file "/usr/lib/libKF6Crash.so.6"
add symbol table from file "/usr/lib/libddcutil.so.5"
add symbol table from file "/usr/lib/libglib-2.0.so.0"
add symbol table from file "/usr/lib/libQt6Core.so.6"
add symbol table from file "/usr/lib/libQt6DBus.so.6"
add symbol table from file "/usr/lib/libpowerdevilcore.so.2"
add symbol table from file "/usr/lib/org_kde_powerdevil"
add symbol table from file "/usr/lib/libQt6WaylandClient.so.6"
add symbol table from file "/usr/lib/libgio-2.0.so.0"
[Current thread is 8 (Thread 0x7f871bfff6c0 (LWP 2174))]

Thread 8 (Thread 0x7f871bfff6c0 (LWP 2174)):
#0  0x00007f8729aadfe2 in ?? () from /usr/lib/libc.so.6
#1  0x00007f8729aa216c in ?? () from /usr/lib/libc.so.6
#2  0x00007f8729aa21b4 in ?? () from /usr/lib/libc.so.6
#3  0x00007f8729b1c4ee in poll () from /usr/lib/libc.so.6
#4  0x00007f87296abcf5 in poll (__fds=0x7f871bffe900, __nfds=2, __timeout=-1) at /usr/include/bits/poll2.h:44
#5  QtWaylandClient::EventThread::run (this=0x55c54d7237e0) at /usr/src/debug/qt6-base/qtbase/src/plugins/platforms/wayland/qwaylanddisplay.cpp:184
#6  0x00007f872a331c7a in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:448
#7  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:373
#8  QThreadPrivate::start (arg=0x55c54d7237e0) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:422
#9  0x00007f8729aa598b in ?? () from /usr/lib/libc.so.6
#10 0x00007f8729b29a0c in ?? () from /usr/lib/libc.so.6

Thread 7 (Thread 0x7f871a7fc6c0 (LWP 2179)):
#0  0x00007f8729aadfe2 in ?? () from /usr/lib/libc.so.6
#1  0x00007f8729aa216c in ?? () from /usr/lib/libc.so.6
#2  0x00007f8729aa21b4 in ?? () from /usr/lib/libc.so.6
#3  0x00007f8729b1ca36 in ppoll () from /usr/lib/libc.so.6
#4  0x00007f87293e8784 in ppoll (__fds=0x7f8704000c20, __nfds=2, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101
#5  g_main_context_poll_unlocked (priority=<optimized out>, context=0x55c54d7508d0, timeout_usec=<optimized out>, fds=0x7f8704000c20, n_fds=2) at ../glib/glib/gmain.c:4811
#6  g_main_context_iterate_unlocked (context=0x55c54d7508d0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4485
#7  0x00007f87293e8a17 in g_main_loop_run (loop=0x55c54d752ab0) at ../glib/glib/gmain.c:4695
#8  0x00007f8721f182e4 in gdbus_shared_thread_func (user_data=0x55c54d752680) at ../glib/gio/gdbusprivate.c:284
#9  0x00007f872941f8bc in g_thread_proxy (data=0x55c54d750aa0) at ../glib/glib/gthread.c:893
#10 0x00007f8729aa598b in ?? () from /usr/lib/libc.so.6
#11 0x00007f8729b29a0c in ?? () from /usr/lib/libc.so.6

Thread 6 (Thread 0x7f8720dfe6c0 (LWP 2173)):
#0  0x00007f8729aadfe2 in ?? () from /usr/lib/libc.so.6
#1  0x00007f8729aa216c in ?? () from /usr/lib/libc.so.6
#2  0x00007f8729aa21b4 in ?? () from /usr/lib/libc.so.6
#3  0x00007f8729b1c4ee in poll () from /usr/lib/libc.so.6
#4  0x00007f87296abcf5 in poll (__fds=0x7f8720dfd900, __nfds=2, __timeout=-1) at /usr/include/bits/poll2.h:44
#5  QtWaylandClient::EventThread::run (this=0x55c54d716670) at /usr/src/debug/qt6-base/qtbase/src/plugins/platforms/wayland/qwaylanddisplay.cpp:184
#6  0x00007f872a331c7a in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:448
#7  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:373
#8  QThreadPrivate::start (arg=0x55c54d716670) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:422
#9  0x00007f8729aa598b in ?? () from /usr/lib/libc.so.6
#10 0x00007f8729b29a0c in ?? () from /usr/lib/libc.so.6

Thread 5 (Thread 0x7f8721a99c00 (LWP 2152)):
#0  0x00007f8729aadfe2 in ?? () from /usr/lib/libc.so.6
#1  0x00007f8729aa216c in ?? () from /usr/lib/libc.so.6
#2  0x00007f8729aa27dc in ?? () from /usr/lib/libc.so.6
#3  0x00007f8729aa770c in ?? () from /usr/lib/libc.so.6
#4  0x00007f872941c90b in g_system_thread_wait (thread=0x55c54d7b4270) at ../glib/glib/gthread-posix.c:796
#5  g_thread_join (thread=0x55c54d7b4270) at ../glib/glib/gthread.c:1063
#6  0x00007f872b1b0d35 in dw_stop_watch_displays (wait=wait@entry=true, enabled_classes_loc=enabled_classes_loc@entry=0x7fff0375d814) at dw/dw_main.c:340
#7  0x00007f872b1b1061 in dw_redetect_displays () at dw/dw_main.c:402
#8  0x00007f872b1c5387 in ddca_redetect_displays () at libmain/api_displays.c:472
#9  0x00007f872b506fed in DDCutilPrivateSingleton::redetect (this=0x7f872b5385c0 <DDCutilPrivateSingleton::instance()::singleton>) at /usr/src/debug/powerdevil/powerdevil-6.5.5/daemon/controllers/ddcutildetector.cpp:207
#10 0x00007f872a1c6474 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1413
#11 0x00007f872a16bf48 in QCoreApplication::notifyInternal2 (receiver=0x7f872b5385c0 <DDCutilPrivateSingleton::instance()::singleton>, event=event@entry=0x7f8700001420) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#12 0x00007f872a16c320 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7f8700001420) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
#13 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55c54d7121d0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1904
#14 0x00007f872a451e78 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1757
#15 postEventSourceDispatch (s=0x55c54d716a60) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#16 0x00007f87293e6f8d in g_main_dispatch (context=0x7f871c000f60) at ../glib/glib/gmain.c:3565
#17 0x00007f87293e8657 in g_main_context_dispatch_unlocked (context=0x7f871c000f60) at ../glib/glib/gmain.c:4425
#18 g_main_context_iterate_unlocked (context=context@entry=0x7f871c000f60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4490
#19 0x00007f87293e8865 in g_main_context_iteration (context=0x7f871c000f60, may_block=1) at ../glib/glib/gmain.c:4556
#20 0x00007f872a44fcb2 in QEventDispatcherGlib::processEvents (this=0x55c54d717000, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#21 0x00007f872a176cf6 in QEventLoop::processEvents (this=0x7fff0375dd60, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#22 QEventLoop::exec (this=0x7fff0375dd60, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#23 0x00007f872a1709f1 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1452
#24 0x000055c53d1acd69 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/powerdevil/powerdevil-6.5.5/daemon/powerdevilapp.cpp:142

Thread 4 (Thread 0x7f87215ff6c0 (LWP 2167)):
#0  0x00007f8729aadfe2 in ?? () from /usr/lib/libc.so.6
#1  0x00007f8729aa216c in ?? () from /usr/lib/libc.so.6
#2  0x00007f8729aa21b4 in ?? () from /usr/lib/libc.so.6
#3  0x00007f8729b1ca36 in ppoll () from /usr/lib/libc.so.6
#4  0x00007f87293e8784 in ppoll (__fds=0x55c54d73f120, __nfds=4, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101
#5  g_main_context_poll_unlocked (priority=<optimized out>, context=0x7f871c000d00, timeout_usec=<optimized out>, fds=0x55c54d73f120, n_fds=4) at ../glib/glib/gmain.c:4811
#6  g_main_context_iterate_unlocked (context=context@entry=0x7f871c000d00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4485
#7  0x00007f87293e8865 in g_main_context_iteration (context=0x7f871c000d00, may_block=1) at ../glib/glib/gmain.c:4556
#8  0x00007f872a44fcb2 in QEventDispatcherGlib::processEvents (this=0x7f871c000be0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#9  0x00007f872a176cf6 in QEventLoop::processEvents (this=0x7f87215fe8b0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#10 QEventLoop::exec (this=0x7f87215fe8b0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#11 0x00007f872a29277e in QThread::exec (this=this@entry=0x7f872b2f0e20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:672
#12 0x00007f872b26807e in QDBusConnectionManager::run (this=0x7f872b2f0e20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/dbus/qdbusconnectionmanager.cpp:145
#13 0x00007f872a331c7a in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:448
#14 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:373
#15 QThreadPrivate::start (arg=0x7f872b2f0e20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:422
#16 0x00007f8729aa598b in ?? () from /usr/lib/libc.so.6
#17 0x00007f8729b29a0c in ?? () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7f871affd6c0 (LWP 2177)):
#0  0x00007f8729aadfe2 in ?? () from /usr/lib/libc.so.6
#1  0x00007f8729aa216c in ?? () from /usr/lib/libc.so.6
#2  0x00007f8729aa21b4 in ?? () from /usr/lib/libc.so.6
#3  0x00007f8729b1ca36 in ppoll () from /usr/lib/libc.so.6
#4  0x00007f87293e8784 in ppoll (__fds=0x7f8710000be0, __nfds=1, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101
#5  g_main_context_poll_unlocked (priority=<optimized out>, context=0x55c54d73edf0, timeout_usec=<optimized out>, fds=0x7f8710000be0, n_fds=1) at ../glib/glib/gmain.c:4811
#6  g_main_context_iterate_unlocked (context=context@entry=0x55c54d73edf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4485
#7  0x00007f87293e8865 in g_main_context_iteration (context=0x55c54d73edf0, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4556
#8  0x00007f87293e88b2 in glib_worker_main (data=<optimized out>) at ../glib/glib/gmain.c:6764
#9  0x00007f872941f8bc in g_thread_proxy (data=0x55c54d745750) at ../glib/glib/gthread.c:893
#10 0x00007f8729aa598b in ?? () from /usr/lib/libc.so.6
#11 0x00007f8729b29a0c in ?? () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7f871b7fe6c0 (LWP 2176)):
#0  0x00007f8729b2776d in syscall () from /usr/lib/libc.so.6
#1  0x00007f872941782e in g_cond_wait_impl (cond=0x55c54d745458, mutex=0x55c54d745450) at ../glib/glib/gthread-posix.c:1026
#2  g_cond_wait (cond=0x55c54d745458, mutex=0x55c54d745450) at ../glib/glib/gthread.c:1686
#3  0x00007f87293ae1cd in g_async_queue_pop_intern_unlocked (queue=0x55c54d745450, wait=1, end_time=-1) at ../glib/glib/gasyncqueue.c:376
#4  0x00007f8729420487 in g_thread_pool_spawn_thread (data=<optimized out>) at ../glib/glib/gthreadpool.c:297
#5  0x00007f872941f8bc in g_thread_proxy (data=0x55c54d7454a0) at ../glib/glib/gthread.c:893
#6  0x00007f8729aa598b in ?? () from /usr/lib/libc.so.6
#7  0x00007f8729b29a0c in ?? () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7f8719ffb6c0 (LWP 317626)):
[KCrash Handler]
#4  0x00007f872b1483cc in ddc_initial_checks_by_dref (dref=0x7f87080145c0, newly_added=<optimized out>) at ddc/ddc_initial_checks.c:566
#5  0x00007f872b1ade5f in dw_recheck_dref (dref=dref@entry=0x7f87080145c0) at dw/dw_dref.c:201
#6  0x00007f872b1b427b in dw_recheck_displays_func (data=0x55c54d78b130) at dw/dw_recheck.c:182
#7  0x00007f872941f8bc in g_thread_proxy (data=0x55c54d7b4270) at ../glib/glib/gthread.c:893
#8  0x00007f8729aa598b in ?? () from /usr/lib/libc.so.6
#9  0x00007f8729b29a0c in ?? () from /usr/lib/libc.so.6

Reported using DrKonqi
Comment 1 TraceyC 2026-02-12 16:07:57 UTC
Thanks for the crash report. Can you let us know what version of ddcutil is on your system?
Comment 2 Flupp 2026-02-12 17:08:41 UTC
Arch Linux package ddcutil 2.2.5-2.
Comment 3 TraceyC 2026-02-12 17:36:51 UTC
Thanks! The maintainers will need to take a closer look.