Application: plasmashell (6.5.4) ApplicationNotResponding [ANR]: false Qt Version: 6.10.1 Frameworks Version: 6.21.0 Operating System: Linux 6.18.2-1-default x86_64 Windowing System: Wayland Distribution: "openSUSE Tumbleweed" DrKonqi: 6.5.4 [CoredumpBackend] -- Information about the crash: SUMMARY Plasmashell consistently crashes (SIGABRT) when the monitor wakes up from power save mode (DPMS). This occurs both after the system idle timeout (45 min) and shortly after locking the screen when the monitor turns off. Upon waking the monitor, plasmashell aborts immediately with a fatal error pointing to missing output modes. STEPS TO REPRODUCE 1. Start a Plasma Wayland session with NVIDIA proprietary drivers. 2. Wait for the monitor to enter power save mode (DPMS Off), or lock the screen and wait for turn-off. 3. Wake up the monitor (move mouse/press key). OBSERVED RESULT Plasmashell crashes. The backtrace shows a fatal assertion in KWaylandBackend. FATAL ERROR MESSAGE (from log): "KWaylandBackend: no output modes available anymore, this seems like a compositor bug" STACK TRACE SNIPPET: #12 QMessageLogger::fatal (msg="KWaylandBackend: no output modes available anymore, this seems like a compositor bug") #13 KScreen::WaylandOutputDevice::kde_output_device_v2_mode ... #25 QtWayland::kde_output_device_mode_v2::handle_removed SOFTWARE/OS VERSIONS Operating System: openSUSE Tumbleweed KDE Plasma Version: 6.5.4 (Dev/Unstable build detected from logs) Qt Version: 6.10.1 Graphics Platform: Wayland GPU: NVIDIA GeForce RTX 3080 NVIDIA Driver: 580.119.02 ADDITIONAL INFORMATION It appears that upon waking up, the driver momentarily reports an empty list of modes for the output, causing the KWayland backend to trigger a fatal assertion. The crash can be reproduced every time. -- Backtrace (Reduced): #5 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #6 0x00007f1597a9de33 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89 #7 0x00007f1597a427b6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #8 0x00007f1597a2934b in __GI_abort () at abort.c:77 #9 0x00007f15982f668b in qAbort () at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/global/qassert.cpp:46 #10 qt_maybe_message_fatal<QString&> (msgType=QtFatalMsg, context=<optimized out>, message=...) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/global/qlogging.cpp:2166 [...] #12 0x00007f15982f722f in QMessageLogger::fatal (this=this@entry=0x7ffe1bac37c0, msg=msg@entry=0x7f157003d6d0 "KWaylandBackend: no output modes available anymore, this seems like a compositor bug") at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/global/qlogging.cpp:901 #13 0x00007f157002de48 in operator() (__closure=<optimized out>) at /usr/src/debug/libkscreen-6.5.4/backends/kwayland/waylandoutputdevice.cpp:73 #14 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:116 #18 QtPrivate::QCallableObject<KScreen::WaylandOutputDevice::kde_output_device_v2_mode(kde_output_device_mode_v2*)::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:547 #19 0x00007f1598435b20 in QtPrivate::QSlotObjectBase::call (this=0x55a8863b6540, r=<optimized out>, a=0x7ffe1bac3878) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobjectdefs_impl.h:461 #20 doActivate<false> (sender=0x55a88639cd80, signal_index=3, argv=0x7ffe1bac3878) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobject.cpp:4257 #21 0x00007f159a407c92 in ffi_call_unix64 () at ../src/x86/unix64.S:104 #22 0x00007f159a404a26 in ffi_call_int (cif=cif@entry=0x7ffe1bac3a80, fn=fn@entry=0x7f157002e1c0 <QtWayland::kde_output_device_mode_v2::handle_removed(void*, kde_output_device_mode_v2*)>, rvalue=<optimized out>, rvalue@entry=0x0, avalue=avalue@entry=0x7ffe1bac3b50, closure=closure@entry=0x0) at ../src/x86/ffi64.c:676 #23 0x00007f159a4072ae in ffi_call (cif=cif@entry=0x7ffe1bac3a80, fn=0x7f157002e1c0 <QtWayland::kde_output_device_mode_v2::handle_removed(void*, kde_output_device_mode_v2*)>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffe1bac3b50) at ../src/x86/ffi64.c:713 #24 0x00007f159b1947f3 in wl_closure_invoke (closure=closure@entry=0x7f158800ca40, target=<optimized out>, target@entry=0x7f158800bc00, opcode=opcode@entry=3, data=<optimized out>, flags=1) at ../src/connection.c:1241 Reported using DrKonqi
Created attachment 187951 [details] New crash information added by DrKonqi DrKonqi auto-attaching complete backtrace.
Full backtrace of the crashing thread Thread 1 (Thread 0x7f159377bc40 (LWP 1886)): [KCrash Handler] #5 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #6 0x00007f1597a9de33 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89 #7 0x00007f1597a427b6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #8 0x00007f1597a2934b in __GI_abort () at abort.c:77 #9 0x00007f15982f668b in qAbort () at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/global/qassert.cpp:46 #10 qt_maybe_message_fatal<QString&> (msgType=QtFatalMsg, context=<optimized out>, message=...) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/global/qlogging.cpp:2166 #11 qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, context=..., msg=msg@entry=0x7f157003d6d0 "KWaylandBackend: no output modes available anymore, this seems like a compositor bug", ap=ap@entry=0x7ffe1bac3568) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/global/qlogging.cpp:412 #12 0x00007f15982f722f in QMessageLogger::fatal (this=this@entry=0x7ffe1bac37c0, msg=msg@entry=0x7f157003d6d0 "KWaylandBackend: no output modes available anymore, this seems like a compositor bug") at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/global/qlogging.cpp:901 #13 0x00007f157002de48 in operator() (__closure=<optimized out>) at /usr/src/debug/libkscreen-6.5.4/backends/kwayland/waylandoutputdevice.cpp:73 #14 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:116 #15 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>, QtPrivate::List<>, void, KScreen::WaylandOutputDevice::kde_output_device_v2_mode(kde_output_device_mode_v2*)::<lambda()> >::call(KScreen::WaylandOutputDevice::kde_output_device_v2_mode(kde_output_device_mode_v2*)::<lambda()>&, void**)::<lambda()> > (args=<optimized out>, fn=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65 #16 QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>, QtPrivate::List<>, void, KScreen::WaylandOutputDevice::kde_output_device_v2_mode(kde_output_device_mode_v2*)::<lambda()> >::call (f=<optimized out>, arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:115 #17 QtPrivate::FunctorCallable<KScreen::WaylandOutputDevice::kde_output_device_v2_mode(kde_output_device_mode_v2*)::<lambda()> >::call<QtPrivate::List<>, void> (f=<optimized out>, arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:337 #18 QtPrivate::QCallableObject<KScreen::WaylandOutputDevice::kde_output_device_v2_mode(kde_output_device_mode_v2*)::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:547 #19 0x00007f1598435b20 in QtPrivate::QSlotObjectBase::call (this=0x55a8863b6540, r=<optimized out>, a=0x7ffe1bac3878) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobjectdefs_impl.h:461 #20 doActivate<false> (sender=0x55a88639cd80, signal_index=3, argv=0x7ffe1bac3878) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobject.cpp:4257 #21 0x00007f159a407c92 in ffi_call_unix64 () at ../src/x86/unix64.S:104 #22 0x00007f159a404a26 in ffi_call_int (cif=cif@entry=0x7ffe1bac3a80, fn=fn@entry=0x7f157002e1c0 <QtWayland::kde_output_device_mode_v2::handle_removed(void*, kde_output_device_mode_v2*)>, rvalue=<optimized out>, rvalue@entry=0x0, avalue=avalue@entry=0x7ffe1bac3b50, closure=closure@entry=0x0) at ../src/x86/ffi64.c:676 #23 0x00007f159a4072ae in ffi_call (cif=cif@entry=0x7ffe1bac3a80, fn=0x7f157002e1c0 <QtWayland::kde_output_device_mode_v2::handle_removed(void*, kde_output_device_mode_v2*)>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffe1bac3b50) at ../src/x86/ffi64.c:713 #24 0x00007f159b1947f3 in wl_closure_invoke (closure=closure@entry=0x7f158800ca40, target=<optimized out>, target@entry=0x7f158800bc00, opcode=opcode@entry=3, data=<optimized out>, flags=1) at ../src/connection.c:1241 #25 0x00007f159b195539 in dispatch_event (display=display@entry=0x55a88543d1f0, queue=queue@entry=0x55a88543d2e8) at ../src/wayland-client.c:1707 #26 0x00007f159b1958eb in dispatch_queue (display=0x55a88543d1f0, queue=0x55a88543d2e8) at ../src/wayland-client.c:1853 #27 wl_display_dispatch_queue_pending (display=0x55a88543d1f0, queue=0x55a88543d2e8) at ../src/wayland-client.c:2190 #28 0x00007f15994e02e2 in QtWaylandClient::QWaylandDisplay::flushRequests (this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/plugins/platforms/wayland/qwaylanddisplay.cpp:230 #29 0x00007f15984239c4 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qobject.cpp:1413 #30 0x00007f159a7e7a78 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55a88543cfc0, e=0x7f1584005000) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/widgets/kernel/qapplication.cpp:3305 #31 0x00007f15983ce298 in QCoreApplication::notifyInternal2 (receiver=0x55a88543cfc0, event=0x7f1584005000) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qcoreapplication.cpp:1109 #32 0x00007f15983ce2dd in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qcoreapplication.cpp:1549 #33 0x00007f15983d093a in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55a88542f650) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qcoreapplication.cpp:1904 #34 0x00007f159868ee07 in postEventSourceDispatch (s=s@entry=0x55a88543ae20) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qeventdispatcher_glib.cpp:246 #35 0x00007f1596c5fb36 in g_main_dispatch (context=0x7f158c000f60) at ../glib/gmain.c:3565 #36 g_main_context_dispatch_unlocked (context=context@entry=0x7f158c000f60) at ../glib/gmain.c:4425 #37 0x00007f1596c62a28 in g_main_context_iterate_unlocked (context=context@entry=0x7f158c000f60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4490 #38 0x00007f1596c6326c in g_main_context_iteration (context=0x7f158c000f60, may_block=1) at ../glib/gmain.c:4556 #39 0x00007f159868ca28 in QEventDispatcherGlib::processEvents (this=0x55a88543a730, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qeventdispatcher_glib.cpp:399 #40 0x00007f15983dc1ab in QEventLoop::exec (this=0x7ffe1bac40f0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/global/qflags.h:77 #41 0x00007f15983d3183 in QCoreApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/corelib/kernel/qcoreapplication.cpp:1452 #42 0x00007f1598c2a3b0 in QGuiApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/gui/kernel/qguiapplication.cpp:1973 #43 0x00007f159a7e2f59 in QApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.10.1/src/widgets/kernel/qapplication.cpp:2575 #44 0x000055a84c7f0298 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-6.5.4/shell/main.cpp:188
Thank you for the bug report. Based on the backtrace this looks like a duplicate of bug 511757. Please follow that report if you would like updates on the progress of this issue. *** This bug has been marked as a duplicate of bug 511757 ***