Bug 464377 - Crash in ScreenPool::screenInvariants() after ScreenPool::handleOutputOrderChanged() when waking up or re-plugging a screen
Summary: Crash in ScreenPool::screenInvariants() after ScreenPool::handleOutputOrderCh...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-multiscreen (show other bugs)
Version: master
Platform: Other Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: multiscreen, qt6, regression
: 480577 480754 491102 492420 492730 493130 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-01-16 13:53 UTC by Aleix Pol
Modified: 2024-09-14 22:42 UTC (History)
14 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.2.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleix Pol 2023-01-16 13:53:00 UTC
After waking up (and I imagine as the monitors go sequentially into dpms=on), I get the following crash.

It happens every time.

Application: Plasma (plasmashell), signal: Aborted
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#5  0x00007fdc3a2a164c in  () at /usr/lib/libc.so.6
#6  0x00007fdc3a251958 in raise () at /usr/lib/libc.so.6
#7  0x00007fdc3a23b53d in abort () at /usr/lib/libc.so.6
#8  0x00007fdc3a893caf in qt_message_fatal (message=<synthetic pointer>..., context=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:1914
#9  QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7ffe07f30398, msg=msg@entry=0x7fdc3ab99000 "ASSERT: \"%s\" in file %s, line %d") at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:893
#10 0x00007fdc3a893008 in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qglobal.cpp:3376
#11 0x000055bcd68839a4 in ScreenPool::screenInvariants() (this=0x55bcd8070910) at /home/apol/devel/frameworks/plasma-workspace/shell/screenpool.cpp:316
#12 0x000055bcd6883604 in ScreenPool::handleOutputOrderChanged(QStringList const&) (this=0x55bcd8070910, newOrder=...) at /home/apol/devel/frameworks/plasma-workspace/shell/screenpool.cpp:291
#13 0x000055bcd6887e24 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QStringList const&>, void, void (ScreenPool::*)(QStringList const&)>::call(void (ScreenPool::*)(QStringList const&), ScreenPool*, void**) (f=(void (ScreenPool::*)(ScreenPool * const, const QStringList &)) 0x55bcd68832f8 <ScreenPool::handleOutputOrderChanged(QStringList const&)>, o=0x55bcd8070910, arg=0x7ffe07f306c0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152
#14 0x000055bcd68879e9 in QtPrivate::FunctionPointer<void (ScreenPool::*)(QStringList const&)>::call<QtPrivate::List<QStringList const&>, void>(void (ScreenPool::*)(QStringList const&), ScreenPool*, void**) (f=(void (ScreenPool::*)(ScreenPool * const, const QStringList &)) 0x55bcd68832f8 <ScreenPool::handleOutputOrderChanged(QStringList const&)>, o=0x55bcd8070910, arg=0x7ffe07f306c0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185
#15 0x000055bcd6887281 in QtPrivate::QSlotObject<void (ScreenPool::*)(QStringList const&), QtPrivate::List<QStringList const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x55bcd80a6420, r=0x55bcd8070910, a=0x7ffe07f306c0, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418
#16 0x00007fdc3aaed99d in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe07f306c0, r=0x55bcd8070910, this=0x55bcd80a6420) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
#17 doActivate<false>(QObject*, int, void**) (sender=0x55bcd80a4a70, signal_index=3, argv=0x7ffe07f306c0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3923
#18 0x000055bcd68117f8 in OutputOrderWatcher::outputOrderChanged(QStringList const&) (this=0x55bcd80a4a70, _t1=...) at /home/apol/build-devel/frameworks/plasma-workspace/shell/plasmashell_autogen/EWIEGA46WW/moc_outputorderwatcher.cpp:133
#19 0x000055bcd68464e9 in operator()(QStringList const&) const (__closure=0x55bcd8079070, order=...) at /home/apol/devel/frameworks/plasma-workspace/shell/outputorderwatcher.cpp:308
#20 0x000055bcd68481fc in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<const QStringList&>, void, WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)> >::call(struct {...} &, void **) (f=..., arg=0x7ffe07f30890) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146
#21 0x000055bcd68478cf in QtPrivate::Functor<WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)>, 1>::call<QtPrivate::List<QStringList const&>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffe07f30890) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256
#22 0x000055bcd68473f6 in QtPrivate::QFunctorSlotObject<WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)>, 1, QtPrivate::List<const QStringList&>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55bcd8079060, r=0x55bcd80a4a70, a=0x7ffe07f30890, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:443
#23 0x00007fdc3aaed99d in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe07f30890, r=0x55bcd80a4a70, this=0x55bcd8079060) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
#24 doActivate<false>(QObject*, int, void**) (sender=0x55bcd8071440, signal_index=5, argv=0x7ffe07f30890) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3923
#25 0x000055bcd6846a82 in WaylandOutputOrder::outputOrderChanged(QStringList const&) (this=0x55bcd8071440, _t1=...) at /home/apol/build-devel/frameworks/plasma-workspace/shell/plasmashell_autogen/include/outputorderwatcher.moc:134
#26 0x000055bcd6848e81 in WaylandOutputOrder::kde_output_order_v1_done() (this=0x55bcd8071440) at /home/apol/devel/frameworks/plasma-workspace/shell/outputorderwatcher.cpp:63
#27 0x000055bcd68ad58b in QtWayland::kde_output_order_v1::handle_done(void*, kde_output_order_v1*) (data=0x55bcd8071450, object=0x55bcd8071b50) at /home/apol/build-devel/frameworks/plasma-workspace/shell/qwayland-kde-output-order-v1.cpp:103
#28 0x00007fdc3ce904f6 in  () at /usr/lib/libffi.so.8
#29 0x00007fdc3ce8cf5e in  () at /usr/lib/libffi.so.8
#30 0x00007fdc3ce8fb73 in ffi_call () at /usr/lib/libffi.so.8
#31 0x00007fdc3de03645 in  () at /usr/lib/libwayland-client.so.0
#32 0x00007fdc3de03e03 in  () at /usr/lib/libwayland-client.so.0
#33 0x00007fdc3de03ffc in wl_display_dispatch_queue_pending () at /usr/lib/libwayland-client.so.0
#34 0x00007fdc3c7e6912 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=<optimized out>) at /home/apol/devel/frameworks/qt5/qtwayland/src/client/qwaylanddisplay.cpp:253
#35 0x00007fdc3aae2230 in QObject::event(QEvent*) (this=0x55bcd7c1fb30, e=0x7fdc2800c0c0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:1347
#36 0x00007fdc3bb6801e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55bcd7c1fb30, e=0x7fdc2800c0c0) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3640
#37 0x00007fdc3aab60d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55bcd7c1fb30, event=0x7fdc2800c0c0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1064
#38 0x00007fdc3aab9071 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55bcd7c10800) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1821
#39 0x00007fdc3ab0ed53 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55bcd7c39f40) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:277
#40 0x00007fdc39b8587b in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#41 0x00007fdc39bdcc89 in  () at /usr/lib/libglib-2.0.so.0
#42 0x00007fdc39b84132 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#43 0x00007fdc3ab0e44e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55bcd7be4190, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:425
#44 0x00007fdc3aab4b4b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe07f31140, flags=..., flags@entry=...) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:69
#45 0x00007fdc3aabccb6 in QCoreApplication::exec() () at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:121
#46 0x000055bcd681fe04 in main(int, char**) (argc=1, argv=0x7ffe07f313f8) at /home/apol/devel/frameworks/plasma-workspace/shell/main.cpp:235
[Inferior 1 (process 2597) detached]
Comment 1 Aleix Pol 2023-01-18 02:25:57 UTC
Updated backtrace:
Application: Plasma (plasmashell), signal: Aborted
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#5  0x00007f9d4b8a164c in  () at /usr/lib/libc.so.6
#6  0x00007f9d4b851958 in raise () at /usr/lib/libc.so.6
#7  0x00007f9d4b83b53d in abort () at /usr/lib/libc.so.6
#8  0x00007f9d4be93caf in qt_message_fatal (message=<synthetic pointer>..., context=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:1914
#9  QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7ffd82264858, msg=msg@entry=0x7f9d4c199000 "ASSERT: \"%s\" in file %s, line %d") at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:893
#10 0x00007f9d4be93008 in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qglobal.cpp:3376
#11 0x000055a32defaa0e in ScreenPool::screenInvariants() (this=0x55a32e5727f0) at /home/apol/devel/frameworks/plasma-workspace/shell/screenpool.cpp:320
#12 0x000055a32defa66e in ScreenPool::handleOutputOrderChanged(QStringList const&) (this=0x55a32e5727f0, newOrder=...) at /home/apol/devel/frameworks/plasma-workspace/shell/screenpool.cpp:295
#13 0x000055a32defee04 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QStringList const&>, void, void (ScreenPool::*)(QStringList const&)>::call(void (ScreenPool::*)(QStringList const&), ScreenPool*, void**) (f=(void (ScreenPool::*)(ScreenPool * const, const QStringList &)) 0x55a32defa2f8 <ScreenPool::handleOutputOrderChanged(QStringList const&)>, o=0x55a32e5727f0, arg=0x7ffd82264b80) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152
#14 0x000055a32defe9c9 in QtPrivate::FunctionPointer<void (ScreenPool::*)(QStringList const&)>::call<QtPrivate::List<QStringList const&>, void>(void (ScreenPool::*)(QStringList const&), ScreenPool*, void**) (f=(void (ScreenPool::*)(ScreenPool * const, const QStringList &)) 0x55a32defa2f8 <ScreenPool::handleOutputOrderChanged(QStringList const&)>, o=0x55a32e5727f0, arg=0x7ffd82264b80) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185
#15 0x000055a32defe295 in QtPrivate::QSlotObject<void (ScreenPool::*)(QStringList const&), QtPrivate::List<QStringList const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x55a32e529a80, r=0x55a32e5727f0, a=0x7ffd82264b80, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418
#16 0x00007f9d4c0ed99d in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd82264b80, r=0x55a32e5727f0, this=0x55a32e529a80) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
#17 doActivate<false>(QObject*, int, void**) (sender=0x55a32e562060, signal_index=3, argv=0x7ffd82264b80) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3923
#18 0x000055a32de887f8 in OutputOrderWatcher::outputOrderChanged(QStringList const&) (this=0x55a32e562060, _t1=...) at /home/apol/build-devel/frameworks/plasma-workspace/shell/plasmashell_autogen/EWIEGA46WW/moc_outputorderwatcher.cpp:133
#19 0x000055a32debd4e9 in operator()(QStringList const&) const (__closure=0x55a32e580ed0, order=...) at /home/apol/devel/frameworks/plasma-workspace/shell/outputorderwatcher.cpp:308
#20 0x000055a32debf1fc in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<const QStringList&>, void, WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)> >::call(struct {...} &, void **) (f=..., arg=0x7ffd82264d50) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146
#21 0x000055a32debe8cf in QtPrivate::Functor<WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)>, 1>::call<QtPrivate::List<QStringList const&>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffd82264d50) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256
#22 0x000055a32debe3f6 in QtPrivate::QFunctorSlotObject<WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)>, 1, QtPrivate::List<const QStringList&>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55a32e580ec0, r=0x55a32e562060, a=0x7ffd82264d50, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:443
#23 0x00007f9d4c0ed99d in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd82264d50, r=0x55a32e562060, this=0x55a32e580ec0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
#24 doActivate<false>(QObject*, int, void**) (sender=0x55a32e573320, signal_index=5, argv=0x7ffd82264d50) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3923
#25 0x000055a32debda82 in WaylandOutputOrder::outputOrderChanged(QStringList const&) (this=0x55a32e573320, _t1=...) at /home/apol/build-devel/frameworks/plasma-workspace/shell/plasmashell_autogen/include/outputorderwatcher.moc:134
#26 0x000055a32debfe81 in WaylandOutputOrder::kde_output_order_v1_done() (this=0x55a32e573320) at /home/apol/devel/frameworks/plasma-workspace/shell/outputorderwatcher.cpp:63
#27 0x000055a32df2456b in QtWayland::kde_output_order_v1::handle_done(void*, kde_output_order_v1*) (data=0x55a32e573330, object=0x55a32e57e770) at /home/apol/build-devel/frameworks/plasma-workspace/shell/qwayland-kde-output-order-v1.cpp:103
#28 0x00007f9d4da4f4f6 in  () at /usr/lib/libffi.so.8
#29 0x00007f9d4da4bf5e in  () at /usr/lib/libffi.so.8
#30 0x00007f9d4da4eb73 in ffi_call () at /usr/lib/libffi.so.8
#31 0x00007f9d4f242645 in  () at /usr/lib/libwayland-client.so.0
#32 0x00007f9d4f242e03 in  () at /usr/lib/libwayland-client.so.0
#33 0x00007f9d4f242ffc in wl_display_dispatch_queue_pending () at /usr/lib/libwayland-client.so.0
#34 0x00007f9d4dbe6912 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=<optimized out>) at /home/apol/devel/frameworks/qt5/qtwayland/src/client/qwaylanddisplay.cpp:253
#35 0x00007f9d4c0e2230 in QObject::event(QEvent*) (this=0x55a32e120db0, e=0x7f9d38016f40) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:1347
#36 0x00007f9d4d16801e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55a32e120db0, e=0x7f9d38016f40) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3640
#37 0x00007f9d4c0b60d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55a32e120db0, event=0x7f9d38016f40) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1064
#38 0x00007f9d4c0b9071 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55a32e111800) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1821
#39 0x00007f9d4c10ed53 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55a32e13b1f0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:277
#40 0x00007f9d4afc887b in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#41 0x00007f9d4b01fc89 in  () at /usr/lib/libglib-2.0.so.0
#42 0x00007f9d4afc7132 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#43 0x00007f9d4c10e44e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55a32e0e4cd0, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:425
#44 0x00007f9d4c0b4b4b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd82265600, flags=..., flags@entry=...) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:69
#45 0x00007f9d4c0bccb6 in QCoreApplication::exec() () at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:121
#46 0x000055a32de96e04 in main(int, char**) (argc=2, argv=0x7ffd822658b8) at /home/apol/devel/frameworks/plasma-workspace/shell/main.cpp:235
[Inferior 1 (process 416932) detached]
Comment 2 Nicolas Fella 2023-01-20 12:37:39 UTC
Got the same crash when using the virtual monitor thing in KDE Connect

