Bug 495666 - [ANR] Plasmashell crashes on editing System Monitor Widget
Summary: [ANR] Plasmashell crashes on editing System Monitor Widget
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: System Monitor widgets (other bugs)
Version First Reported In: 6.2.2
Platform: openSUSE Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2024-11-01 03:10 UTC by asiletti
Modified: 2025-04-23 10:11 UTC (History)
5 users (show)

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


Attachments
New crash information added by DrKonqi (98.81 KB, text/plain)
2024-11-01 03:10 UTC, asiletti
Details

Note You need to log in before you can comment on or make changes to this bug.
Description asiletti 2024-11-01 03:10:30 UTC
Application: plasmashell (6.2.2)

ApplicationNotResponding [ANR]: true
Qt Version: 6.8.0
Frameworks Version: 6.7.0
Operating System: Linux 6.11.5-1-default x86_64
Windowing System: Wayland
Distribution: "openSUSE Tumbleweed"
DrKonqi: 6.2.2 [CoredumpBackend]

-- Information about the crash:
When attempting to edit a System Monitor widget on a panel, removing a sensor will cause plasmashell to crash.

Example:

System Monitor widget set to monitor CPU values (custom options selected - not default).

Style set to Text Only.

Under sensor details if I attempt to add/edit and save a sensor that I have added it will allow you to "OK" or "Apply" or "Cancel" the changes you are making. If I attempt to remove a sensor by clicking the red X next to the sensor the configuration window freezes and does not allow any edits to be made. This is due to plasmashell crashing as reported by the Crash Handler.

I have tested this with other sensors I have set up to monitor different system resources (GPU, Memory, Network) and the end result is the same.

The crash can be reproduced every time.

-- Backtrace (Reduced):
#4  0x00007f46b82c8790 in QSGThreadedRenderLoop::windowFor (this=0x55a1ffeccc90, window=0x55a20266d330) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/scenegraph/qsgthreadedrenderloop.cpp:108
#5  QSGThreadedRenderLoop::maybeUpdate (this=0x55a1ffeccc90, window=0x55a20266d330) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1409
#6  0x00007f46b804ff51 in QQuickItemPrivate::dirty (this=0x55a21c6cfe40, type=QQuickItemPrivate::Position) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickitem.cpp:6743
#7  0x00007f46b8057660 in QQuickItem::setPosition (this=0x55a21c6cfd50, pos=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickitem.cpp:7256
[...]
#9  0x00007f46b712cab5 in QGridLayoutEngine::setGeometries(QRectF const&, QAbstractLayoutStyleInfo const*) () from /lib64/libQt6Gui.so.6


