Bug 494616 - plasmashell asserts (managedScreens.count() <= m_screenPool->screenOrder().count()) when power-cycling monitors in a multi-monitor setup
Summary: plasmashell asserts (managedScreens.count() <= m_screenPool->screenOrder().co...
Status: ASSIGNED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Containment (show other bugs)
Version: 6.2.0
Platform: Neon Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
: 495113 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-10-12 20:11 UTC by Mattes D
Modified: 2025-03-27 12:04 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/148499/events/138d779dfb0a40438f4823308ebd7c07/


Attachments
New crash information added by DrKonqi (115.70 KB, text/plain)
2024-10-12 20:11 UTC, Mattes D
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mattes D 2024-10-12 20:11:31 UTC
Application: plasmashell (6.2.0)

ApplicationNotResponding [ANR]: false
Qt Version: 6.7.2
Frameworks Version: 6.6.0
Operating System: Linux 6.8.0-45-generic x86_64
Windowing System: X11
Distribution: KDE neon 6.2
DrKonqi: 6.2.0 [CoredumpBackend]

-- Information about the crash:
I'm running KDE Neon on a dual monitor setup. I usually leave the computer running overnight, but turn off both monitors for that time. When I turn them back on, there's a plasmashell crash handler waiting each and every time.

This has been happening in KDE neon 22.04 as well, but the debug symbols for plasmashell were missing at that time, so it was impossible to send in the report. Now in 24.04 the debug symbols are finally present so a full backtrace is generated.

The crash can be reproduced every time.

-- Backtrace (Reduced):
#6  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#7  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#8  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#9  0x00007b12b244526e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#10 0x00007b12b24288ff in __GI_abort () at ./stdlib/abort.c:79


Reported using DrKonqi
Comment 1 Mattes D 2024-10-12 20:11:32 UTC
Created attachment 174749 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Nicolas Fella 2024-10-12 21:07:52 UTC
#6  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#7  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#8  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#9  0x00007b12b244526e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#10 0x00007b12b24288ff in __GI_abort () at ./stdlib/abort.c:79
#11 0x00007b12b3106235 in qAbort () at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/global/qglobal.cpp:161
#12 0x00007b12b3100237 in qt_message_fatal<QString&> (message=..., context=<optimized out>) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/global/qlogging.cpp:2025
#13 qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, context=<optimized out>, msg=<optimized out>, ap=ap@entry=0x7ffec5d10a10) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/global/qlogging.cpp:374
#14 0x00007b12b3106cff in QMessageLogger::fatal (this=<optimized out>, msg=<optimized out>) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/global/qlogging.cpp:889
#15 0x00007b12b30c7a23 in qt_assert (assertion=assertion@entry=0x62075a6be518 "managedScreens.count() <= m_screenPool->screenOrder().count()", file=file@entry=0x62075a6c08d7 "./shell/shellcorona.cpp", line=line@entry=867) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/global/qassert.cpp:68
#16 0x000062075a606287 in ShellCorona::screenInvariants (this=0x62075c2f88f0) at /usr/src/plasma-workspace-4:6.2.0-0zneon+24.04+noble+release+build11/shell/shellcorona.cpp:867
#17 0x00007b12b3064d34 in QtPrivate::QSlotObjectBase::call (a=0x7ffec5d10d80, r=0x62075c2f88f0, this=0x62075c633d40, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/kernel/qobjectdefs_impl.h:469
#18 doActivate<false> (sender=0x62075c2f8a20, signal_index=3, argv=0x7ffec5d10d80) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/kernel/qobject.cpp:4086
#19 0x00007b12b301576d in QTimer::timeout (this=<optimized out>, _t1=...) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/obj-x86_64-linux-gnu/src/corelib/Core_autogen/include/moc_qtimer.cpp:224
#20 0x00007b12b2ff7916 in QObject::event (this=0x62075c2f8a20, e=0x7ffec5d10f20) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/kernel/qobject.cpp:1427
#21 0x00007b12b53ff2b0 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x62075c2f8a20, e=0x7ffec5d10f20) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/widgets/kernel/qapplication.cpp:3287
#22 0x00007b12b30a4fd0 in QCoreApplication::notifyInternal2 (receiver=0x62075c2f8a20, event=0x7ffec5d10f20) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/kernel/qcoreapplication.cpp:1142
#23 0x00007b12b2f79cc8 in QTimerInfoList::activateTimers (this=0x62075c1c2be0) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/kernel/qtimerinfo_unix.cpp:434
#24 0x00007b12b2e4e431 in timerSourceDispatch (source=<optimized out>) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/kernel/qeventdispatcher_glib.cpp:150
#25 idleTimerSourceDispatch (source=source@entry=0x62075c21c520) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/kernel/qeventdispatcher_glib.cpp:197
#26 0x00007b12b18a05b5 in g_main_dispatch (context=0x7b12a4000f00) at ../../../glib/gmain.c:3344
#27 0x00007b12b18ff717 in g_main_context_dispatch_unlocked (context=0x7b12a4000f00) at ../../../glib/gmain.c:4152
#28 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7b12a4000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4217
#29 0x00007b12b189fa53 in g_main_context_iteration (context=0x7b12a4000f00, may_block=1) at ../../../glib/gmain.c:4282
#30 0x00007b12b2e4cd7f in QEventDispatcherGlib::processEvents (this=0x62075c22f040, flags=...) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/kernel/qeventdispatcher_glib.cpp:394
#31 0x00007b12b30aff43 in QEventLoop::exec (this=0x7ffec5d11190, flags=...) at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/global/qflags.h:34
#32 0x00007b12b30a996e in QCoreApplication::exec () at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/corelib/global/qflags.h:74
#33 0x00007b12b34c699d in QGuiApplication::exec () at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/gui/kernel/qguiapplication.cpp:1926
#34 0x00007b12b53f7129 in QApplication::exec () at /usr/src/qt6-base-6.7.2-0zneon+24.04+noble+release+build3/src/widgets/kernel/qapplication.cpp:2555
#35 0x000062075a60afe3 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/plasma-workspace-4:6.2.0-0zneon+24.04+noble+release+build11/shell/main.cpp:188
Comment 3 Mattes D 2024-10-17 10:30:42 UTC
I've just observed that the crash occurs specifically when(ever) I turn off the primary monitor. In such a case, the windows from the primary screen try to shuffle onto the secondary screen and at that moment the drkonqi crash dialog gets displayed on the secondary screen, too. The crash does happen with the secondary screen off, too.

If it is relevant in any way, both my monitors are using 1920x1200 resolution, the secondary screen is above the primary screen. I have an AMD Ryzen 7 5700X CPU and an AMD Radeon RX 6600 GPU; the primary screen is connected to the HDMI port, the secondary screen is connected to the DP port.
Comment 4 TraceyC 2024-11-27 17:59:09 UTC
*** Bug 495113 has been marked as a duplicate of this bug. ***
Comment 5 Bug Janitor Service 2025-03-27 12:04:48 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/5343