#0  __GI___pthread_sigmask (how=1, newmask=<optimized out>, oldmask=0x0) at pthread_sigmask.c:43
#1  0x00007f3ffda5fd1d in __GI___sigprocmask (how=<optimized out>, set=<optimized out>, oset=<optimized out>) at ../sysdeps/unix/sysv/linux/sigprocmask.c:25
#2  0x00007f4000feee6b in KCrash::setCrashHandler(void (*)(int)) (handler=0x0) at /home/nico/kde/src/kcrash/src/kcrash.cpp:414
#3  0x00007f4000fef7b2 in KCrash::defaultCrashHandler(int) (sig=6) at /home/nico/kde/src/kcrash/src/kcrash.cpp:625
#4  0x00007f3ffda5fb20 in <signal handler called> () at /lib64/libc.so.6
#5  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#6  0x00007f3ffdaafec3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#7  0x00007f3ffda5fa76 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x00007f3ffda497fc in __GI_abort () at abort.c:79
#9  0x00007f3ffe098b75 in qt_message_fatal (message=<synthetic pointer>..., context=<optimized out>) at global/qlogging.cpp:1914
#10 QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7ffddebe04c0, msg=msg@entry=0x7f3ffe38b048 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:893
#11 0x00007f3ffe097ff5 in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at global/qglobal.cpp:3376
#12 0x000000000048f5ae in ScreenPool::screenInvariants() (this=0x1401bc0) at /home/nico/kde/src/plasma-workspace/shell/screenpool.cpp:320
#13 0x000000000048f255 in ScreenPool::handleOutputOrderChanged(QStringList const&) (this=0x1401bc0, newOrder=...) at /home/nico/kde/src/plasma-workspace/shell/screenpool.cpp:295
#14 0x00000000004933a0 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QStringList const&>, void, void (ScreenPool::*)(QStringList const&)>::call(void (ScreenPool::*)(QStringList const&), ScreenPool*, void**) (f=(void (ScreenPool::*)(class ScreenPool * const, const class QStringList &)) 0x48ee76 <ScreenPool::handleOutputOrderChanged(QStringList const&)>, o=0x1401bc0, arg=0x7ffddebe0840)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:152
#15 0x0000000000493001 in QtPrivate::FunctionPointer<void (ScreenPool::*)(QStringList const&)>::call<QtPrivate::List<QStringList const&>, void>(void (ScreenPool::*)(QStringList const&), ScreenPool*, void**)
     (f=(void (ScreenPool::*)(class ScreenPool * const, const class QStringList &)) 0x48ee76 <ScreenPool::handleOutputOrderChanged(QStringList const&)>, o=0x1401bc0, arg=0x7ffddebe0840)
    at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:185
#16 0x0000000000492913 in QtPrivate::QSlotObject<void (ScreenPool::*)(QStringList const&), QtPrivate::List<QStringList const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x14346e0, r=0x1401bc0, a=0x7ffddebe0840, ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:418
#17 0x00007f3ffe2e7ab2 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffddebe0840, r=0x1401bc0, this=0x14346e0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#18 doActivate<false>(QObject*, int, void**) (sender=0x1437cb0, signal_index=3, argv=0x7ffddebe0840) at kernel/qobject.cpp:3923
#19 0x0000000000424733 in OutputOrderWatcher::outputOrderChanged(QStringList const&) (this=0x1437cb0, _t1=...)
    at /home/nico/kde/build/plasma-workspace/shell/plasmashell_autogen/EWIEGA46WW/moc_outputorderwatcher.cpp:133
#20 0x00000000004569f1 in operator()(QStringList const&) const (__closure=0x1434a20, order=...) at /home/nico/kde/src/plasma-workspace/shell/outputorderwatcher.cpp:308
#21 0x0000000000458458 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<const QStringList&>, void, WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)> >::call(struct {...} &, void **) (f=..., arg=0x7ffddebe09f0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:146
#22 0x0000000000457bcc in QtPrivate::Functor<WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)>, 1>::call<QtPrivate::List<QStringList const&>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffddebe09f0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:256
#23 0x000000000045777e in QtPrivate::QFunctorSlotObject<WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)>, 1, QtPrivate::List<const QStringList&>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x1434a10, r=0x1437cb0, a=0x7ffddebe09f0, ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:443
#24 0x00007f3ffe2e7ab2 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffddebe09f0, r=0x1437cb0, this=0x1434a10) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#25 doActivate<false>(QObject*, int, void**) (sender=0x14049b0, signal_index=5, argv=0x7ffddebe09f0) at kernel/qobject.cpp:3923
#26 0x0000000000456f37 in WaylandOutputOrder::outputOrderChanged(QStringList const&) (this=0x14049b0, _t1=...)
    at /home/nico/kde/build/plasma-workspace/shell/plasmashell_autogen/include/outputorderwatcher.moc:134