Reported using DrKonqi
Comment 1 asiletti 2024-11-01 03:10:31 UTC
Created attachment 175428 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Nate Graham 2024-11-01 15:21:45 UTC
Thread 1 (Thread 0x7f46b1e96b00 (LWP 2972)):
[KCrash Handler]
#4  0x00007f46b82c8790 in QSGThreadedRenderLoop::windowFor (this=0x55a1ffeccc90, window=0x55a20266d330) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/scenegraph/qsgthreadedrenderloop.cpp:108
#5  QSGThreadedRenderLoop::maybeUpdate (this=0x55a1ffeccc90, window=0x55a20266d330) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1409
#6  0x00007f46b804ff51 in QQuickItemPrivate::dirty (this=0x55a21c6cfe40, type=QQuickItemPrivate::Position) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickitem.cpp:6743
#7  0x00007f46b8057660 in QQuickItem::setPosition (this=0x55a21c6cfd50, pos=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickitem.cpp:7256
#8  0x00007f46a909c0a8 in ?? () from /lib64/libQt6QuickLayouts.so.6
#9  0x00007f46b712cab5 in QGridLayoutEngine::setGeometries(QRectF const&, QAbstractLayoutStyleInfo const*) () from /lib64/libQt6Gui.so.6
#10 0x00007f46a909cc41 in QQuickGridLayoutBase::rearrange(QSizeF const&) () from /lib64/libQt6QuickLayouts.so.6
#11 0x00007f46a9097032 in QQuickLayout::geometryChange(QRectF const&, QRectF const&) () from /lib64/libQt6QuickLayouts.so.6
#12 0x00007f46b80586df in QQuickItem::setSize (this=0x55a21c6cd0a0, size=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickitem.cpp:7690
#13 0x00007f46b0f1b17d in QQuickControlPrivate::resizeContent() () from /lib64/libQt6QuickTemplates2.so.6
#14 0x00007f46b0f12e3a in QQuickControl::geometryChange(QRectF const&, QRectF const&) () from /lib64/libQt6QuickTemplates2.so.6
#15 0x00007f46b8058006 in QQuickItem::setImplicitHeight (this=0x55a21c6bfaa0, h=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickitem.cpp:7575
#16 0x00007f46b7ab9698 in QQmlPropertyData::writeProperty (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlpropertydata_p.h:336
#17 0x00007f46b7ad619c in GenericBinding<6>::doStore<double> (this=0x55a21c6d1bc0, value=<optimized out>, pd=<optimized out>, flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlbinding.cpp:282
#18 GenericBinding<6>::write (this=0x55a21c6d1bc0, result=..., isUndefined=<optimized out>, flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlbinding.cpp:255
#19 0x00007f46b7ad2abd in QQmlBinding::doUpdate (this=0x55a21c6d1bc0, watcher=..., flags=..., scope=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlbinding.cpp:711
#20 0x00007f46b7ad4744 in QQmlBinding::update (this=0x55a21c6d1bc0, flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlbinding.cpp:165
#21 0x00007f46b7b50e18 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x0) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlnotifier.cpp:70
#22 0x00007f46b660dba8 in doActivate<false> (sender=0x55a21c6bfaa0, signal_index=55, argv=0x0) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:4010
#23 0x00007f46b8054122 in QQuickItemPrivate::notifyChangeListeners<void (QQuickItemChangeListener::*)(QQuickItem*), QQuickItem*> (this=<optimized out>, changeTypes=..., function=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickitem_p.h:357
#24 QQuickItemPrivate::implicitHeightChanged (this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickitem.cpp:7531
#25 0x00007f46b8058295 in QQuickItem::setImplicitSize (this=0x55a21c6cd0a0, w=<optimized out>, h=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickitem.cpp:7606
#26 0x00007f46a90981ed in QQuickLayout::ensureLayoutItemsUpdated(QFlags<QQuickLayout::EnsureLayoutItemsUpdatedOption>) const () from /lib64/libQt6QuickLayouts.so.6
#27 0x00007f46a90989b5 in QQuickGridLayoutBase::componentComplete() () from /lib64/libQt6QuickLayouts.so.6
#28 0x00007f46b7b5fb62 in QQmlObjectCreator::finalize (this=0x55a20565cce0, interrupt=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlobjectcreator.cpp:1579
#29 0x00007f46b7b27c8c in QQmlIncubatorPrivate::incubate (this=this@entry=0x55a21c6bf510, i=...) at /usr/include/qt6/QtCore/qscopedpointer.h:90
#30 0x00007f46b7b286c4 in QQmlEnginePrivate::incubate (this=0x55a1ff46d340, i=..., forContext=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlincubator.cpp:53
#31 0x00007f46b5276471 in QQmlDelegateModelPrivate::object (this=0x55a203a737e0, group=<optimized out>, index=109, incubationMode=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qmlmodels/qqmldelegatemodel.cpp:1286
#32 0x00007f46b835838f in QQuickRepeaterPrivate::requestItems (this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickrepeater.cpp:367
#33 QQuickRepeater::regenerate (this=this@entry=0x55a203a73220) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickrepeater.cpp:361
#34 0x00007f46b8358881 in QQuickRepeater::setModel (this=0x55a203a73220, m=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/quick/items/qquickrepeater.cpp:204
#35 0x00007f46b7ab9698 in QQmlPropertyData::writeProperty (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlpropertydata_p.h:336
#36 0x00007f46b7b6ed1b in QQmlPropertyPrivate::write (object=0x55a203a73220, property=..., value=..., context=..., flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlproperty.cpp:1548
#37 0x00007f46b7ad1ac8 in QQmlBinding::slowWrite (this=<optimized out>, core=..., valueTypeData=..., result=..., isUndefined=<optimized out>, flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlbinding.cpp:550
#38 0x00007f46b7ad5cd8 in GenericBinding<0>::write (this=0x55a203a77dc0, result=..., isUndefined=false, flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlbinding.cpp:275
#39 0x00007f46b7ad2abd in QQmlBinding::doUpdate (this=0x55a203a77dc0, watcher=..., flags=..., scope=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlbinding.cpp:711
#40 0x00007f46b7ad4744 in QQmlBinding::update (this=0x55a203a77dc0, flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlbinding.cpp:165
#41 0x00007f46b7b50e18 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x0) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlnotifier.cpp:70
#42 0x00007f46b660dba8 in doActivate<false> (sender=0x55a203a43e80, signal_index=46, argv=0x0) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:4010
#43 0x00007f46b7a30b90 in QV4::QObjectWrapper::setProperty (engine=engine@entry=0x55a1ff78e400, object=object@entry=0x55a203a43e80, property=0x7f4648c98c60, value=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/qml/qqmlpropertydata_p.h:256
#44 0x00007f46b7a31cbe in QV4::QObjectWrapper::setQmlProperty (engine=engine@entry=0x55a1ff78e400, qmlContext=..., object=0x55a203a43e80, name=name@entry=0x7f46827bf5c8, flags=..., flags@entry=..., value=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/jsruntime/qv4qobjectwrapper.cpp:555
#45 0x00007f46b7a31e4a in QV4::QObjectWrapper::virtualPut (m=0x7f46827bf5b8, id=..., value=..., receiver=0x7f46827bf5b8) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/jsruntime/qv4qobjectwrapper.cpp:953
#46 0x00007f46b7a07d2d in QV4::Object::put (receiver=0x7f46827bf5b8, this=0x7f46827bf5b8, name=<optimized out>, v=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/jsruntime/qv4string_p.h:140
#47 QV4::Lookup::setterFallback (l=<optimized out>, engine=0x55a1ff78e400, object=..., value=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.8.0/src/qml/jsruntime/qv4lookup.cpp:593
#48 0x00007f46475f3827 in ?? ()
#49 0x000055a203a43770 in ?? ()
#50 0x0000000000000010 in ?? ()
#51 0x000055a1ff78e400 in ?? ()
#52 0x0000000000000000 in ?? ()
Comment 3 Nate Graham 2024-11-01 15:23:05 UTC
Cannot reproduce the issue with those steps.
Comment 4 Akseli Lahtinen 2025-01-29 10:09:48 UTC
I can't get my system to freeze, but it certainly is super slow.

