Bug 484689

Summary: plasmashell crashes in PlasmaQuick::ContainmentView::containment when applying global theme
Product: [Plasma] plasmashell Reporter: Nicolas Fella <nicolas.fella>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs>
Status: REPORTED ---    
Severity: crash CC: nate
Priority: NOR    
Version: master   
Target Milestone: 1.0   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Nicolas Fella 2024-03-29 00:09:21 UTC
- Apply Breeze LnF in settings
- include "desktop and window layout"

==8271==ERROR: AddressSanitizer: heap-use-after-free on address 0x50600042bc78 at pc 0x7f1fa56cd43e bp 0x7fff355163e0 sp 0x7fff355163d8
READ of size 8 at 0x50600042bc78 thread T0
    #0 0x7f1fa56cd43d in QWeakPointer<QObject>::internalData() const /home/nico/kde/usr/include/QtCore/qsharedpointer_impl.h:704
    #1 0x7f1fa56cd43d in QPointer<Plasma::Containment>::data() const /home/nico/kde/usr/include/QtCore/qpointer.h:71
    #2 0x7f1fa56cd43d in QPointer<Plasma::Containment>::operator Plasma::Containment*() const /home/nico/kde/usr/include/QtCore/qpointer.h:79
    #3 0x7f1fa56cd43d in PlasmaQuick::ContainmentView::containment() const /home/nico/kde/src/libplasma/src/plasmaquick/containmentview.cpp:270
    #4 0x4c026d in operator() /home/nico/kde/src/plasma-workspace/shell/panelview.cpp:102
    #5 0x4c026d in call /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:137
    #6 0x4c026d in call<QtPrivate::List<>, void> /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:339
    #7 0x4c026d in impl /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:522
    #8 0x7f1f9be4ad2f in void doActivate<false>(QObject*, int, void**) (/home/nico/kde/usr/lib64/libQt6Core.so.6+0x44ad2f) (BuildId: ee58fd2c88c08e39dd1ea6c22fdfbc1b31b07dc1)
    #9 0x7f1f9be2aba7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4081
    #10 0x7f1fa0fae5e5 in QQuickWindow::activeFocusItemChanged() /home/nico/workspace/qt6/qtdeclarative/src/quick/Quick_autogen/include/moc_qquickwindow.cpp:901
    #11 0x7f1fa0fbb04c in QQuickWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/nico/workspace/qt6/qtdeclarative/src/quick/Quick_autogen/include/moc_qquickwindow.cpp:587
    #12 0x7f1f9be4b175 in void doActivate<false>(QObject*, int, void**) (/home/nico/kde/usr/lib64/libQt6Core.so.6+0x44b175) (BuildId: ee58fd2c88c08e39dd1ea6c22fdfbc1b31b07dc1)
    #13 0x7f1f9be2aba7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4081
    #14 0x7f1f9d514c6d in QWindow::focusObjectChanged(QObject*) /home/nico/workspace/qt6/qtbase/src/gui/Gui_autogen/include/moc_qwindow.cpp:1225
    #15 0x7f1fa125713c in QQuickDeliveryAgentPrivate::clearFocusInScope(QQuickItem*, QQuickItem*, Qt::FocusReason, QFlags<QQuickDeliveryAgentPrivate::FocusOption>) /home/nico/workspace/qt6/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:543
    #16 0x7f1fa0d9cd27 in QQuickItem::setParentItem(QQuickItem*) /home/nico/workspace/qt6/qtdeclarative/src/quick/items/qquickitem.cpp:2670
    #17 0x7f1fa0d9d9ba in QQuickItem::~QQuickItem() /home/nico/workspace/qt6/qtdeclarative/src/quick/items/qquickitem.cpp:2318
    #18 0x7f1fa13b2800 in QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() /home/nico/workspace/qt6/qtdeclarative/src/qml/qml/qqmlprivate.h:99
    #19 0x7f1fa13b2828 in QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() /home/nico/workspace/qt6/qtdeclarative/src/qml/qml/qqmlprivate.h:99
    #20 0x7f1fa5715f28 in PlasmaQuick::SharedQmlEngine::~SharedQmlEngine() /home/nico/kde/src/libplasma/src/plasmaquick/sharedqmlengine.cpp:153
    #21 0x7f1fa57160a0 in PlasmaQuick::SharedQmlEngine::~SharedQmlEngine() /home/nico/kde/src/libplasma/src/plasmaquick/sharedqmlengine.cpp:155
    #22 0x7f1fa571996c in PlasmaQuick::QuickViewSharedEngine::~QuickViewSharedEngine() /home/nico/kde/src/libplasma/src/plasmaquick/quickviewsharedengine.cpp:125
    #23 0x7f1fa56c9be5 in PlasmaQuick::ContainmentView::~ContainmentView() /home/nico/kde/src/libplasma/src/plasmaquick/containmentview.cpp:231
    #24 0x4cd5df in PanelView::~PanelView() /home/nico/kde/src/plasma-workspace/shell/panelview.cpp:133
    #25 0x4cd6b0 in PanelView::~PanelView() /home/nico/kde/src/plasma-workspace/shell/panelview.cpp:133
    #26 0x5387d5 in ShellCorona::unload() /home/nico/kde/src/plasma-workspace/shell/shellcorona.cpp:946
    #27 0x55ddd3 in ShellCorona::unload() /home/nico/kde/src/plasma-workspace/shell/shellcorona.cpp:683
    #28 0x55ddd3 in ShellCorona::loadLookAndFeelDefaultLayout(QString const&) /home/nico/kde/src/plasma-workspace/shell/shellcorona.cpp:679
    #29 0x6d6d0f in PlasmaShellAdaptor::loadLookAndFeelDefaultLayout(QString const&) /home/nico/kde/build/plasma-workspace/shell/plasmashelladaptor.cpp:75
    #30 0x6d6d0f in PlasmaShellAdaptor::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/nico/kde/build/plasma-workspace/shell/moc_plasmashelladaptor.cpp:345
    #31 0x6d7873 in PlasmaShellAdaptor::qt_metacall(QMetaObject::Call, int, void**) /home/nico/kde/build/plasma-workspace/shell/moc_plasmashelladaptor.cpp:415
    #32 0x7f1f9ecb3846 in QDBusConnectionPrivate::deliverCall(QObject*, int, QDBusMessage const&, QList<QMetaType> const&, int) /home/nico/workspace/qt6/qtbase/src/dbus/qdbusintegrator.cpp:967
    #33 0x7f1f9ecbba78 in QDBusConnectionPrivate::activateCall(QObject*, int, QDBusMessage const&) /home/nico/workspace/qt6/qtbase/src/dbus/qdbusintegrator.cpp:869
    #34 0x7f1f9ecbcdc2 in QDBusConnectionPrivate::activateObject(QDBusConnectionPrivate::ObjectTreeNode&, QDBusMessage const&, int) /home/nico/workspace/qt6/qtbase/src/dbus/qdbusintegrator.cpp:1450
    #35 0x7f1f9ecc50e1 in QDBusActivateObjectEvent::placeMetaCall(QObject*) /home/nico/workspace/qt6/qtbase/src/dbus/qdbusintegrator.cpp:1570
    #36 0x7f1f9be312f5 in QObject::event(QEvent*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:1437
    #37 0x7f1fa2c73811 in QApplicationPrivate::notify_helper(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3296
    #38 0x7f1fa2c8f107 in QApplication::notify(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3247
    #39 0x7f1f9bd48f9f in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1121
    #40 0x7f1f9bd4911e in QCoreApplication::sendEvent(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1539
    #41 0x7f1f9bd4a451 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1901
    #42 0x7f1f9bd4a746 in QCoreApplication::sendPostedEvents(QObject*, int) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1760
    #43 0x7f1f9c4c0c8f in postEventSourceDispatch /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:243
    #44 0x7f1f9ab1270f in g_main_dispatch ../glib/gmain.c:3344
    #45 0x7f1f9ab1270f in g_main_context_dispatch_unlocked ../glib/gmain.c:4152
    #46 0x7f1f9ab14357 in g_main_context_iterate_unlocked ../glib/gmain.c:4217
    #47 0x7f1f9ab14a0b in g_main_context_iteration ../glib/gmain.c:4282
    #48 0x7f1f9c4bf21f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:393
    #49 0x7f1f9e163375 in QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/nico/workspace/qt6/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:87
    #50 0x7f1f9bd66453 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventloop.cpp:100
    #51 0x7f1f9bd67837 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventloop.cpp:182
    #52 0x7f1f9bd510a0 in QCoreApplication::exec() /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1442
    #53 0x7f1f9d3d6fc5 in QGuiApplication::exec() /home/nico/workspace/qt6/qtbase/src/gui/kernel/qguiapplication.cpp:1925
    #54 0x7f1fa2c72ea6 in QApplication::exec() /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:2574
    #55 0x42f6d5 in main /home/nico/kde/src/plasma-workspace/shell/main.cpp:211
    #56 0x7f1f9b22a1ef in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #57 0x7f1f9b22a2b8 in __libc_start_main_impl ../csu/libc-start.c:360
    #58 0x430af4 in _start ../sysdeps/x86_64/start.S:115

0x50600042bc78 is located 24 bytes inside of 56-byte region [0x50600042bc60,0x50600042bc98)
freed by thread T0 here:
    #0 0x7f1fa62fd0d8 in operator delete(void*, unsigned long) ../../../../libsanitizer/asan/asan_new_delete.cpp:164
    #1 0x7f1fa56c9bdd in PlasmaQuick::ContainmentView::~ContainmentView() /home/nico/kde/src/libplasma/src/plasmaquick/containmentview.cpp:230
    #2 0x4cd5df in PanelView::~PanelView() /home/nico/kde/src/plasma-workspace/shell/panelview.cpp:133
    #3 0x4cd6b0 in PanelView::~PanelView() /home/nico/kde/src/plasma-workspace/shell/panelview.cpp:133
    #4 0x5387d5 in ShellCorona::unload() /home/nico/kde/src/plasma-workspace/shell/shellcorona.cpp:946
    #5 0x55ddd3 in ShellCorona::unload() /home/nico/kde/src/plasma-workspace/shell/shellcorona.cpp:683
    #6 0x55ddd3 in ShellCorona::loadLookAndFeelDefaultLayout(QString const&) /home/nico/kde/src/plasma-workspace/shell/shellcorona.cpp:679
    #7 0x6d6d0f in PlasmaShellAdaptor::loadLookAndFeelDefaultLayout(QString const&) /home/nico/kde/build/plasma-workspace/shell/plasmashelladaptor.cpp:75
    #8 0x6d6d0f in PlasmaShellAdaptor::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/nico/kde/build/plasma-workspace/shell/moc_plasmashelladaptor.cpp:345
    #9 0x6d7873 in PlasmaShellAdaptor::qt_metacall(QMetaObject::Call, int, void**) /home/nico/kde/build/plasma-workspace/shell/moc_plasmashelladaptor.cpp:415
    #10 0x7f1f9ecb3846 in QDBusConnectionPrivate::deliverCall(QObject*, int, QDBusMessage const&, QList<QMetaType> const&, int) /home/nico/workspace/qt6/qtbase/src/dbus/qdbusintegrator.cpp:967
    #11 0x7f1f9ecbba78 in QDBusConnectionPrivate::activateCall(QObject*, int, QDBusMessage const&) /home/nico/workspace/qt6/qtbase/src/dbus/qdbusintegrator.cpp:869
    #12 0x7f1f9ecbcdc2 in QDBusConnectionPrivate::activateObject(QDBusConnectionPrivate::ObjectTreeNode&, QDBusMessage const&, int) /home/nico/workspace/qt6/qtbase/src/dbus/qdbusintegrator.cpp:1450
    #13 0x7f1f9ecc50e1 in QDBusActivateObjectEvent::placeMetaCall(QObject*) /home/nico/workspace/qt6/qtbase/src/dbus/qdbusintegrator.cpp:1570
    #14 0x7f1f9be312f5 in QObject::event(QEvent*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:1437
    #15 0x7f1fa2c73811 in QApplicationPrivate::notify_helper(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3296
    #16 0x7f1fa2c8f107 in QApplication::notify(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3247
    #17 0x7f1f9bd48f9f in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1121
    #18 0x7f1f9bd4911e in QCoreApplication::sendEvent(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1539
    #19 0x7f1f9bd4a451 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1901
    #20 0x7f1f9bd4a746 in QCoreApplication::sendPostedEvents(QObject*, int) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1760
    #21 0x7f1f9c4c0c8f in postEventSourceDispatch /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:243
    #22 0x7f1f9ab1270f in g_main_dispatch ../glib/gmain.c:3344
    #23 0x7f1f9ab1270f in g_main_context_dispatch_unlocked ../glib/gmain.c:4152

previously allocated by thread T0 here:
    #0 0x7f1fa62fc1d8 in operator new(unsigned long) ../../../../libsanitizer/asan/asan_new_delete.cpp:95
    #1 0x7f1fa56ce4f7 in PlasmaQuick::ContainmentView::ContainmentView(Plasma::Corona*, QWindow*) /home/nico/kde/src/libplasma/src/plasmaquick/containmentview.cpp:202
    #2 0x4dfd72 in PanelView::PanelView(ShellCorona*, QScreen*, QWindow*) /home/nico/kde/src/plasma-workspace/shell/panelview.cpp:63
    #3 0x5453ce in ShellCorona::createWaitingPanels() /home/nico/kde/src/plasma-workspace/shell/shellcorona.cpp:1511
    #4 0x59f74a in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (ShellCorona::*)()>::call(void (ShellCorona::*)(), ShellCorona*, void**) /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:145
    #5 0x59f74a in void QtPrivate::FunctionPointer<void (ShellCorona::*)()>::call<QtPrivate::List<>, void>(void (ShellCorona::*)(), ShellCorona*, void**) /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:182
    #6 0x59f74a in QtPrivate::QCallableObject<void (ShellCorona::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:520
    #7 0x7f1f9be4ad2f in void doActivate<false>(QObject*, int, void**) (/home/nico/kde/usr/lib64/libQt6Core.so.6+0x44ad2f) (BuildId: ee58fd2c88c08e39dd1ea6c22fdfbc1b31b07dc1)
    #8 0x7f1f9be2aba7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4081
    #9 0x7f1f9be7d072 in QTimer::timeout(QTimer::QPrivateSignal) /home/nico/workspace/qt6/qtbase/src/corelib/Core_autogen/include/moc_qtimer.cpp:276
    #10 0x7f1f9be7d9fc in QTimer::timerEvent(QTimerEvent*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qtimer.cpp:252
    #11 0x7f1f9be310b5 in QObject::event(QEvent*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:1414
    #12 0x7f1fa2c73811 in QApplicationPrivate::notify_helper(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3296
    #13 0x7f1fa2c8f107 in QApplication::notify(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3247
    #14 0x7f1f9bd48f9f in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1121
    #15 0x7f1f9bd4911e in QCoreApplication::sendEvent(QObject*, QEvent*) /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1539
    #16 0x7f1f9c1b57b7 in QTimerInfoList::activateTimers() /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:507
    #17 0x7f1f9c4be8b1 in timerSourceDispatch /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:149
    #18 0x7f1f9c4be915 in idleTimerSourceDispatch /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:196
    #19 0x7f1f9ab1270f in g_main_dispatch ../glib/gmain.c:3344
    #20 0x7f1f9ab1270f in g_main_context_dispatch_unlocked ../glib/gmain.c:4152

SUMMARY: AddressSanitizer: heap-use-after-free /home/nico/kde/usr/include/QtCore/qsharedpointer_impl.h:704 in QWeakPointer<QObject>::internalData() const

SOFTWARE/OS VERSIONS
KDE Plasma Version: master
KDE Frameworks Version: master
Qt Version: 6.7

ADDITIONAL INFORMATION
Comment 1 Nate Graham 2024-06-26 13:35:16 UTC

*** This bug has been marked as a duplicate of bug 477941 ***