Bug 510959 - Plasma "cpu usage" Pie chart applet on desktop crashes when changing sensor color
Summary: Plasma "cpu usage" Pie chart applet on desktop crashes when changing sensor c...
Status: RESOLVED UPSTREAM
Alias: None
Product: plasmashell
Classification: Plasma
Component: System Monitor widgets (other bugs)
Version First Reported In: 6.5.0
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi, qt-crash
Depends on:
Blocks:
 
Reported: 2025-10-23 13:04 UTC by Alex G
Modified: 2025-10-23 16:06 UTC (History)
3 users (show)

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


Attachments
New crash information added by DrKonqi (98.25 KB, text/plain)
2025-10-23 13:04 UTC, Alex G
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alex G 2025-10-23 13:04:05 UTC
Application: plasmashell (6.5.0)
 (Compiled from sources)
ApplicationNotResponding [ANR]: false
Qt Version: 6.9.3
Frameworks Version: 6.19.0
Operating System: Linux 6.17.4-gentoo-x86_64 x86_64
Windowing System: X11
Distribution: "Gentoo Linux"
DrKonqi: 6.3.6 [CoredumpBackend]

-- Information about the crash:
Configuring (adding, removing) sensors for a pie chart applet (plasmoid) placed on the desktop.  QML javascript error causes the plsmashell to restart.  The error appears intermittent.

The crash can be reproduced sometimes.

-- Backtrace (Reduced):
#4  QV4::Heap::Base::mark (this=0x7fdf8ac9e980, markStack=0x5627f6738b60) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4heap_p.h:147
#5  0x00007fe08b585be0 in QV4::Lookup::markObjects (this=0x5627f29216c0, stack=0x5627f6738b60) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/jsruntime/qv4lookup_p.h:267
#6  QV4::ExecutableCompilationUnit::markObjects (this=0x5627f36658d0, markStack=0x5627f6738b60) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/jsruntime/qv4executablecompilationunit.cpp:303
#7  0x00007fe08b677c7f in QV4::ExecutionEngine::markObjects (this=<optimized out>, markStack=0x5627f6738b60) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/jsruntime/qv4engine.cpp:1342
#9  0x00007fe08b487010 in QV4::GCStateMachine::transition (this=0x5627f083b110) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm.cpp:1567


Reported using DrKonqi
Comment 1 Alex G 2025-10-23 13:04:06 UTC
Created attachment 186040 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Alex G 2025-10-23 14:41:20 UTC
To reproduce:
1. Place a pie chart on the desktop.
2. Add  "total usage" and "average CPU temperature" sensors.
3. Click on colour-box of "CPU temp" sensor to bring up the colour palette selector.
4. Choose a different colour, click apply.
5. Crash, but not always. Sometimes it works.

Doing this also produced strange behaviour with the configuration of other sensors running other panels -- their sensor configs were cleared. The applet was still there, but the the "Sensor" list was empty.

This is probably a plasma desktop config file(s) related bug.
Comment 3 Nate Graham 2025-10-23 16:02:30 UTC
Full backtrace of the crashing thread for searchability:


Thread 1 (Thread 0x7fe086f73b80 (LWP 618042)):
[KCrash Handler]
#4  QV4::Heap::Base::mark (this=0x7fdf8ac9e980, markStack=0x5627f6738b60) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4heap_p.h:147
#5  0x00007fe08b585be0 in QV4::Lookup::markObjects (this=0x5627f29216c0, stack=0x5627f6738b60) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/jsruntime/qv4lookup_p.h:267
#6  QV4::ExecutableCompilationUnit::markObjects (this=0x5627f36658d0, markStack=0x5627f6738b60) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/jsruntime/qv4executablecompilationunit.cpp:303
#7  0x00007fe08b677c7f in QV4::ExecutionEngine::markObjects (this=<optimized out>, markStack=0x5627f6738b60) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/jsruntime/qv4engine.cpp:1342
#8  0x00007fe08b47a12e in QV4::(anonymous namespace)::markGlobalObject (that=<optimized out>) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm.cpp:690
#9  0x00007fe08b487010 in QV4::GCStateMachine::transition (this=0x5627f083b110) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm.cpp:1567
#10 0x00007fe08b4b141f in QV4::GCStateMachine::step (this=<optimized out>) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm_p.h:89
#11 QV4::MemoryManager::runGC (this=this@entry=0x5627f24dcec0) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm.cpp:1289
#12 0x00007fe08b4c0489 in QV4::MemoryManager::runGC (this=0x5627f24dcec0) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm.cpp:1277
#13 QV4::MemoryManager::allocate (this=0x5627f24dcec0, allocator=0x5627f24dced0, size=96) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm_p.h:409
#14 QV4::MemoryManager::allocData (this=0x5627f24dcec0, size=96) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm.cpp:1011
#15 QV4::MemoryManager::allocObjectWithMemberData (this=this@entry=0x5627f24dcec0, vtable=vtable@entry=0x7fe08b84fe00 <QV4::QQmlValueTypeWrapper::static_vtbl>, nMembers=<optimized out>) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm.cpp:1023
#16 0x00007fe08b2ef9c3 in QV4::MemoryManager::allocateObject<QV4::QQmlValueTypeWrapper> (this=0x5627f24dcec0, ic=<optimized out>) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/qml/qqmlvaluetypewrapper_p.h:100
#17 QV4::MemoryManager::allocateObject<QV4::QQmlValueTypeWrapper> (this=0x5627f24dcec0, ic=0x7fe00c52c5b0) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm_p.h:270
#18 QV4::MemoryManager::allocateObject<QV4::QQmlValueTypeWrapper> (this=0x5627f24dcec0) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm_p.h:280
#19 QV4::MemoryManager::allocate<QV4::QQmlValueTypeWrapper, void const*&, QMetaType&, QMetaObject const*&, QV4::Heap::Object*&, int&, QFlags<QV4::Heap::ReferenceObject::Flag>&> (this=0x5627f24dcec0) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/memory/qv4mm_p.h:313
#20 QV4::QQmlValueTypeWrapper::create (engine=engine@entry=0x7fdfb07642b0, data=data@entry=0x0, metaObject=0x7fe08c179e80 <QQuickColorValueType::staticMetaObject>, type=..., object=<optimized out>, property=<optimized out>, flags=...) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/qml/qqmlvaluetypewrapper.cpp:194
#21 0x00007fe08b54f6fb in QV4::loadProperty (v4=<optimized out>, wrapper=<optimized out>, object=0x5627f1357840, property=...) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/qml/qqmlpropertydata_p.h:264
#22 0x00007fe08b554040 in QV4::QObjectWrapper::getQmlProperty (engine=engine@entry=0x7fdfb07642b0, qmlContext=..., wrapper=0x7fdfb5dfff60, object=<optimized out>, name=0x7fe00c52c5a0, flags=..., flags@entry=..., hasProperty=0x0, property=0x0) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/jsruntime/qv4qobjectwrapper.cpp:530
#23 0x00007fe08b72a4ee in QV4::QQmlTypeWrapper::virtualGet (m=0x7fe00c52c590, id=..., receiver=0x7fe00c52c590, hasProperty=0x0) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/qml/qqmltypewrapper_p.h:107
#24 0x00007fe08b521242 in QV4::Object::get (this=<optimized out>, name=<optimized out>, hasProperty=0x0, receiver=<optimized out>) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/jsruntime/qv4string_p.h:140
#25 QV4::Lookup::getterFallback (lookup=0x5627f45b0380, engine=0x7fdfb07642b0, object=<optimized out>) at /usr/src/debug/dev-qt/qtdeclarative-6.9.3-r1/qtdeclarative-everywhere-src-6.9.3/src/qml/jsruntime/qv4lookup.cpp:241
#26 0x00007fe03d716750 in ??? ()
#27 0x0000000000000000 in ??? ()
Comment 4 Nate Graham 2025-10-23 16:06:12 UTC
I can't immediately reproduce the crash with Qt 6.10. Given that the backtrace is entirely in Qt, which is going to be a Qt issue.

Can you re-open this if you still encounter it at all with Qt 6.10 or later? Thanks a lot!