Bug 503646 - Plasmoidviewer crashes when clicking on the applet
Summary: Plasmoidviewer crashes when clicking on the applet
Status: VERIFIED DUPLICATE of bug 506106
Alias: None
Product: Plasma SDK
Classification: Plasma
Component: plasmoidviewer (other bugs)
Version First Reported In: 6.3.4
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-05-02 06:46 UTC by Jin Liu
Modified: 2025-08-25 14:27 UTC (History)
6 users (show)

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


Attachments
Patch to test for KWindowEffects::Effect::Slide (504 bytes, patch)
2025-08-25 05:09 UTC, snow flurry
Details
wayland-pos-fix.diff (1.31 KB, patch)
2025-08-25 14:27 UTC, alec
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jin Liu 2025-05-02 06:46:42 UTC
STEPS TO REPRODUCE
1. plasmoidviewer --applet org.kde.plasma.digitalclock
2. click on the clock

OBSERVED RESULT
plasmoidviewer crashes

Stack trace of thread 414501:
#0  0x00007abf700f03d5 n/a (breeze6.so + 0x4a3d5)
#1  0x00007abf81759238 _ZN23QCoreApplicationPrivate34sendThroughApplicationEventFiltersEP7QObjectP6QEvent (libQt6Core.so.6 + 0x159238)
#2  0x00007abf82efedbf _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt6Widgets.so.6 + 0xfedbf)
#3  0x00007abf8175a018 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt6Core.so.6 + 0x15a018)
#4  0x00007abf82589c3d _ZN22QGuiApplicationPrivate26processGeometryChangeEventEPN29QWindowSystemInterfacePrivate19GeometryChangeEventE (libQt6Gui.so.6 + 0x189c3d)
#5  0x00007abf825fb23a _ZN22QWindowSystemInterface20handleGeometryChangeINS_19SynchronousDeliveryEEEvP7QWindowRK5QRect (libQt6Gui.so.6 + 0x1fb23a)
#6  0x00007abf815a05db _ZN15QtWaylandClient14QWaylandWindow11setGeometryERK5QRect (libQt6WaylandClient.so.6 + 0x9e5db)
#7  0x00007abf825f4e4a _ZN7QWindow11setGeometryERK5QRect (libQt6Gui.so.6 + 0x1f4e4a)
#8  0x00007abf825f512f _ZN7QWindow11setPositionERK6QPoint (libQt6Gui.so.6 + 0x1f512f)
#9  0x00007abf83fac78e n/a (libPlasmaQuick.so.6 + 0x5678e)
#10 0x00007abf83fad061 _ZN11PlasmaQuick17PopupPlasmaWindow5eventEP6QEvent (libPlasmaQuick.so.6 + 0x57061)
#11 0x00007abf82efed9e _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt6Widgets.so.6 + 0xfed9e)
#12 0x00007abf8175a018 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt6Core.so.6 + 0x15a018)
#13 0x00007abf82589c3d _ZN22QGuiApplicationPrivate26processGeometryChangeEventEPN29QWindowSystemInterfacePrivate19GeometryChangeEventE (libQt6Gui.so.6 + 0x189c3d)
#14 0x00007abf825fb23a _ZN22QWindowSystemInterface20handleGeometryChangeINS_19SynchronousDeliveryEEEvP7QWindowRK5QRect (libQt6Gui.so.6 + 0x1fb23a)
#15 0x00007abf815a05db _ZN15QtWaylandClient14QWaylandWindow11setGeometryERK5QRect (libQt6WaylandClient.so.6 + 0x9e5db)
#16 0x00007abf825f4e4a _ZN7QWindow11setGeometryERK5QRect (libQt6Gui.so.6 + 0x1f4e4a)
#17 0x00007abf825f512f _ZN7QWindow11setPositionERK6QPoint (libQt6Gui.so.6 + 0x1f512f)
#18 0x00007abf83fac78e n/a (libPlasmaQuick.so.6 + 0x5678e)
#19 0x00007abf83fad061 _ZN11PlasmaQuick17PopupPlasmaWindow5eventEP6QEvent (libPlasmaQuick.so.6 + 0x57061)
#20 0x00007abf82efed9e _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt6Widgets.so.6 + 0xfed9e)
#21 0x00007abf8175a018 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt6Core.so.6 + 0x15a018)
#22 0x00007abf82589c3d _ZN22QGuiApplicationPrivate26processGeometryChangeEventEPN29QWindowSystemInterfacePrivate19GeometryChangeEventE (libQt6Gui.so.6 + 0x189c3d)
#23 0x00007abf825fb23a _ZN22QWindowSystemInterface20handleGeometryChangeINS_19SynchronousDeliveryEEEvP7QWindowRK5QRect (libQt6Gui.so.6 + 0x1fb23a)
#24 0x00007abf815a05db _ZN15QtWaylandClient14QWaylandWindow11setGeometryERK5QRect (libQt6WaylandClient.so.6 + 0x9e5db)
#25 0x00007abf825f4e4a _ZN7QWindow11setGeometryERK5QRect (libQt6Gui.so.6 + 0x1f4e4a)
#26 0x00007abf825f512f _ZN7QWindow11setPositionERK6QPoint (libQt6Gui.so.6 + 0x1f512f)
#27 0x00007abf83fac78e n/a (libPlasmaQuick.so.6 + 0x5678e)
#28 0x00007abf83fad061 _ZN11PlasmaQuick17PopupPlasmaWindow5eventEP6QEvent (libPlasmaQuick.so.6 + 0x57061)
#29 0x00007abf82efed9e _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt6Widgets.so.6 + 0xfed9e)
#30 0x00007abf8175a018 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt6Core.so.6 + 0x15a018)
#31 0x00007abf82589c3d _ZN22QGuiApplicationPrivate26processGeometryChangeEventEPN29QWindowSystemInterfacePrivate19GeometryChangeEventE (libQt6Gui.so.6 + 0x189c3d)
#32 0x00007abf825fb23a _ZN22QWindowSystemInterface20handleGeometryChangeINS_19SynchronousDeliveryEEEvP7QWindowRK5QRect (libQt6Gui.so.6 + 0x1fb23a)
#33 0x00007abf815a05db _ZN15QtWaylandClient14QWaylandWindow11setGeometryERK5QRect (libQt6WaylandClient.so.6 + 0x9e5db)
#34 0x00007abf825f4e4a _ZN7QWindow11setGeometryERK5QRect (libQt6Gui.so.6 + 0x1f4e4a)
#35 0x00007abf825f512f _ZN7QWindow11setPositionERK6QPoint (libQt6Gui.so.6 + 0x1f512f)
#36 0x00007abf83fac78e n/a (libPlasmaQuick.so.6 + 0x5678e)
#37 0x00007abf83fad061 _ZN11PlasmaQuick17PopupPlasmaWindow5eventEP6QEvent (libPlasmaQuick.so.6 + 0x57061)
#38 0x00007abf82efed9e _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt6Widgets.so.6 + 0xfed9e)
#39 0x00007abf8175a018 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt6Core.so.6 + 0x15a018)
#40 0x00007abf82589c3d _ZN22QGuiApplicationPrivate26processGeometryChangeEventEPN29QWindowSystemInterfacePrivate19GeometryChangeEventE (libQt6Gui.so.6 + 0x189c3d)
#41 0x00007abf825fb23a _ZN22QWindowSystemInterface20handleGeometryChangeINS_19SynchronousDeliveryEEEvP7QWindowRK5QRect (libQt6Gui.so.6 + 0x1fb23a)
#42 0x00007abf815a05db _ZN15QtWaylandClient14QWaylandWindow11setGeometryERK5QRect (libQt6WaylandClient.so.6 + 0x9e5db)
#43 0x00007abf825f4e4a _ZN7QWindow11setGeometryERK5QRect (libQt6Gui.so.6 + 0x1f4e4a)
#44 0x00007abf825f512f _ZN7QWindow11setPositionERK6QPoint (libQt6Gui.so.6 + 0x1f512f)
#45 0x00007abf83fac78e n/a (libPlasmaQuick.so.6 + 0x5678e)
#46 0x00007abf83fad061 _ZN11PlasmaQuick17PopupPlasmaWindow5eventEP6QEvent (libPlasmaQuick.so.6 + 0x57061)
#47 0x00007abf82efed9e _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt6Widgets.so.6 + 0xfed9e)
#48 0x00007abf8175a018 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt6Core.so.6 + 0x15a018)
#49 0x00007abf82589c3d _ZN22QGuiApplicationPrivate26processGeometryChangeEventEPN29QWindowSystemInterfacePrivate19GeometryChangeEventE (libQt6Gui.so.6 + 0x189c3d)
#50 0x00007abf825fb23a _ZN22QWindowSystemInterface20handleGeometryChangeINS_19SynchronousDeliveryEEEvP7QWindowRK5QRect (libQt6Gui.so.6 + 0x1fb23a)
#51 0x00007abf815a05db _ZN15QtWaylandClient14QWaylandWindow11setGeometryERK5QRect (libQt6WaylandClient.so.6 + 0x9e5db)
#52 0x00007abf825f4e4a _ZN7QWindow11setGeometryERK5QRect (libQt6Gui.so.6 + 0x1f4e4a)
#53 0x00007abf825f512f _ZN7QWindow11setPositionERK6QPoint (libQt6Gui.so.6 + 0x1f512f)
#54 0x00007abf83fac78e n/a (libPlasmaQuick.so.6 + 0x5678e)
#55 0x00007abf83fad061 _ZN11PlasmaQuick17PopupPlasmaWindow5eventEP6QEvent (libPlasmaQuick.so.6 + 0x57061)
#56 0x00007abf82efed9e _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt6Widgets.so.6 + 0xfed9e)
#57 0x00007abf8175a018 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt6Core.so.6 + 0x15a018)
#58 0x00007abf82589c3d _ZN22QGuiApplicationPrivate26processGeometryChangeEventEPN29QWindowSystemInterfacePrivate19GeometryChangeEventE (libQt6Gui.so.6 + 0x189c3d)
#59 0x00007abf825fb23a _ZN22QWindowSystemInterface20handleGeometryChangeINS_19SynchronousDeliveryEEEvP7QWindowRK5QRect (libQt6Gui.so.6 + 0x1fb23a)
#60 0x00007abf815a05db _ZN15QtWaylandClient14QWaylandWindow11setGeometryERK5QRect (libQt6WaylandClient.so.6 + 0x9e5db)
#61 0x00007abf825f4e4a _ZN7QWindow11setGeometryERK5QRect (libQt6Gui.so.6 + 0x1f4e4a)
#62 0x00007abf825f512f _ZN7QWindow11setPositionERK6QPoint (libQt6Gui.so.6 + 0x1f512f)
#63 0x00007abf83fac78e n/a (libPlasmaQuick.so.6 + 0x5678e)

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.3.4
KDE Frameworks Version: 6.13.0
Qt Version: 6.9.0
Kernel Version: 6.14.4-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 5600H with Radeon Graphics
Memory: 15.0 GiB of RAM
Graphics Processor: AMD Radeon Graphics
Comment 1 TraceyC 2025-06-25 20:19:38 UTC
I can reproduce this on git-master.
Comment 2 alec 2025-08-22 15:29:32 UTC
Try (workaround to make it work):

