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

"Invalid memory write" detected by Valgrind while using QQuickStackView

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 5.12.3
    • Quick: Controls 2
    • None
    • Linux/X11

    Description

      [SOFTWARE VERSION]
      target platform: desktop Ubuntu 16.04.5 LTS
      valgrind version: valgrind-3.15.0

      [PRECONDITIONS]
      valgrind --undef-value-errors=no --error-limit=no ...

      [VALGRIND OUTPUT]

      ==18461== Invalid write of size 4
      ==18461== at 0x5D7B11A: QQuickItemViewTransitionableItem::clearCurrentScheduledTransition() (qquickitemviewtransition.cpp:552)
      ==18461== by 0x5D7CBD6: QQuickItemViewTransitionableItem::startTransition(QQuickItemViewTransitioner*, int) (qquickitemviewtransition.cpp:510)
      ==18461== by 0x69488331: QQuickStackElement::startTransition(QQuickItemViewTransitioner*, QQuickStackView::Status) (qquickstackelement.cpp:311)
      ==18461== by 0x6948F6A2: QQuickStackViewPrivate::startTransition(QQuickStackTransition const&, QQuickStackTransition const&, bool) (qquickstackview_p.cpp:233)
      ==18461== by 0x6948D91B: QQuickStackView::pop(QQmlV4Function*) (qquickstackview.cpp:674)
      ==18461== by 0x694B28FD: QQuickStackView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_qquickstackview_p.cpp:282)
      ==18461== by 0x694B2FCE: QQuickStackView::qt_metacall(QMetaObject::Call, int, void**) (moc_qquickstackview_p.cpp:454)
      ==18461== by 0x6247AB8: QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) (qqmlvmemetaobject.cpp:981)
      ==18461== by 0x6FE0A7E: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (qmetaobject.cpp:301)
      ==18461== by 0x62A6592: QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const (qqmlpropertycache.cpp:1761)
      ==18461== by 0x616F484: QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const (qv4qobjectwrapper.cpp:2046)
      ==18461== by 0x616F51A: QV4::QObjectMethod::virtualCall(QV4::FunctionObject const*, QV4::Value const*, QV4::Value const*, int) (qv4qobjectwrapper.cpp:1989)
      ==18461== Address 0x8aac43b8 is 72 bytes inside a block of size 168 free'd
      ==18461== at 0x4C2F602: operator delete(void*, unsigned long) (vg_replace_malloc.c:595)
      ==18461== by 0x694885A5: QQuickStackElement::~QQuickStackElement() (qquickstackelement.cpp:112)
      ==18461== by 0x6948E21A: void qDeleteAll<QList<QQuickStackElement*>::const_iterator>(QList<QQuickStackElement*>::const_iterator, QList<QQuickStackElement*>::const_iterator) (qalgorithms.h:320)
      ==18461== by 0x6949053D: qDeleteAll<QList<QQuickStackElement*> > (qalgorithms.h:328)
      ==18461== by 0x6949053D: QQuickStackViewPrivate::viewItemTransitionFinished(QQuickItemViewTransitionableItem*) (qquickstackview_p.cpp:282)
      ==18461== by 0x5D7C45E: QQuickItemViewTransitioner::finishedTransition(QQuickItemViewTransitionJob*, QQuickItemViewTransitionableItem*) (qquickitemviewtransition.cpp:324)
      ==18461== by 0x5D7CC53: QQuickItemViewTransitionJob::finished() (qquickitemviewtransition.cpp:143)
      ==18461== by 0x5B75A1C: QQuickTransitionManager::complete() (qquicktransitionmanager.cpp:104)
      ==18461== by 0x5B82BE3: ParallelAnimationWrapper::updateState(QAbstractAnimationJob::State, QAbstractAnimationJob::State) (qquicktransition.cpp:201)
      ==18461== by 0x6330453: QAbstractAnimationJob::setState(QAbstractAnimationJob::State) (qabstractanimationjob.cpp:356)
      ==18461== by 0x633061F: QAbstractAnimationJob::stop() (qabstractanimationjob.cpp:526)
      ==18461== by 0x6330824: QAbstractAnimationJob::setCurrentTime(int) (qabstractanimationjob.cpp:498)
      ==18461== by 0x633052D: QAbstractAnimationJob::setState(QAbstractAnimationJob::State) (qabstractanimationjob.cpp:377)
      ==18461== Block was alloc'd at
      ==18461== at 0x4C2E4B6: operator new(unsigned long) (vg_replace_malloc.c:344)
      ==18461== by 0x694889B3: QQuickStackElement::fromObject(QObject*, QQuickStackView*, QString*) (qquickstackelement.cpp:141)
      ==18461== by 0x6948F4A8: QQuickStackViewPrivate::createElement(QV4::Value const&, QQmlContextData*, QString*) (qquickstackview_p.cpp:166)
      ==18461== by 0x6948FA93: QQuickStackViewPrivate::parseElements(int, QQmlV4Function*, QStringList*) (qquickstackview_p.cpp:118)
      ==18461== by 0x6948B1D6: QQuickStackView::push(QQmlV4Function*) (qquickstackview.cpp:546)
      ==18461== by 0x694B28EC: QQuickStackView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_qquickstackview_p.cpp:281)
      ==18461== by 0x694B2FCE: QQuickStackView::qt_metacall(QMetaObject::Call, int, void**) (moc_qquickstackview_p.cpp:454)
      ==18461== by 0x6247AB8: QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) (qqmlvmemetaobject.cpp:981)
      ==18461== by 0x6FE0A7E: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (qmetaobject.cpp:301)
      ==18461== by 0x62A6592: QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const (qqmlpropertycache.cpp:1761)
      ==18461== by 0x616F484: QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const (qv4qobjectwrapper.cpp:2046)
      ==18461== by 0x616F51A: QV4::QObjectMethod::virtualCall(QV4::FunctionObject const*, QV4::Value const*, QV4::Value const*, int) (qv4qobjectwrapper.cpp:1989)
      ==18461==

      Attachments

        Issue Links

          Activity

            People

              qt.team.quick.subscriptions Qt Quick and Widgets Team
              dmytrokh Dmytro Khlopov
              Votes:
              2 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: