Bug 510477

Summary: Plasma asserts in PlasmaQuick::AppletPopup::updateSize() due to a QRect being empty following screens being switched around during login
Product: [Plasma] plasmashell Reporter: Viktor Vozar <viktor.vozar>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs-null>
Status: REPORTED ---    
Severity: crash CC: nate, notmart
Priority: NOR Keywords: drkonqi
Version First Reported In: 6.4.5   
Target Milestone: 1.0   
Platform: Neon   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=487230
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description Viktor Vozar 2025-10-11 06:30:05 UTC
Application: plasmashell (6.4.5)

ApplicationNotResponding [ANR]: false
Qt Version: 6.9.2
Frameworks Version: 6.18.0
Operating System: Linux 6.14.0-33-generic x86_64
Windowing System: Wayland
Distribution: KDE neon User Edition
DrKonqi: 6.4.5 [CoredumpBackend]

-- Information about the crash:
error during start plasma after login
display (monitor) was turn to different source (hdmi) and during login was switched from hdmi to right displayport. 
There is also external sound card plugged over usb-c but
aAfter this crash I am able to continue work and listen to the music.

The reporter is unsure if this crash is reproducible.

-- 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=6) at ./nptl/pthread_kill.c:89
#9  0x000073203484527e in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26
#10 0x00007320348288ff in __GI_abort () at ./stdlib/abort.c:79
#11 0x0000732035272d32 in qAbort () at /usr/src/qt6-base-6.9.2-0zneon+24.04+noble+release+build121/src/corelib/global/qassert.cpp:46
#12 qt_message_fatal<QString&> (message=..., context=...) at /usr/src/qt6-base-6.9.2-0zneon+24.04+noble+release+build121/src/corelib/global/qlogging.cpp:2149
[...]
#14 0x0000732035273b45 in QMessageLogger::fatal (this=<optimized out>, msg=0x73203524b8d0 "ASSERT: \"%s\" in file %s, line %d") at /usr/src/qt6-base-6.9.2-0zneon+24.04+noble+release+build121/src/corelib/global/qlogging.cpp:883
#15 0x000073203525d779 in qt_assert (assertion=assertion@entry=0x732037cf6243 "!size.isEmpty()", file=file@entry=0x732037cf4ca0 "./src/plasmaquick/appletpopup.cpp", line=line@entry=273) at /usr/src/qt6-base-6.9.2-0zneon+24.04+noble+release+build121/src/corelib/global/qassert.cpp:105
#16 0x0000732037c98028 in PlasmaQuick::AppletPopup::updateSize (this=0x5c6b57958370) at /usr/src/libplasma-6.4.5-0zneon+24.04+noble+release+build32/src/plasmaquick/appletpopup.cpp:273
#17 0x0000732035346e39 in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/qt6-base-6.9.2-0zneon+24.04+noble+release+build121/src/corelib/kernel/qobjectdefs_impl.h:461
#18 doActivate<false> (sender=0x5c6b57958370, signal_index=42, argv=0x7ffdc0eae938) at /usr/src/qt6-base-6.9.2-0zneon+24.04+noble+release+build121/src/corelib/kernel/qobject.cpp:4157
#19 0x0000732037cc6734 in PlasmaQuick::PlasmaWindow::setMainItem (mainItem=<optimized out>, this=<optimized out>) at /usr/src/libplasma-6.4.5-0zneon+24.04+noble+release+build32/src/plasmaquick/plasmawindow.cpp:79
#20 PlasmaQuick::PlasmaWindow::setMainItem (this=0x5c6b57958370, mainItem=0x5c6b5795daa0) at /usr/src/libplasma-6.4.5-0zneon+24.04+noble+release+build32/src/plasmaquick/plasmawindow.cpp:69
#21 0x0000732037cc7b4a in PlasmaQuick::PlasmaWindow::qt_metacall (this=this@entry=0x5c6b57958370, _c=_c@entry=QMetaObject::WriteProperty, _id=0, _a=_a@entry=0x7ffdc0eaebe0) at /usr/src/libplasma-6.4.5-0zneon+24.04+noble+release+build32/obj-x86_64-linux-gnu/src/plasmaquick/PlasmaQuick_autogen/include/moc_plasmawindow.cpp:183
#22 0x0000732037cc7b9e in PlasmaQuick::PopupPlasmaWindow::qt_metacall (this=0x5c6b57958370, _c=QMetaObject::WriteProperty, _id=<optimized out>, _a=0x7ffdc0eaebe0) at /usr/src/libplasma-6.4.5-0zneon+24.04+noble+release+build32/obj-x86_64-linux-gnu/src/plasmaquick/PlasmaQuick_autogen/include/moc_popupplasmawindow.cpp:213


Reported using DrKonqi
Comment 1 Viktor Vozar 2025-10-11 06:30:06 UTC
Created attachment 185682 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Nate Graham 2025-10-13 19:17:44 UTC
Relevant part:

#14 0x0000732035273b45 in QMessageLogger::fatal (this=<optimized out>, msg=0x73203524b8d0 "ASSERT: \"%s\" in file %s, line %d") at /usr/src/qt6-base-6.9.2-0zneon+24.04+noble+release+build121/src/corelib/global/qlogging.cpp:883
#15 0x000073203525d779 in qt_assert (assertion=assertion@entry=0x732037cf6243 "!size.isEmpty()", file=file@entry=0x732037cf4ca0 "./src/plasmaquick/appletpopup.cpp", line=line@entry=273) at /usr/src/qt6-base-6.9.2-0zneon+24.04+noble+release+build121/src/corelib/global/qassert.cpp:105
#16 0x0000732037c98028 in PlasmaQuick::AppletPopup::updateSize (this=0x5c6b57958370) at /usr/src/libplasma-6.4.5-0zneon+24.04+noble+release+build32/src/plasmaquick/appletpopup.cpp:273
Comment 3 Nate Graham 2025-10-13 20:05:40 UTC
The same issue was found originating from KSvg code in Bug 487230. Looks like it's still asserting in the same line of code, so I guess that change was not enough.

*** This bug has been marked as a duplicate of bug 487230 ***
Comment 4 Nate Graham 2025-10-13 20:09:28 UTC
Actually my mistake, it's slightly different. Now it's asserting because the size() of the QRect is empty.