#27 0x0000000000459009 in WaylandOutputOrder::kde_output_order_v1_done() (this=0x14049b0) at /home/nico/kde/src/plasma-workspace/shell/outputorderwatcher.cpp:63
#28 0x00000000004b5d2d in QtWayland::kde_output_order_v1::handle_done(void*, kde_output_order_v1*) (data=0x14049c0, object=0x140c9b0)
    at /home/nico/kde/build/plasma-workspace/shell/qwayland-kde-output-order-v1.cpp:103
#29 0x00007f3fff8b46d6 in ffi_call_unix64 () at ../src/x86/unix64.S:105
#30 0x00007f3fff8b1492 in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:672
#31 0x00007f40013a0316 in wl_closure_invoke (closure=0x7f3fd8022bd0, flags=<optimized out>, target=<optimized out>, opcode=1, data=<optimized out>) at ../src/connection.c:1025
#32 0x00007f400139ca89 in dispatch_event (display=display@entry=0x1170780, queue=0x1170850) at ../src/wayland-client.c:1595
#33 0x00007f400139e284 in dispatch_queue (queue=0x1170850, display=0x1170780) at ../src/wayland-client.c:1741
#34 wl_display_dispatch_queue_pending (display=0x1170780, queue=0x1170850) at ../src/wayland-client.c:1983
--Type <RET> for more, q to quit, c to continue without paging--
#35 0x00007f3fffe67db2 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=<optimized out>) at qwaylanddisplay.cpp:253

#36 0x00007f3ffe2dcb30 in QObject::event(QEvent*) (this=0x116bda0, e=0x7f3fe00063f0) at kernel/qobject.cpp:1347
#37 0x00007f3fff37c3ae in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x116bda0, e=0x7f3fe00063f0) at kernel/qapplication.cpp:3640
#38 0x00007f3ffe2b2838 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x116bda0, event=0x7f3fe00063f0) at kernel/qcoreapplication.cpp:1064
#39 0x00007f3ffe2b5511 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x1142480) at kernel/qcoreapplication.cpp:1821
#40 0x00007f3ffe307703 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x118f9e0) at kernel/qeventdispatcher_glib.cpp:277
#41 0x00007f3ffd31dcbf in g_main_dispatch (context=0x7f3fe8005010) at ../glib/gmain.c:3444
#42 g_main_context_dispatch (context=0x7f3fe8005010) at ../glib/gmain.c:4162
#43 0x00007f3ffd373598 in g_main_context_iterate.constprop.0 (context=0x7f3fe8005010, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4238
#44 0x00007f3ffd31af40 in g_main_context_iteration (context=0x7f3fe8005010, may_block=1) at ../glib/gmain.c:4303
#45 0x00007f3ffe306e26 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1187010, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#46 0x00007f3ffe2b141b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffddebe1200, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#47 0x00007f3ffe2b8f22 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#48 0x0000000000432b23 in main(int, char**) (argc=2, argv=0x7ffddebe17f8) at /home/nico/kde/src/plasma-workspace/shell/main.cpp:235
Comment 3 Aleix Pol 2023-01-23 14:29:52 UTC
Still happens, posting because Marco said it might have been fixed by a previous commit.

Application: Plasma (plasmashell), signal: Aborted
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#5  0x00007fbd8bca164c in  () at /usr/lib/libc.so.6
#6  0x00007fbd8bc51938 in raise () at /usr/lib/libc.so.6
#7  0x00007fbd8bc3b53d in abort () at /usr/lib/libc.so.6
#8  0x00007fbd8c293caf in qt_message_fatal (message=<synthetic pointer>..., context=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:1914
#9  QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7ffef8206df8, msg=msg@entry=0x7fbd8c599000 "ASSERT: \"%s\" in file %s, line %d") at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:893
#10 0x00007fbd8c293008 in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qglobal.cpp:3376
#11 0x000055b223810a0e in ScreenPool::screenInvariants() (this=0x55b22573e780) at /home/apol/devel/frameworks/plasma-workspace/shell/screenpool.cpp:320
#12 0x000055b22381066e in ScreenPool::handleOutputOrderChanged(QStringList const&) (this=0x55b22573e780, newOrder=...) at /home/apol/devel/frameworks/plasma-workspace/shell/screenpool.cpp:295
#13 0x000055b223814e04 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QStringList const&>, void, void (ScreenPool::*)(QStringList const&)>::call(void (ScreenPool::*)(QStringList const&), ScreenPool*, void**) (f=(void (ScreenPool::*)(ScreenPool * const, const QStringList &)) 0x55b2238102f8 <ScreenPool::handleOutputOrderChanged(QStringList const&)>, o=0x55b22573e780, arg=0x7ffef8207120) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152
#14 0x000055b2238149c9 in QtPrivate::FunctionPointer<void (ScreenPool::*)(QStringList const&)>::call<QtPrivate::List<QStringList const&>, void>(void (ScreenPool::*)(QStringList const&), ScreenPool*, void**) (f=(void (ScreenPool::*)(ScreenPool * const, const QStringList &)) 0x55b2238102f8 <ScreenPool::handleOutputOrderChanged(QStringList const&)>, o=0x55b22573e780, arg=0x7ffef8207120) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185
#15 0x000055b223814295 in QtPrivate::QSlotObject<void (ScreenPool::*)(QStringList const&), QtPrivate::List<QStringList const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x55b22573c9a0, r=0x55b22573e780, a=0x7ffef8207120, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418
#16 0x00007fbd8c4ed99d in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffef8207120, r=0x55b22573e780, this=0x55b22573c9a0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
#17 doActivate<false>(QObject*, int, void**) (sender=0x55b225774c50, signal_index=3, argv=0x7ffef8207120) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3923
#18 0x000055b22379e7f8 in OutputOrderWatcher::outputOrderChanged(QStringList const&) (this=0x55b225774c50, _t1=...) at /home/apol/build-devel/frameworks/plasma-workspace/shell/plasmashell_autogen/EWIEGA46WW/moc_outputorderwatcher.cpp:133
#19 0x000055b2237d34e9 in operator()(QStringList const&) const (__closure=0x55b22572bbe0, order=...) at /home/apol/devel/frameworks/plasma-workspace/shell/outputorderwatcher.cpp:308
#20 0x000055b2237d51fc in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<const QStringList&>, void, WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)> >::call(struct {...} &, void **) (f=..., arg=0x7ffef82072f0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146
#21 0x000055b2237d48cf in QtPrivate::Functor<WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)>, 1>::call<QtPrivate::List<QStringList const&>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffef82072f0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256
#22 0x000055b2237d43f6 in QtPrivate::QFunctorSlotObject<WaylandOutputOrderWatcher::WaylandOutputOrderWatcher(QObject*)::<lambda(const QStringList&)>, 1, QtPrivate::List<const QStringList&>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55b22572bbd0, r=0x55b225774c50, a=0x7ffef82072f0, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:443
#23 0x00007fbd8c4ed99d in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffef82072f0, r=0x55b225774c50, this=0x55b22572bbd0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
#24 doActivate<false>(QObject*, int, void**) (sender=0x55b225777b80, signal_index=5, argv=0x7ffef82072f0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3923
#25 0x000055b2237d3a82 in WaylandOutputOrder::outputOrderChanged(QStringList const&) (this=0x55b225777b80, _t1=...) at /home/apol/build-devel/frameworks/plasma-workspace/shell/plasmashell_autogen/include/outputorderwatcher.moc:134
#26 0x000055b2237d5e81 in WaylandOutputOrder::kde_output_order_v1_done() (this=0x55b225777b80) at /home/apol/devel/frameworks/plasma-workspace/shell/outputorderwatcher.cpp:63
#27 0x000055b22383a56b in QtWayland::kde_output_order_v1::handle_done(void*, kde_output_order_v1*) (data=0x55b225777b90, object=0x55b22573fe20) at /home/apol/build-devel/frameworks/plasma-workspace/shell/qwayland-kde-output-order-v1.cpp:103
#28 0x00007fbd8e68d4f6 in  () at /usr/lib/libffi.so.8
#29 0x00007fbd8e689f5e in  () at /usr/lib/libffi.so.8
#30 0x00007fbd8e68cb73 in ffi_call () at /usr/lib/libffi.so.8
#31 0x00007fbd8f775645 in  () at /usr/lib/libwayland-client.so.0
#32 0x00007fbd8f775e03 in  () at /usr/lib/libwayland-client.so.0
#33 0x00007fbd8f775ffc in wl_display_dispatch_queue_pending () at /usr/lib/libwayland-client.so.0
#34 0x00007fbd8e126912 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=<optimized out>) at /home/apol/devel/frameworks/qt5/qtwayland/src/client/qwaylanddisplay.cpp:253
#35 0x00007fbd8c4e2230 in QObject::event(QEvent*) (this=0x55b22530db40, e=0x7fbd780050f0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:1347
#36 0x00007fbd8d56801e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55b22530db40, e=0x7fbd780050f0) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3640
#37 0x00007fbd8c4b60d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55b22530db40, event=0x7fbd780050f0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1064
#38 0x00007fbd8c4b9071 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55b2252fe800) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1821
#39 0x00007fbd8c50ed53 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55b225327f80) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:277
#40 0x00007fbd8b52d87b in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#41 0x00007fbd8b584c89 in  () at /usr/lib/libglib-2.0.so.0
#42 0x00007fbd8b52c132 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#43 0x00007fbd8c50e436 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55b2252d1c10, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:423
#44 0x00007fbd8c4b4b4b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffef8207ba0, flags=..., flags@entry=...) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:69
#45 0x00007fbd8c4bccb6 in QCoreApplication::exec() () at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:121
#46 0x000055b2237ace04 in main(int, char**) (argc=2, argv=0x7ffef8207e58) at /home/apol/devel/frameworks/plasma-workspace/shell/main.cpp:235
[Inferior 1 (process 849548) detached]
Comment 4 Nate Graham 2023-01-25 22:08:58 UTC
What was the thing that fixed this? And what release is the fix in?

See https://community.kde.org/index.php?title=Guidelines_and_HOWTOs/Bug_triaging#General_considerations
Comment 5 Nate Graham 2024-01-31 21:22:33 UTC
*** Bug 480577 has been marked as a duplicate of this bug. ***
Comment 6 Nate Graham 2024-01-31 21:23:51 UTC
Apparently not fixed as we just got a duplicate report with the same backtrace. Re-opening.
Comment 7 Nate Graham 2024-02-05 21:58:18 UTC
*** Bug 480754 has been marked as a duplicate of this bug. ***
Comment 8 Fushan Wen 2024-03-27 17:22:24 UTC
Let's call it fixed until it's not fixed
Comment 9 Nate Graham 2024-07-24 19:08:50 UTC
*** Bug 490746 has been marked as a duplicate of this bug. ***
Comment 10 Nate Graham 2024-07-24 19:09:05 UTC
Apparently not fixed again.
Comment 11 Nate Graham 2024-07-24 19:09:23 UTC
Bug 490746 has some technical data that may be useful for debugging this.
Comment 12 Bug Janitor Service 2024-07-25 04:08:00 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4553
Comment 13 David Edmundson 2024-07-29 13:09:54 UTC
I don't think the MR above is right, the point of the assert is to ensure that the output order is fully in sync with QGuiApplication::screens .
By special casing the assert, we're just going to hit weirder bugs later.
Comment 14 duha.bugs 2024-08-01 09:37:03 UTC
*** Bug 491102 has been marked as a duplicate of this bug. ***
Comment 15 Marco Martin 2024-09-02 15:40:12 UTC
possible relevant commit:
https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4642

This might have solved this, needs more testing
Comment 16 Marco Martin 2024-09-02 15:48:01 UTC
The moentioned MR should fix this problem. if the problem persists after Plasma 6.2, please reopen this bug
Comment 17 Nate Graham 2024-09-05 20:46:11 UTC
*** Bug 492420 has been marked as a duplicate of this bug. ***
Comment 18 Nate Graham 2024-09-07 07:50:45 UTC
*** Bug 492730 has been marked as a duplicate of this bug. ***
Comment 19 cwo 2024-09-14 22:42:09 UTC
*** Bug 493130 has been marked as a duplicate of this bug. ***