Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.3.1
-
None
-
5.3 branch
Description
Don't have a test-case unfortunately.
The app is big and uses lots of QtQuick Controls. Sometimes it crashes, managed to get a valgrind trace:
==6393== Invalid read of size 8 ==6393== at 0x68FF57C: QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::data() const (qscopedpointer.h:143) ==6393== by 0x690C414: _ZL13qGetPtrHelperI14QScopedPointerI11QObjectData21QScopedPointerDeleterIS1_EEENT_7pointerERKS5_ (qglobal.h:945) ==6393== by 0x69173BB: QObject::d_func() (qobject.h:118) ==6393== by 0x690C584: QObjectPrivate::get(QObject*) (qobject_p.h:199) ==6393== by 0x690C61C: QQmlData::get(QObject const*, bool) (qqmldata_p.h:196) ==6393== by 0x6B5B065: QtQml::qmlAttachedPropertiesObjectById(int, QObject const*, bool) (qqmlengine.cpp:1381) ==6393== by 0x6B5B24C: QtQml::qmlAttachedPropertiesObject(int*, QObject const*, QMetaObject const*, bool) (qqmlengine.cpp:1410) ==6393== by 0x1EBE05A5: QObject* qmlAttachedPropertiesObject<QQuickLayout>(QObject const*, bool) (qqml.h:455) ==6393== by 0x1EBDD2C4: attachedLayoutObject(QQuickItem*, bool) (qquicklayout_p.h:253) ==6393== by 0x1EBDFE50: QQuickGridLayoutItem::sizePolicy(Qt::Orientation) const (qquickgridlayoutengine_p.h:111) ==6393== by 0x77F3AC9: QGridLayoutItem::stretchFactor(Qt::Orientation) const (qgridlayoutengine.cpp:543) ==6393== by 0x77F830D: QGridLayoutEngine::fillRowData(QGridLayoutRowData*, double const*, double const*, Qt::Orientation, QAbstractLayoutStyleInfo const*) const (qgridlayoutengine.cpp:1359) ==6393== by 0x77F7761: QGridLayoutEngine::ensureColumnAndRowData(QGridLayoutRowData*, QGridLayoutBox*, double const*, double const*, Qt::Orientation, QAbstractLayoutStyleInfo const*) const (qgridlayoutengine.cpp:1539) ==6393== by 0x77F67E5: QGridLayoutEngine::ensureGeometries(QSizeF const&, QAbstractLayoutStyleInfo const*) const (qgridlayoutengine.cpp:1615) ==6393== by 0x77F6227: QGridLayoutEngine::setGeometries(QRectF const&, QAbstractLayoutStyleInfo const*) (qgridlayoutengine.cpp:1004) ==6393== by 0x1EBDBBA4: QQuickGridLayoutBase::rearrange(QSizeF const&) (qquicklinearlayout.cpp:573) ==6393== by 0x1EBD9F66: QQuickLayout::updatePolish() (qquicklayout.cpp:537) ==6393== by 0x6327291: QQuickWindowPrivate::polishItems() (qquickwindow.cpp:271) ==6393== by 0x62F09A1: QSGGuiThreadRenderLoop::renderWindow(QQuickWindow*) (qsgrenderloop.cpp:355) ==6393== by 0x62F1203: QSGGuiThreadRenderLoop::event(QEvent*) (qsgrenderloop.cpp:466) ==6393== by 0x7F866B7: QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) (qcoreapplication.cpp:1052) ==6393== by 0x7F8660C: QCoreApplication::notify(QObject*, QEvent*) (qcoreapplication.cpp:997) ==6393== by 0x74D8E07: QGuiApplication::notify(QObject*, QEvent*) (qguiapplication.cpp:1504) ==6393== by 0x7F864E4: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:935) ==6393== by 0x7F8B2B9: QCoreApplication::sendEvent(QObject*, QEvent*) (qcoreapplication.h:237) ==6393== by 0x801AFF0: QTimerInfoList::activateTimers() (qtimerinfo_unix.cpp:643) ==6393== by 0x8018AC0: QEventDispatcherUNIX::activateTimers() (qeventdispatcher_unix.cpp:557) ==6393== by 0x8018CE3: QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_unix.cpp:619) ==6393== by 0xF50A140: QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qunixeventdispatcher.cpp:70) ==6393== by 0x7F82099: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:136) ==6393== by 0x7F822CD: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:212) ==6393== by 0x7F86C94: QCoreApplication::exec() (qcoreapplication.cpp:1188) ==6393== by 0x74D8CF5: QGuiApplication::exec() (qguiapplication.cpp:1483) ==6393== by 0x41D992: main (main.cpp:223) ==6393== Address 0x278b7c28 is 8 bytes inside a block of size 32 free'd ==6393== at 0x4C29E6C: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==6393== by 0x6354261: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:104) ==6393== by 0x7FD2AED: qDeleteInEventHandler(QObject*) (qobject.cpp:4346) ==6393== by 0x7FD26C1: QObject::event(QEvent*) (qobject.cpp:1232) ==6393== by 0x6314969: QQuickItem::event(QEvent*) (qquickitem.cpp:7118) ==6393== by 0x7F866B7: QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) (qcoreapplication.cpp:1052) ==6393== by 0x7F8660C: QCoreApplication::notify(QObject*, QEvent*) (qcoreapplication.cpp:997) ==6393== by 0x74D8E07: QGuiApplication::notify(QObject*, QEvent*) (qguiapplication.cpp:1504) ==6393== by 0x7F864E4: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:935) ==6393== by 0x7F8B2B9: QCoreApplication::sendEvent(QObject*, QEvent*) (qcoreapplication.h:237) ==6393== by 0x7F87989: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1539) ==6393== by 0x8018B31: QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_unix.cpp:587) ==6393== by 0xF50A140: QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qunixeventdispatcher.cpp:70) ==6393== by 0x7F82099: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:136) ==6393== by 0x7F822CD: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:212) ==6393== by 0x7F86C94: QCoreApplication::exec() (qcoreapplication.cpp:1188) ==6393== by 0x74D8CF5: QGuiApplication::exec() (qguiapplication.cpp:1483) ==6393== by 0x41D992: main (main.cpp:223)