Bug 504652 - Easily repoducible plasmashell crash in PlasmaQuick::ConfigView::~ConfigView() when closing system monitor widget config dialog
Summary: Easily repoducible plasmashell crash in PlasmaQuick::ConfigView::~ConfigView(...
Status: CONFIRMED
Alias: None
Product: plasmashell
Classification: Plasma
Component: System Monitor widgets (other bugs)
Version First Reported In: 6.3.5
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2025-05-22 07:02 UTC by cwo
Modified: 2025-08-26 23:32 UTC (History)
3 users (show)

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


Attachments
New crash information added by DrKonqi (346.51 KB, text/plain)
2025-05-22 07:02 UTC, cwo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description cwo 2025-05-22 07:02:54 UTC
Application: plasmashell (6.3.5)

ApplicationNotResponding [ANR]: false
Qt Version: 6.9.0
Frameworks Version: 6.13.0
Operating System: Linux 6.14.5-300.fc42.x86_64 x86_64
Windowing System: Wayland
Distribution: "Fedora Linux 42 (KDE Plasma Desktop Edition)"
DrKonqi: 6.3.5 [CoredumpBackend]

-- Information about the crash:
Simple steps to reproduce:

1. Add System Monitor widget
2. Open config dialog (Appearance page tab)
3. Click "Load Preset…" button (NB: the dialog is super tiny)
4. Close the config dialog window with the preset dialog overlay open -> boom

This report is from Fedora packages, but the same thing happens on master (but my drkonqi there is broken and fails at doing the backtrace).

Looks like the destruction order is wrong and the Popup tries to access already destroyed things.

I originally noticed this while trying ot fix the tiny dialog (which is due to Kirigami.Dialog magic), but my attempts to fix this also caused slightly different (and even more easily triggered) crashes.

The crash can be reproduced every time.

-- Backtrace (Reduced):
#5  QQmlPropertyCache::propertyCount (this=0x0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlpropertycache_p.h:439
#6  QQmlPropertyCache::property (this=0x0, index=10) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlpropertycache_p.h:337
#7  QQmlInterceptorMetaObject::doIntercept (this=0x556f6babfab0, c=QMetaObject::WriteProperty, id=10, a=0x7ffe2fd13fb0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlvmemetaobject.cpp:312
#8  0x00007fa7d23eb19d in QQmlInterceptorMetaObject::intercept (this=0x556f6babfab0, c=QMetaObject::WriteProperty, id=10, a=0x7ffe2fd13fb0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlvmemetaobject_p.h:154
#9  QQmlVMEMetaObject::metaCall (this=0x556f6babfab0, o=<optimized out>, c=QMetaObject::WriteProperty, _id=10, a=0x7ffe2fd13fb0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlvmemetaobject.cpp:741


Reported using DrKonqi
Comment 1 cwo 2025-05-22 07:02:56 UTC
Created attachment 181642 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 cwo 2025-05-22 07:05:53 UTC
I suspect this is the same underlying cause as bug 477541
Comment 3 Nate Graham 2025-05-22 15:14:13 UTC
Yep, can reproduce.
Comment 4 Nate Graham 2025-08-26 23:32:38 UTC
Searchable backtrace:

#5  QQmlPropertyCache::propertyCount (this=0x0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlpropertycache_p.h:439
#6  QQmlPropertyCache::property (this=0x0, index=10) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlpropertycache_p.h:337
#7  QQmlInterceptorMetaObject::doIntercept (this=0x556f6babfab0, c=QMetaObject::WriteProperty, id=10, a=0x7ffe2fd13fb0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlvmemetaobject.cpp:312
#8  0x00007fa7d23eb19d in QQmlInterceptorMetaObject::intercept (this=0x556f6babfab0, c=QMetaObject::WriteProperty, id=10, a=0x7ffe2fd13fb0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlvmemetaobject_p.h:154
#9  QQmlVMEMetaObject::metaCall (this=0x556f6babfab0, o=<optimized out>, c=QMetaObject::WriteProperty, _id=10, a=0x7ffe2fd13fb0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlvmemetaobject.cpp:741
#10 0x00007fa7d2339b71 in QQmlPropertyData::doMetacall<(QMetaObject::Call)2> (this=0x556f6c1dc9a0, object=0x7ffe2fd13e78, idx=<optimized out>, argv=0x7ffe2fd13fb0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlpropertydata_p.h:367
#11 QQmlPropertyData::writeProperty (this=this@entry=0x556f6c1dc9a0, target=target@entry=0x556f6bae8e90, value=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlpropertydata_p.h:387
#12 0x00007fa7d233fb13 in QQmlPropertyPrivate::write (object=0x556f6bae8e90, property=..., value=..., context=..., flags=...) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlproperty.cpp:1515
#13 0x00007fa7d2344272 in QQmlPropertyPrivate::writeValueProperty (object=<optimized out>, core=<optimized out>, valueTypeData=<optimized out>, value=..., context=<optimized out>, flags=...) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlproperty.cpp:1306
#14 0x00007fa7d23442e0 in QQmlPropertyPrivate::writeValueProperty (this=0x556f6c1dc970, value=..., flags=...) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlproperty.cpp:1251
#15 0x00007fa7d23443c2 in QQmlPropertyPrivate::write (that=..., value=..., flags=..., flags@entry=...) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlproperty.cpp:1855
#16 0x00007fa7d23443db in QQmlProperty::write (this=this@entry=0x7ffe2fd14240, value=...) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlproperty.cpp:1771
#17 0x00007fa7d2344428 in QQmlProperty::write (object=<optimized out>, name=..., value=...) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlproperty.cpp:1788
#18 0x00007fa7bba6d33d in QQuickPopupPrivate::hideDimmer (this=<optimized out>) at /usr/include/c++/15/utility:114
#19 QQuickPopupPrivate::hideDimmer (this=0x556f6d19d2c0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/quicktemplates/qquickpopup.cpp:1268
#20 0x00007fa7bba6cd9b in QQuickPopupPrivate::prepareExitTransition (this=0x556f6d19d2c0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/quicktemplates/qquickpopup.cpp:816
#21 0x00007fa7bba6fa6d in QQuickPopupTransitionManager::transitionExit (this=0x556f6d19d448) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/quicktemplates/qquickpopup.cpp:1308
#22 0x00007fa7bba71d4a in QQuickPopup::setParentItem (this=0x556f6c2400d0, parent=0x0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/quicktemplates/qquickpopup.cpp:2162
#23 0x00007fa7d28af0d4 in QQuickItemPrivate::notifyChangeListeners<void (QQuickItemChangeListener::*)(QQuickItem*), QQuickItem*> (this=0x556f6d1e5800, changeTypes=..., function=<optimized out>) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/quick/items/qquickitem_p.h:412
#24 QQuickItem::~QQuickItem (this=this@entry=0x556f6c2dc440) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/quick/items/qquickitem.cpp:2411
#25 0x00007fa7d2b35ac1 in QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement (this=0x556f6c2dc440) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlprivate.h:104
#26 QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement (this=0x556f6c2dc440) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlprivate.h:104
#27 0x00007fa7d0f57a02 in QObjectPrivate::deleteChildren (this=this@entry=0x556f6c28e9a0) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:2223
#28 0x00007fa7d0f5c7d4 in QObject::~QObject (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:1140
#29 0x00007fa7b837d2a5 in KSysGuard::SensorFaceController::~SensorFaceController (this=0x556f6c3e07e0, this=<optimized out>) at /usr/src/debug/libksysguard-6.3.5-1.fc42.x86_64/faces/SensorFaceController.cpp:436
#30 0x00007fa7d0f57a02 in QObjectPrivate::deleteChildren (this=this@entry=0x556f6aaa46b0) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:2223
#31 0x00007fa7d0f5c7d4 in QObject::~QObject (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:1140
#32 0x00007fa7d22acc15 in QQmlEngine::~QQmlEngine (this=0x556f656fbce0) at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/qml/qml/qqmlengine.cpp:559
#33 0x00007fa7d0f57a02 in QObjectPrivate::deleteChildren (this=this@entry=0x556f6a90cd90) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:2223
#34 0x00007fa7d0f5c7d4 in QObject::~QObject (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:1140
#35 0x00007fa7d3eaaec5 in PlasmaQuick::ConfigView::~ConfigView (this=0x556f666dc360, this=<optimized out>) at /usr/src/debug/libplasma-6.3.5-1.fc42.x86_64/src/plasmaquick/configview.cpp:301
#36 0x00007fa7d0f50eec in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:1416
#37 0x00007fa7d323d7af in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x556f666dc360, e=0x556f68329bf0) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/widgets/kernel/qapplication.cpp:3301
#38 0x00007fa7d0ef5fa8 in QCoreApplication::notifyInternal2 (receiver=0x556f666dc360, event=0x556f68329bf0) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1106
#39 0x00007fa7d0ef620d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1546
#40 0x00007fa7d0ef9cd6 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x556f62c9ed40) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1879
#41 0x00007fa7d11ffd2f in postEventSourceDispatch (s=0x556f62ca6f80) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#42 0x00007fa7cf95f040 in g_main_dispatch (context=0x7fa7b4000f00) at ../glib/gmain.c:3398
#43 g_main_context_dispatch_unlocked (context=0x7fa7b4000f00) at ../glib/gmain.c:4249
#44 0x00007fa7cf968128 in g_main_context_iterate_unlocked (context=context@entry=0x7fa7b4000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4314
#45 0x00007fa7cf9682d3 in g_main_context_iteration (context=0x7fa7b4000f00, may_block=1) at ../glib/gmain.c:4379
#46 0x00007fa7d11ff56d in QEventDispatcherGlib::processEvents (this=0x556f62ca7c00, flags=...) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#47 0x00007fa7d0f03783 in QEventLoop::exec (this=this@entry=0x7ffe2fd14bd0, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/global/qflags.h:77
#48 0x00007fa7d0eff229 in QCoreApplication::exec () at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1449
#49 0x00007fa7d16dac3d in QGuiApplication::exec () at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/gui/kernel/qguiapplication.cpp:1993
#50 0x00007fa7d323d719 in QApplication::exec () at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/widgets/kernel/qapplication.cpp:2568
#51 0x0000556f6047eb24 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-6.3.5-1.fc42.x86_64/shell/main.cpp:191