1. Add empty system monitor sensor to panel
2. Set it to text only
3. Go to sensor details
4. In sensors, click CPUs, [Group] CPU, [Group] Total Usage (%)
5. Click ok
6. Open settings again
7. Remove one sensor from the sensors list

This is where plasma for me has a noticeable slowdown, but only if I remove the first item in the list. The last item doesn't have slow down. I have 12 core total usage sensors in total in mine. The less items there are, the less the slowdown lasts.

Operating System: Fedora Linux 41
KDE Plasma Version: 6.3.80
KDE Frameworks Version: 6.11.0
Qt Version: 6.8.1
Kernel Version: 6.12.10-200.fc41.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 3600 6-Core Processor
Memory: 15.5 GiB of RAM
Graphics Processor: AMD Radeon RX 6600
Comment 5 Lenzoid 2025-04-19 11:41:21 UTC
(In reply to Akseli Lahtinen from comment #4)
> I can't get my system to freeze, but it certainly is super slow.
> 
> 1. Add empty system monitor sensor to panel
> 2. Set it to text only
> 3. Go to sensor details
> 4. In sensors, click CPUs, [Group] CPU, [Group] Total Usage (%)
> 5. Click ok
> 6. Open settings again
> 7. Remove one sensor from the sensors list

Thanks for your for your precise steps to reproduce. I have been griefed by this exact issue a couple of weeks back, but I cannot reproduce it anymore, neither on Plasma 6.3.4 (KDE Framework 6.14.0) nor on development version, Plasma 6.3.80 (both KDE Frameworks 6.14.0.

Seems to be fixed for me.

To the design and devs: The customizability and intuitive design btw is amazing. Great job.
Comment 6 Akseli Lahtinen 2025-04-23 10:11:04 UTC
Looks like it's fixed, closing.