Bug 510477 - Plasma asserts in PlasmaQuick::AppletPopup::updateSize() due to a QRect being empty following screens being switched around during login
Summary: Plasma asserts in PlasmaQuick::AppletPopup::updateSize() due to a QRect being...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (other bugs)
Version First Reported In: 6.4.5
Platform: Neon Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2025-10-11 06:30 UTC by Viktor Vozar
Modified: 2026-06-11 16:33 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.6.6
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/327102/


Attachments
New crash information added by DrKonqi (86.18 KB, text/plain)
2025-10-11 06:30 UTC, Viktor Vozar
Details

Note You need to log in before you can comment on or make changes to this bug.
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.
Comment 5 Marcelo Lacerda 2026-02-19 20:19:54 UTC
Can you explain better your steps to reproduce the issue?

The way I understand you did the following:

1. Start the computer.
2. Log into your account with kde.
3. Change the display from hdmi to display port.

If that's what you did, how did you change your display? You plugged and unplugged the display with a different cable or did you switch between different monitors already connected?
Comment 6 Bug Janitor Service 2026-06-10 13:47:17 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/libplasma/-/merge_requests/1522
Comment 7 Marco Martin 2026-06-11 08:13:49 UTC
Git commit 85fb7f09550469d3f0d9fd3878222d760f9ce3ba by Marco Martin.
Committed on 11/06/2026 at 07:07.
Pushed by mart into branch 'master'.

AppletPopup: Don't assert on AppletPopup::updateSize()

we assert when trying to resize the window at a size of zero,
but his is unfortunately a possible event early during applet creation
(and there isn't a meaningful AppletPopup mainItem size hint yet)
either if this happens before the background svg is fully loaded and had
a valid margins size or if a plasma theme without dialog svg paddings is
used.

M  +2    -5    src/plasmaquick/appletpopup.cpp

https://invent.kde.org/plasma/libplasma/-/commit/85fb7f09550469d3f0d9fd3878222d760f9ce3ba
Comment 8 Marco Martin 2026-06-11 08:15:58 UTC
Git commit 1cf87e58cd19fa19ce43d4933044234d9cfa9dc1 by Marco Martin.
Committed on 11/06/2026 at 08:15.
Pushed by mart into branch 'Plasma/6.7'.

AppletPopup: Don't assert on AppletPopup::updateSize()

we assert when trying to resize the window at a size of zero,
but his is unfortunately a possible event early during applet creation
(and there isn't a meaningful AppletPopup mainItem size hint yet)
either if this happens before the background svg is fully loaded and had
a valid margins size or if a plasma theme without dialog svg paddings is
used.


(cherry picked from commit 85fb7f09550469d3f0d9fd3878222d760f9ce3ba)

85fb7f09 AppletPopup: Don't assert on AppletPopup::updateSize()

Co-authored-by: Marco Martin <notmart@gmail.com>

M  +2    -5    src/plasmaquick/appletpopup.cpp

https://invent.kde.org/plasma/libplasma/-/commit/1cf87e58cd19fa19ce43d4933044234d9cfa9dc1
Comment 9 Marco Martin 2026-06-11 08:19:37 UTC
Git commit 0d08519a488b38a0607d6e9628bd74aa523aeeef by Marco Martin.
Committed on 11/06/2026 at 08:16.
Pushed by mart into branch 'Plasma/6.6'.

AppletPopup: Don't assert on AppletPopup::updateSize()

we assert when trying to resize the window at a size of zero,
but his is unfortunately a possible event early during applet creation
(and there isn't a meaningful AppletPopup mainItem size hint yet)
either if this happens before the background svg is fully loaded and had
a valid margins size or if a plasma theme without dialog svg paddings is
used.


(cherry picked from commit 85fb7f09550469d3f0d9fd3878222d760f9ce3ba)

85fb7f09 AppletPopup: Don't assert on AppletPopup::updateSize()

Co-authored-by: Marco Martin <notmart@gmail.com>

M  +2    -5    src/plasmaquick/appletpopup.cpp

https://invent.kde.org/plasma/libplasma/-/commit/0d08519a488b38a0607d6e9628bd74aa523aeeef