Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-41111

Crash in QQmlData::get()

    XMLWordPrintable

Details

    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)
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            shausman Simon Hausmann
            iamsergio Sergio Martins
            Votes:
            1 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes