SUMMARY Kirigami.OverlaySheet without a parent set still happens when its parent window is closed while the sheet is opened. STEPS TO REPRODUCE 1. Open OverlaySheet without a parent (e.g. the one in KNewStuff) 2. While the sheet is opened, close the parent window 3. Boom OBSERVED RESULT Crash EXPECTED RESULT No crash SOFTWARE/OS VERSIONS Windows: macOS: Linux/KDE Plasma: (available in About System) KDE Plasma Version: KDE Frameworks Version: kirigmi at 4e83a29fd4318ace22899c5f85405e1d43bb6696 Qt Version: 6.6.0 ADDITIONAL INFORMATION (gdb) bt #0 QQmlPropertyCache::propertyCount() const (this=0x0) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/qml/qqmlpropertycache_p.h:436 #1 QQmlPropertyCache::property(int) const (index=<optimized out>, this=0x0) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/qml/qqmlpropertycache_p.h:334 #2 QQmlInterceptorMetaObject::doIntercept(QMetaObject::Call, int, void**) (this=this@entry=0x7fc794015f40, c=c@entry=QMetaObject::WriteProperty, id=id@entry=10, a=a@entry=0x7ffd6c985560) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/qml/qqmlvmemetaobject.cpp:279 #3 0x00007fc7a91928fd in QQmlInterceptorMetaObject::intercept(QMetaObject::Call, int, void**) (a=0x7ffd6c985560, id=10, c=QMetaObject::WriteProperty, this=0x7fc794015f40) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/qml/qqmlvmemetaobject_p.h:126 #4 QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) (this=0x7fc794015f40, o=<optimized out>, c=QMetaObject::WriteProperty, _id=10, a=0x7ffd6c985560) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/qml/qqmlvmemetaobject.cpp:686 #5 0x00007fc7a9078eba in QQmlPropertyData::doMetacall<(QMetaObject::Call)2>(QObject*, int, void**) const (this=<optimized out>, argv=0x7ffd6c985560, idx=<optimized out>, object=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/qml/qqmlpropertydata_p.h:320 #6 QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/6.6.0/QtQml/private/../../../../../../src/qml/qml/qqmlpropertydata_p.h:340 #7 0x00007fc7a912e089 in tryConvertAndAssign (isUrl=<optimized out>, variantMetaType=..., propertyMetaType=..., flags=..., value=<optimized out>, property=<optimized out>, object=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/qml/qqmlproperty.cpp:1416 #8 QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) (object=0x7fc79400b5a0, property=..., value=..., context=..., flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/qml/qqmlproperty.cpp:1555 #9 0x00007fc7a912f86e in QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) (object=<optimized out>, core=<optimized out>, valueTypeData=<optimized out>, value=..., context=..., flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/qml/qqmlproperty.cpp:1324 #10 0x00007fc7a912f8dd in QQmlPropertyPrivate::writeValueProperty(QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) (this=0x489fde0, value=..., flags=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/qml/qqmlproperty.cpp:1269 #11 0x00007fc7a912f9b1 in QQmlPropertyPrivate::write(QQmlProperty const&, QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) (that=..., value=..., flags=..., flags@entry=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/qml/qqmlproperty.cpp:1860 #12 0x00007fc7a912f9c7 in QQmlProperty::write(QVariant const&) const (this=this@entry=0x7ffd6c9857a0, value=...) at /usr/include/qt6/QtCore/qflags.h:73 #13 0x00007fc7a912fa05 in QQmlProperty::write(QObject*, QString const&, QVariant const&) (object=<optimized out>, name=..., value=...) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/qml/qqmlproperty.cpp:1793 #14 0x00007fc7a2d374dc in QQuickPopupPrivate::hideOverlay() (this=0x4e70090) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quicktemplates/qquickpopup.cpp:928 #15 QQuickPopupPrivate::hideOverlay() (this=0x4e70090) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quicktemplates/qquickpopup.cpp:924 #16 0x00007fc7a2d3732c in QQuickPopupPrivate::prepareExitTransition() (this=0x4e70090) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quicktemplates/qquickpopup.cpp:596 #17 0x00007fc7a2d393ce in QQuickPopupTransitionManager::transitionExit() (this=0x4e70210) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quicktemplates/qquickpopup.cpp:962 #18 0x00007fc7a2d3df99 in QQuickPopup::setParentItem(QQuickItem*) (this=0x3df1620, parent=0x0) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quicktemplates/qquickpopup.cpp:1779 #19 0x00007fc7a960a134 in QQuickItemPrivate::notifyChangeListeners<void (QQuickItemChangeListener::*)(QQuickItem*), QQuickItem*>(QFlags<QQuickItemPrivate::ChangeType>, void (QQuickItemChangeListener::*&&)(QQuickItem*), QQuickItem*&&) (function=<optimized out>, changeTypes=..., this=0x2e90650) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQuick/6.6.0/QtQuick/private/../../../../../../src/quick/items/qquickitem_p.h:355 #20 QQuickItem::~QQuickItem() (this=0x56fa910, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickitem.cpp:2340 #21 0x00007fc7a97febe5 in QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (this=0x56fa910, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/../../../src/qml/qml/qqmlprivate.h:99 #22 QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (this=0x56fa910, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/../../../src/qml/qml/qqmlprivate.h:99 #23 0x00007fc7a6dcc333 in QObjectPrivate::deleteChildren() (this=this@entry=0x430eaa0) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qobject.cpp:2206 #24 0x00007fc7a6dd00e8 in QObject::~QObject() (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qobject.cpp:1159 #25 0x00007fc7a97fe855 in QQmlPrivate::QQmlElement<QQuickMouseArea>::~QQmlElement() (this=0x5c033d0, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/../../../src/qml/qml/qqmlprivate.h:99 #26 QQmlPrivate::QQmlElement<QQuickMouseArea>::~QQmlElement() (this=0x5c033d0, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/../../../src/qml/qml/qqmlprivate.h:99 #27 0x00007fc7a6dcc333 in QObjectPrivate::deleteChildren() (this=this@entry=0x4308ab0) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qobject.cpp:2206 #28 0x00007fc7a6dd00e8 in QObject::~QObject() (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qobject.cpp:1159 #29 0x00007fc7a2dadfb5 in QQmlPrivate::QQmlElement<QQuickPage>::~QQmlElement() (this=0x7fc794047440, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/../../../src/qml/qml/qqmlprivate.h:99 #30 QQmlPrivate::QQmlElement<QQuickPage>::~QQmlElement() (this=0x7fc794047440, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/build/include/QtQml/../../../src/qml/qml/qqmlprivate.h:99 #31 0x00007fc7a8ff9a91 in QV4::QObjectWrapper::destroyObject(bool) (this=<optimized out>, lastCall=true) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/jsruntime/qv4qobjectwrapper.cpp:1395 #32 0x00007fc7a906963b in QV4::MemoryManager::sweep(bool, void (*)(char const*)) (this=this@entry=0x26fc120, lastSweep=lastSweep@entry=true, classCountPtr=classCountPtr@entry=0x0) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/memory/qv4mm.cpp:860 #33 0x00007fc7a906b85c in QV4::MemoryManager::~MemoryManager() (this=0x26fc120, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/memory/qv4mm.cpp:1112 #34 0x00007fc7a8f99c03 in QV4::ExecutionEngine::~ExecutionEngine() (this=0x4f36820, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/jsruntime/qv4engine.cpp:860 #35 0x00007fc7a8f6bdbd in QJSEngine::~QJSEngine() (this=0x7fc7940149b0, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/jsapi/qjsengine.cpp:376 #36 0x00007fc7a90b43e9 in QQmlEngine::~QQmlEngine() (this=0x7fc7940149b0, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/qml/qml/qqmlengine.cpp:661 #37 0x00007fc7a6dcc333 in QObjectPrivate::deleteChildren() (this=this@entry=0x4c62520) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qobject.cpp:2206 #38 0x00007fc7a6dd00e8 in QObject::~QObject() (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qobject.cpp:1159 #39 0x00007fc7a76372ee in QWindow::~QWindow() (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/gui/kernel/qwindow.cpp:201 #40 0x00007fc7a96b02ea in QQuickWindow::~QQuickWindow() (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.6.0/src/quick/items/qquickwindow.cpp:1134 #41 0x000000000043522a in ContainmentConfigView::~ContainmentConfigView() (this=0x2ecf1a0, __in_chrg=<optimized out>) at /home/qydw/kde/src/plasma-workspace/shell/containmentconfigview.cpp:56 #42 ContainmentConfigView::~ContainmentConfigView() (this=0x2ecf1a0, __in_chrg=<optimized out>) at /home/qydw/kde/src/plasma-workspace/shell/containmentconfigview.cpp:56 #43 0x00007fc7a6dcaf57 in QObject::event(QEvent*) (this=0x2ecf1a0, e=0x2f0e6a0) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qobject.cpp:1424 #44 0x00007fc7a83c089e in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6 #45 0x00007fc7a6d88728 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x2ecf1a0, event=0x2f0e6a0) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qcoreapplication.cpp:1118 #46 0x00007fc7a6d88769 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qcoreapplication.cpp:1536 #47 0x00007fc7a6d88a87 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x1598f70) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qcoreapplication.cpp:1898 #48 0x00007fc7a6fac903 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x1624020) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qeventdispatcher_glib.cpp:243 #49 0x00007fc7a5b13ef0 in () at /lib64/libglib-2.0.so.0 #50 0x00007fc7a5b15b18 in () at /lib64/libglib-2.0.so.0 #51 0x00007fc7a5b161cc in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #52 0x00007fc7a6fab0fc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x16351d0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.6.0/src/corelib/kernel/qeventdispatcher_glib.cpp:393 #53 0x00007fc7a6d93e8b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffd6c986210, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.6.0/build/include/QtCore/../../../src/corelib/global/qflags.h:34 #54 0x00007fc7a6d8bf56 in QCoreApplication::exec() () at /usr/src/debug/qtbase-everywhere-src-6.6.0/build/include/QtCore/../../../src/corelib/global/qflags.h:74 #55 0x0000000000427dfb in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/qydw/kde/src/plasma-workspace/shell/main.cpp:236
*** Bug 466920 has been marked as a duplicate of this bug. ***
Which app are you seeing this in? Can't reproduce in Discover, but its OverlaySheet instances to manually re-parent themselves.