Bug 478059 - Crash in PlasmaTheme (QQuickItem::visibleChanged)
Summary: Crash in PlasmaTheme (QQuickItem::visibleChanged)
Status: RESOLVED FIXED
Alias: None
Product: libplasma
Classification: Frameworks and Libraries
Component: libplasma (show other bugs)
Version: 5.246.0
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2023-12-04 16:35 UTC by Fushan Wen
Modified: 2024-04-04 21:33 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.0.4


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fushan Wen 2023-12-04 16:35:39 UTC
SUMMARY
When I click the widget in the systray, there is a chance to crash plasmashell.

The crash line is likely caused by `connect(parentItem, &QQuickItem::visibleChanged, this, &PlasmaTheme::syncColors);` in 
plasma-framework/src/declarativeimports/kirigamiplasmastyle/plasmatheme.cpp

STEPS TO REPRODUCE
1. 
2. 
3. 

OBSERVED RESULT


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: libplasma at ac872380
Qt Version: 6.6.0

ADDITIONAL INFORMATION
#0  0x00007f56464972a8 in pthread_sigmask@GLIBC_2.2.5 () at /lib64/libc.so.6
#1  0x00007f564643f3ad in sigprocmask () at /lib64/libc.so.6
#2  0x00007f56497f4b8b in KCrash::setCrashHandler(void (*)(int)) () at /lib64/libKF6Crash.so.6
#3  0x00007f56497f6e94 in KCrash::defaultCrashHandler(int) () at /lib64/libKF6Crash.so.6
#4  0x00007f564643f190 in <signal handler called> () at /lib64/libc.so.6
#5  0x00007f56496e9b4e in Plasma::Theme::color(Plasma::Theme::ColorRole, Plasma::Theme::ColorGroup) const () at /lib64/libPlasma.so.6
#6  0x00007f560e2b9ea8 in  () at /usr/lib64/qt6/plugins/kf6/kirigami/platform/KirigamiPlasmaStyle.so
#7  0x00007f5646ddae13 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffec732f9e8, r=0x7f5634044000, this=0x561463382ba0)
    at /usr/src/debug/qtbase-everywhere-src-6.6.0/build/include/QtCore/../../../src/corelib/kernel/qobjectdefs_impl.h:433
#8  doActivate<false>(QObject*, int, void**) (sender=0x7f56340342c0, signal_index=18, argv=0x7ffec732f9e8)
    at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qobject.cpp:4021
#9  0x00007f5648813438 in QQuickItemPrivate::setEffectiveVisibleRecur(bool) (this=0x7f563403a800, newEffectiveVisible=<optimized out>)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickitem.cpp:6528
#10 0x00007f564881337a in QQuickItemPrivate::setEffectiveVisibleRecur(bool) (this=0x561463907720, newEffectiveVisible=<optimized out>)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickitem.cpp:6518
#11 0x00007f56488098f7 in QQuickItem::setParentItem(QQuickItem*) (this=0x56146690de90, parentItem=<optimized out>)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickitem.cpp:2720
#12 0x00007f5648a70ff8 in QQuickItemViewFxItem::~QQuickItemViewFxItem() (this=0x561463ff7580, this=<optimized out>)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickitemviewfxitem.cpp:31
#13 0x00007f5648a5f2b3 in FxViewItem::~FxViewItem() (this=0x561463ff7580, this=<optimized out>)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickitemview_p_p.h:35
#14 FxGridItemSG::~FxGridItemSG() (this=0x561463ff7580, this=<optimized out>)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickgridview.cpp:26
#15 FxGridItemSG::~FxGridItemSG() (this=0x561463ff7580, this=<optimized out>)
--Type <RET> for more, q to quit, c to continue without paging--c
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickgridview.cpp:26
#16 0x00007f5648a5a141 in std::default_delete<FxViewItem>::operator()(FxViewItem*) const (__ptr=<optimized out>, this=<optimized out>)
    at /usr/include/c++/13/bits/unique_ptr.h:93
#17 std::__uniq_ptr_impl<FxViewItem, std::default_delete<FxViewItem> >::reset(FxViewItem*) (__p=0x0, this=0x56145f8fe4a8)
    at /usr/include/c++/13/bits/unique_ptr.h:211
#18 std::unique_ptr<FxViewItem, std::default_delete<FxViewItem> >::reset(FxViewItem*) (__p=0x0, this=0x56145f8fe4a8)
    at /usr/include/c++/13/bits/unique_ptr.h:509
#19 QQuickGridViewPrivate::createHighlight(bool) (this=0x56145f8fdd10, onDestruction=false)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickgridview.cpp:698
#20 0x00007f5648a57837 in QQuickGridViewPrivate::updateHighlight() (this=0x56145f8fdd10)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickgridview.cpp:740
#21 0x00007f5648a68cb2 in QQuickItemViewPrivate::layout() (this=<optimized out>)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickitemview.cpp:1918
#22 0x00007f5648a5fba0 in QQuickItemViewPrivate::applyPendingChanges() (this=0x56145f8fdd10)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickitemview.cpp:966
#23 QQuickItemViewPrivate::applyPendingChanges() (this=0x56145f8fdd10)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickitemview.cpp:962
#24 QQuickItemView::setCurrentIndex(int) (this=0x56145f8fc060, index=-1)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickitemview.cpp:286
#25 0x00007f5648a6be23 in QQuickItemView::qt_metacall(QMetaObject::Call, int, void**)
    (this=0x56145f8fc060, _c=QMetaObject::WriteProperty, _id=3, _a=0x7ffec7330090)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/src/quick/Quick_autogen/include/moc_qquickitemview_p.cpp:1426
#26 0x00007f5648a60265 in QQuickGridView::qt_metacall(QMetaObject::Call, int, void**)
    (this=0x56145f8fc060, _c=QMetaObject::WriteProperty, _id=<optimized out>, _a=0x7ffec7330090)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/src/quick/Quick_autogen/include/moc_qquickgridview_p.cpp:381
#27 0x00007f56481fa716 in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData const*, QV4::Value const&)
    (engine=engine@entry=0x56145df24ac0, object=object@entry=0x56145f8fc060, property=0x7f561449b050, value=...)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/qml/qqmlpropertydata_p.h:246
#28 0x00007f56481fbb0e in QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlRefPointer<QQmlContextData> const&, QObject*, QV4::String*, QFlags<QV4::QObjectWrapper::Flag>, QV4::Value const&)
    (engine=0x56145df24ac0, qmlContext=<optimized out>, object=0x56145f8fc060, name=<optimized out>, flags=..., value=...)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/jsruntime/qv4qobjectwrapper.cpp:465
#29 0x00007f56481f25ba in QV4::QQmlContextWrapper::virtualPut(QV4::Managed*, QV4::PropertyKey, QV4::Value const&, QV4::Value*)
    (m=<optimized out>, id=..., value=..., receiver=<optimized out>)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/jsruntime/qv4qmlcontext.cpp:454
#30 0x00007f5648180113 in QV4::Object::put(QV4::StringOrSymbol*, QV4::Value const&, QV4::Value*)
    (receiver=0x7f560f3be880, v=..., name=0x7f560f3be878, this=0x7f560f3be880)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/jsruntime/qv4string_p.h:140
#31 QV4::ExecutionContext::setProperty(QV4::String*, QV4::Value const&) (this=<optimized out>, name=0x7f560f3be878, value=...)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/jsruntime/qv4context.cpp:278
#32 0x00007f5648218cf1 in QV4::Runtime::StoreNameSloppy::call(QV4::ExecutionEngine*, int, QV4::Value const&)
    (engine=0x56145df24ac0, nameIndex=<optimized out>, value=...)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/jsruntime/qv4runtime.cpp:988
#33 0x00007f560fd5c3d3 in  ()
#34 0x00007ffec7330550 in  ()
#35 0x0000000000000000 in  ()
Comment 1 Nate Graham 2023-12-05 17:30:45 UTC
Hmm, I haven't encountered this on Wayland.