QT_QPA_PLATFORM=xcb plasmoidviewer --applet org.kde.plasma.digitalclock

I believe its the same bug I reported 
https://bugs.kde.org/show_bug.cgi?id=506106

*** This bug has been marked as a duplicate of bug 506106 ***
Comment 3 snow flurry 2025-08-25 05:08:37 UTC
I don't believe this is a duplicate of bug 506106, unless where it fails is just inconsistent. This is the stack trace I get when testing on Plasma 6.4.4, in a full Plasma session:

#0  malloc () at /usr/lib64/libc.so.6
#1  QArrayData::allocate(QArrayData**, long long, long long, long long, QArrayData::AllocationOption) () at /usr/lib64/libQt6Core.so.6
#2  ??? () at /usr/lib64/libQt6WaylandClient.so.6
#3  QtWaylandClient::QWaylandScreen::virtualSiblings() const () at /usr/lib64/libQt6WaylandClient.so.6
#4  QScreen::virtualSiblings() const () at /usr/lib64/libQt6Gui.so.6
#5  QGuiApplication::screenAt(QPoint const&) () at /usr/lib64/libQt6Gui.so.6
#6  PlasmaQuick::PopupPlasmaWindowPrivate::updateSlideEffect (this=, globalPosition=...) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:91
#7  PlasmaQuick::PopupPlasmaWindowPrivate::updatePosition (this=) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:173
#8  PlasmaQuick::PopupPlasmaWindow::event (this=, event=) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:420
#9  QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#10 QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#11 QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePrivate::GeometryChangeEvent*) () at /usr/lib64/libQt6Gui.so.6
#12 ??? () at /usr/lib64/libQt6Gui.so.6
#13 QtWaylandClient::QWaylandWindow::setGeometry(QRect const&) () at /usr/lib64/libQt6WaylandClient.so.6
#14 QWindow::setGeometry(QRect const&) () at /usr/lib64/libQt6Gui.so.6
#15 QWindow::setPosition(QPoint const&) () at /usr/lib64/libQt6Gui.so.6
#16 PlasmaQuick::PopupPlasmaWindowPrivate::updatePositionWayland (this=, position=...) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:193
#17 PlasmaQuick::PopupPlasmaWindowPrivate::updatePosition (this=) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:178
#18 PlasmaQuick::PopupPlasmaWindow::event (this=, event=) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:420
#19 QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#20 QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#21 QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePrivate::GeometryChangeEvent*) () at /usr/lib64/libQt6Gui.so.6
#22 ??? () at /usr/lib64/libQt6Gui.so.6
#23 QtWaylandClient::QWaylandWindow::setGeometry(QRect const&) () at /usr/lib64/libQt6WaylandClient.so.6
#24 QWindow::setGeometry(QRect const&) () at /usr/lib64/libQt6Gui.so.6
#25 QWindow::setPosition(QPoint const&) () at /usr/lib64/libQt6Gui.so.6
#26 PlasmaQuick::PopupPlasmaWindowPrivate::updatePositionWayland (this=, position=...) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:193
#27 PlasmaQuick::PopupPlasmaWindowPrivate::updatePosition (this=) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:178
#28 PlasmaQuick::PopupPlasmaWindow::event (this=, event=) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:420
[... tens of thousands more frames of the same calls ...]
#80556 PlasmaQuick::PopupPlasmaWindowPrivate::updatePositionWayland (this=, position=...) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:193
#80557 PlasmaQuick::PopupPlasmaWindowPrivate::updatePosition (this=) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:178
#80558 PlasmaQuick::PopupPlasmaWindow::event (this=, event=) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:420
#80559 QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#80560 QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#80561 QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePrivate::GeometryChangeEvent*) () at /usr/lib64/libQt6Gui.so.6
#80562 ??? () at /usr/lib64/libQt6Gui.so.6
#80563 QtWaylandClient::QWaylandWindow::setGeometry(QRect const&) () at /usr/lib64/libQt6WaylandClient.so.6
#80564 QWindow::setGeometry(QRect const&) () at /usr/lib64/libQt6Gui.so.6
#80565 QWindow::setPosition(QPoint const&) () at /usr/lib64/libQt6Gui.so.6
#80566 PlasmaQuick::PopupPlasmaWindowPrivate::updatePositionWayland (this=, position=...) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:193
#80567 PlasmaQuick::PopupPlasmaWindowPrivate::updatePosition (this=) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:178
#80568 PlasmaQuick::PopupPlasmaWindow::event (this=, event=) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/plasmaquick/popupplasmawindow.cpp:420
#80569 QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#80570 QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#80571 QWindowPrivate::setVisible(bool) () at /usr/lib64/libQt6Gui.so.6
#80572 ToolTipArea::showToolTip (this=) at /usr/src/debug/kde-plasma/libplasma-6.4.4/libplasma-6.4.4/src/declarativeimports/core/tooltiparea.cpp:178
#80573 ??? () at /usr/lib64/libQt6Core.so.6
#80574 QTimer::timerEvent(QTimerEvent*) () at /usr/lib64/libQt6Core.so.6
#80575 QObject::event(QEvent*) () at /usr/lib64/libQt6Core.so.6
#80576 QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#80577 QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#80578 QTimerInfoList::activateTimers() () at /usr/lib64/libQt6Core.so.6
#80579 ??? () at /usr/lib64/libQt6Core.so.6
#80580 ??? () at /usr/lib64/libglib-2.0.so.0
#80581 ??? () at /usr/lib64/libglib-2.0.so.0
#80582 g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#80583 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
#80584 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
#80585 QCoreApplication::exec() () at /usr/lib64/libQt6Core.so.6
#80586 main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kde-plasma/plasma-sdk-6.4.4/plasma-sdk-6.4.4/plasmoidviewer/main.cpp:141

Even when using the attached patch to test for the Slide effect with KWindowEffects:isEffectAvailable, this bug occurs for me.
Comment 4 snow flurry 2025-08-25 05:09:46 UTC
Created attachment 184423 [details]
Patch to test for KWindowEffects::Effect::Slide
Comment 5 alec 2025-08-25 14:24:06 UTC
Thanks for looking into this. I agree this is not a duplicate of bug 506106.
My fix however fixing both.

My backtrace shows an additional Wayland geometry re-entrancy
in PlasmaQuick::PopupPlasmaWindowPrivate::updatePositionWayland():
calling QWindow::setPosition() triggers a GeometryChange event that
routes back into updatePosition*(), causing a recursion and SIGSEGV.

Patch attached (against plasma-framework / PlasmaQuick, not plasma-sdk).
Comment 6 alec 2025-08-25 14:27:25 UTC
Created attachment 184435 [details]
wayland-pos-fix.diff