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

Regression: Pushing item with two drawers into StackView crashes in QQuickItemPrivate::itemChange()

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Done
    • Affects Version/s: 5.7.0 Beta
    • Fix Version/s: 5.7.0 RC
    • Component/s: Quick: Controls 2
    • Labels:
      None
    • Environment:
      Mageia Linux Cauldron x86_64, Android 4.4
    • Commits:
      qtdeclarative: 5e651178b2d1ac9cea70913de21e0c5b2b7aaa0d

      Description

      To reproduce, run test program and click on second-first-second-first. Should crash.
      Test program:

      import QtQuick 2.6
      import QtQuick.Controls 2.0
      
      ApplicationWindow {
          visible: true
          width: 640
          height: 480
      
          StackView {
              id: stackView
      
              anchors.fill: parent
              initialItem: first
          }
      
          Rectangle {
              id: first
      
              color: "green"
          }
      
          Component {
              id: second
      
              Item {
                  Drawer {
                      edge: Qt.BottomEdge
                  }
      
                  Drawer {
                      edge: Qt.RightEdge
                  }
              }
          }
      
      
          footer: Row {
              spacing: 10
      
              Button {
                  text: "second"
                  onClicked: stackView.replace(null, second)
              }
      
              Button {
                  text: "first"
                  onClicked: stackView.replace(null, first)
              }
          }
      }
      

      Stack trace (full stack in the attachment):

      1  QQuickItemPrivate::itemChange                               qquickitem.cpp                     5952 0x7ffff7a4adfe 
      2  QQuickItemPrivate::removeChild                              qquickitem.cpp                     2921 0x7ffff7a4310a 
      3  QQuickItem::setParentItem                                   qquickitem.cpp                     2668 0x7ffff7a423c5 
      4  QQuickStackElement::~QQuickStackElement                     qquickstackview_p.cpp              99   0x7fffd075f639 
      5  QQuickStackElement::~QQuickStackElement                     qquickstackview_p.cpp              110  0x7fffd075f754 
      6  qDeleteAll<QList<QQuickStackElement *>::const_iterator>     qalgorithms.h                      323  0x7fffd075e6ea 
      7  qDeleteAll<QList<QQuickStackElement *>>                     qalgorithms.h                      331  0x7fffd075e2d0 
      8  QQuickStackViewPrivate::viewItemTransitionFinished          qquickstackview_p.cpp              536  0x7fffd0761208 
      9  QQuickItemViewTransitioner::finishedTransition              qquickitemviewtransition.cpp       324  0x7ffff7b8654c 
      10 QQuickItemViewTransitionJob::finished                       qquickitemviewtransition.cpp       143  0x7ffff7b85c3e 
      11 QQuickTransitionManager::complete                           qquicktransitionmanager.cpp        104  0x7ffff79711cb 
      12 ParallelAnimationWrapper::updateState                       qquicktransition.cpp               196  0x7ffff797dec8 
      13 QAbstractAnimationJob::setState                             qabstractanimationjob.cpp          366  0x7ffff6f86116 
      14 QAbstractAnimationJob::stop                                 qabstractanimationjob.cpp          536  0x7ffff6f868de 
      15 QParallelAnimationGroupJob::uncontrolledAnimationFinished   qparallelanimationgroupjob.cpp     236  0x7ffff6f8aa84 
      16 QAbstractAnimationJob::finished                             qabstractanimationjob.cpp          600  0x7ffff6f86b8e 
      17 QAbstractAnimationJob::setState                             qabstractanimationjob.cpp          399  0x7ffff6f8630b 
      18 QAbstractAnimationJob::stop                                 qabstractanimationjob.cpp          536  0x7ffff6f868de 
      19 QQuickAnimatorController::stopProxyJobs                     qquickanimatorcontroller.cpp       256  0x7ffff79bc7d0 
      20 QQuickAnimatorControllerGuiThreadEntity::frameSwapped       qquickanimatorcontroller.cpp       65   0x7ffff79bb699 
      21 QQuickAnimatorControllerGuiThreadEntity::qt_static_metacall moc_qquickanimatorcontroller_p.cpp 164  0x7ffff7bf7dfa 
      22 QMetaObject::activate                                       qobject.cpp                        3740 0x7ffff68b13c6 
      23 QMetaObject::activate                                       qobject.cpp                        3602 0x7ffff68b0bba 
      24 QQuickWindow::frameSwapped                                  moc_qquickwindow.cpp               454  0x7ffff7a71e2f 
      25 QQuickWindowPrivate::fireFrameSwapped                       qquickwindow_p.h                   224  0x7ffff7a24b34 
      26 QSGGuiThreadRenderLoop::renderWindow                        qsgrenderloop.cpp                  412  0x7ffff7a24467 
      27 QSGGuiThreadRenderLoop::handleUpdateRequest                 qsgrenderloop.cpp                  476  0x7ffff7a248ad 
      28 QQuickWindow::event                                         qquickwindow.cpp                   1499 0x7ffff7a66d24 
      29 QCoreApplicationPrivate::notify_helper                      qcoreapplication.cpp               1122 0x7ffff68706b8 
      30 doNotify                                                    qcoreapplication.cpp               1063 0x7ffff687033b 
      31 QCoreApplication::notify                                    qcoreapplication.cpp               1049 0x7ffff68702ae 
      32 QGuiApplication::notify                                     qguiapplication.cpp                1648 0x7ffff72effb4 
      33 QCoreApplication::notifyInternal2                           qcoreapplication.cpp               988  0x7ffff687023e 
      34 QCoreApplication::sendEvent                                 qcoreapplication.h                 231  0x7ffff72d6a42 
      35 QWindowPrivate::deliverUpdateRequest                        qwindow.cpp                        2171 0x7ffff73024ff 
      36 QWindow::event                                              qwindow.cpp                        2142 0x7ffff730241a 
      37 QQuickWindow::event                                         qquickwindow.cpp                   1518 0x7ffff7a66db6 
      38 QCoreApplicationPrivate::notify_helper                      qcoreapplication.cpp               1122 0x7ffff68706b8 
      39 doNotify                                                    qcoreapplication.cpp               1063 0x7ffff687033b 
      40 QCoreApplication::notify                                    qcoreapplication.cpp               1049 0x7ffff68702ae 
      41 QGuiApplication::notify                                     qguiapplication.cpp                1648 0x7ffff72effb4 
      42 QCoreApplication::notifyInternal2                           qcoreapplication.cpp               988  0x7ffff687023e 
      43 QCoreApplication::sendEvent                                 qcoreapplication.h                 231  0x7ffff68742aa 
      44 QTimerInfoList::activateTimers                              qtimerinfo_unix.cpp                644  0x7ffff68ea3cc 
      45 timerSourceDispatch                                         qeventdispatcher_glib.cpp          182  0x7ffff68eb6d8 
      46 g_main_context_dispatch                                                                             0x7ffff3851157 
      47 g_main_context_iterate.isra                                                                         0x7ffff3851388 
      48 g_main_context_iteration                                                                            0x7ffff385142c 
      49 QEventDispatcherGlib::processEvents                         qeventdispatcher_glib.cpp          423  0x7ffff68ec0a5 
      50 QPAEventDispatcherGlib::processEvents                       qeventdispatcher_glib.cpp          121  0x7fffe8173686 
      51 QEventLoop::processEvents                                   qeventloop.cpp                     134  0x7ffff686cba8 
      52 QEventLoop::exec                                            qeventloop.cpp                     210  0x7ffff686cea4 
      53 QCoreApplication::exec                                      qcoreapplication.cpp               1261 0x7ffff6870988 
      54 QGuiApplication::exec                                       qguiapplication.cpp                1639 0x7ffff72eff64 
      55 main                                                        main.cpp                           12   0x400fcf       
      

        Attachments

          Issue Links

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

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                krnekit Nikita Krupenko
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes