merkuro-calendar crash when editing event
When trying to edit an event merkuro-calendar crash, **but** it only crash if right-click on event and click on modify from the "popup". When double clicking on the event to edit it, it does not crash. From an Arch Linux up to date, merkuro-calendar is in version 25.08.2-1. I cannot tell when this issue occurred since I installed merkuro quite recently (I always had this bug). When right-clicking on the event, when the "popup" is displayed, the following warning is shown: ``` qrc:/qt/qml/org/kde/kirigamiaddons/components/ConvergentContextMenu.qml:274:9: QML ActionsMenu: cannot show menu: parent is null ``` Then when I click on modify, the following warnings are displayed: ``` qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:397:17: QML ComboBox: Binding loop detected for property "currentIndex": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:406:21 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:397:17: QML ComboBox: Binding loop detected for property "currentIndex": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:406:21 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:191:17: QML TextField: Binding loop detected for property "text": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:203:21 [1] 7426 segmentation fault (core dumped) merkuro-calendar ``` For information, when I double click on the event to edit it, the following warnings are displayed: ``` qrc:/qt/qml/org/kde/merkuro/calendar/qml/Main.qml:518: ReferenceError: MouseTracker is not defined qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:605:9: QML ColumnLayout: Binding loop detected for property "visible": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:610:13 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:605:9: QML ColumnLayout: Binding loop detected for property "visible": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:610:13 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:613:13: QML Heading: Binding loop detected for property "text": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:614:17 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:613:13: QML Heading: Binding loop detected for property "text": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:614:17 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoPopup.qml:39:26: QML IncidenceInfoContents: Binding loop detected for property "implicitWidth": qrc:/qt/qml/org/kde/desktop/ScrollView.qml:18:5 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:605:9: QML ColumnLayout: Binding loop detected for property "visible": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:610:13 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:605:9: QML ColumnLayout: Binding loop detected for property "visible": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:610:13 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:613:13: QML Heading: Binding loop detected for property "text": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Controls/IncidenceInfoContents.qml:614:17 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:397:17: QML ComboBox: Binding loop detected for property "currentIndex": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:406:21 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:397:17: QML ComboBox: Binding loop detected for property "currentIndex": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:406:21 qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:191:17: QML TextField: Binding loop detected for property "text": qrc:/qt/qml/org/kde/merkuro/calendar/qml/Dialogs/IncidenceEditorPage.qml:203:21 ``` When right-clicking, I obtained the following trace from GDB: ``` Thread 1 "merkuro-calenda" received signal SIGSEGV, Segmentation fault. resolveAttachedProperties (pf=0x7fffbd10e1b0 <QQuickLayout::qmlAttachedProperties(QObject*)>, data=0x261, object=0x55555a1d7350, create=false) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqml.cpp:104 104 QObject *rv = data->hasExtendedData() ? data->attachedProperties()->value(pf) : 0; (gdb) bt #0 resolveAttachedProperties (pf=0x7fffbd10e1b0 <QQuickLayout::qmlAttachedProperties(QObject*)>, data=0x261, object=0x55555a1d7350, create=false) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqml.cpp:104 #1 qmlAttachedPropertiesObject (object=0x55555a1d7350, func=func@entry=0x7fffbd10e1b0 <QQuickLayout::qmlAttachedProperties(QObject*)>, create=create@entry=false) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqml.cpp:136 #2 0x00007fffbd114cd4 in qmlAttachedPropertiesObject<QQuickLayout> (obj=<optimized out>, create=<optimized out>, obj=<optimized out>, create=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqml.h:670 #3 attachedLayoutObject (item=<optimized out>, create=<optimized out>, item=<optimized out>, create=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quicklayouts/qquicklayout_p.h:415 #4 QQuickGridLayoutItem::sizePolicy (this=0x55555a2c5740, orientation=Qt::Horizontal) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quicklayouts/qquickgridlayoutengine_p.h:68 #5 0x00007ffff5d6fb18 in QGridLayoutItem::stretchFactor (this=0x55555a2c5740, orientation=Qt::Horizontal) at /usr/src/debug/qt6-base/qtbase/src/gui/util/qgridlayoutengine.cpp:533 #6 QGridLayoutItem::stretchFactor (this=0x55555a2c5740, orientation=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/util/qgridlayoutengine.cpp:527 #7 QGridLayoutEngine::fillRowData (this=this@entry=0x555559fabc28, rowData=rowData@entry=0x555559fabdc8, colPositions=colPositions@entry=0x0, colSizes=colSizes@entry=0x0, orientation=orientation@entry=Qt::Horizontal, styleInfo=styleInfo@entry=0x555559f68ea0) at /usr/src/debug/qt6-base/qtbase/src/gui/util/qgridlayoutengine.cpp:1398 #8 0x00007ffff5d72d68 in QGridLayoutEngine::ensureColumnAndRowData (this=this@entry=0x555559fabc28, rowData=rowData@entry=0x555559fabdc8, totalBox=totalBox@entry=0x555559fabd68, colPositions=colPositions@entry=0x0, colSizes=colSizes@entry=0x0, orientation=orientation@entry=Qt::Horizontal, styleInfo=0x555559f68ea0) at /usr/src/debug/qt6-base/qtbase/src/gui/util/qgridlayoutengine.cpp:1599 #9 0x00007ffff5d7322a in QGridLayoutEngine::sizeHint (this=0x555559fabc28, which=Qt::MinimumSize, constraint=..., styleInfo=0x555559f68ea0) at /usr/src/debug/qt6-base/qtbase/src/gui/util/qgridlayoutengine.cpp:1138 #10 0x00007fffbd10ee17 in QQuickGridLayoutBase::sizeHint (this=<optimized out>, whichSizeHint=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quicklayouts/qquicklinearlayout.cpp:237 #11 0x00007fffbd1101bf in QQuickLayoutAttached::sizeHint (this=<optimized out>, which=which@entry=Qt::MinimumSize, orientation=orientation@entry=Qt::Horizontal) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quicklayouts/qquicklayout.cpp:738 #12 0x00007fffbd118419 in QQuickLayoutAttached::minimumWidth (this=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quicklayouts/qquicklayout_p.h:195 #13 QQuickLayoutAttached::minimumWidth (this=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/quicklayouts/qquicklayout_p.h:195 #14 QQuickLayoutAttached::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /usr/src/debug/qt6-declarative/build/src/quicklayouts/QuickLayouts_autogen/include/moc_qquicklayout_p.cpp:383 #15 0x00007ffff53ddd1d in QQmlPropertyData::readProperty (this=0x7fffa42b3a00, target=0x555559fae980, property=0x7fffffffa398) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:386 #16 operator()<double> (__closure=<synthetic pointer>, v=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:135 #17 QV4::loadProperty (v4=<optimized out>, wrapper=<optimized out>, object=0x555559fae980, property=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:195 #18 0x00007ffff53e2f63 in QV4::QObjectWrapper::getQmlProperty (engine=0x555555b4c6b0, qmlContext=..., wrapper=0x7fffb099c480, object=<optimized out>, name=0x7fffb0dba620, flags=..., hasProperty=0x0, property=0x0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:531 #19 0x00007ffff55cfed3 in QV4::QQmlTypeWrapper::virtualGet (m=0x7fffb0dba610, id=..., receiver=0x7fffb0dba610, hasProperty=0x0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmltypewrapper_p.h:110 #20 0x00007ffff53b4254 in QV4::Object::get (receiver=<optimized out>, this=<optimized out>, name=<optimized out>, hasProperty=0x0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4string_p.h:140 #21 QV4::Lookup::getterFallback (lookup=0x555559b04600, engine=0x555555b4c6b0, object=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4lookup.cpp:241 #22 0x00007fff8ff8fae2 in ?? () #23 0x00007fffffffaa30 in ?? () #24 0x0000555555b4c6b0 in ?? () #25 0x0000555555b4c6b0 in ?? () #26 0x00007fff8ff8fcb6 in ?? () #27 0x00007fffffffa960 in ?? () #28 0x00007ffff5450894 in QV4::Moth::VME::exec (frame=<optimized out>, engine=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:489 Backtrace stopped: frame did not save the PC ``` For information, the pointer `data` (equal to `data=0x261` in this trace), is always "pointing" to a different random value, which each time does not look like a valid pointer! Why `QQmlData *data = QQmlData::get(object, createIfMissing);` (https://github.com/qt/qtdeclarative/blob/v6.10.0/src/qml/qml/qqml.cpp#L129) is returning an invalid pointer? I don't think it is a bug in Qt6, it looks like something is not done properly in the application. But this is purely a guess!
issue