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

assertion failed after Flickable takes grab from PinchHandler

    XMLWordPrintable

Details

    • Linux/X11
    • 83e70c3157 (qt/qtbase/dev) d255ad93ff (qt/qtbase/6.3) 88752a1377 (qt/qtbase/6.4) 83e70c3157 (qt/tqtc-qtbase/dev) d255ad93ff (qt/tqtc-qtbase/6.3) 88752a1377 (qt/tqtc-qtbase/6.4) dc7e6d14d8 (qt/qtbase/6.4.0) 124a844145 (qt/tqtc-qtbase/6.2), 5171bcd9c (dev)

    Description

      It happens when doing a pinch on the touchscreen in either of the QtPDF examples. Must be a fairly recent regression, because I'm sure I was testing that within the last couple of months, and it was not crashing before.

      Having the Flickable take over while a pinch gesture is ongoing is not the desired behavior anyway; but crashing is even worse.

      6  QMessageLogger::fatal                                                qlogging.cpp              850  
      7  qt_assert                                                            qassert.cpp               68   
      8  QQuickDeliveryAgentPrivate::onGrabChanged                            qquickdeliveryagent.cpp   1712 
      9  QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2, 3>, QtPrivate qobjectdefs_impl.h        135  
      10 QtPrivate::FunctionPointer<void (QQuickDeliveryAgentPrivate:: *)(QOb qobjectdefs_impl.h        172  
      11 QtPrivate::QPrivateSlotObject<void (QQuickDeliveryAgentPrivate:: *)( qobject_p.h               285  
      12 QtPrivate::QSlotObjectBase::call                                     qobjectdefs_impl.h        363  
      13 doActivate<false>                                                    qobject.cpp               3972 
      14 QMetaObject::activate                                                qobject.cpp               4032 
      15 QPointingDevice::grabChanged                                         moc_qpointingdevice.cpp   410  
      16 QPointingDevicePrivate::setExclusiveGrabber                          qpointingdevice.cpp       473  
      17 QPointerEvent::setExclusiveGrabber                                   qevent.cpp                350  
      18 QQuickFlickable::filterPointerEvent                                  qquickflickable.cpp       2579 
      19 QQuickFlickable::childMouseEventFilter                               qquickflickable.cpp       2635 
      20 QQuickDeliveryAgentPrivate::sendFilteredPointerEventImpl             qquickdeliveryagent.cpp   2383 
      21 QQuickDeliveryAgentPrivate::sendFilteredPointerEventImpl             qquickdeliveryagent.cpp   2451 
      22 QQuickDeliveryAgentPrivate::sendFilteredPointerEvent                 qquickdeliveryagent.cpp   2332 
      23 QQuickDeliveryAgentPrivate::deliverUpdatedPoints                     qquickdeliveryagent.cpp   1912 
      24 QQuickDeliveryAgentPrivate::deliverPointerEvent                      qquickdeliveryagent.cpp   1791 
      25 QQuickDeliveryAgentPrivate::deliverDelayedTouchEvent                 qquickdeliveryagent.cpp   1234 
      26 QQuickDeliveryAgentPrivate::flushFrameSynchronousEvents              qquickdeliveryagent.cpp   1601 
      27 QSGThreadedRenderLoop::polishAndSync                                 qsgthreadedrenderloop.cpp 1480 
      28 QSGThreadedRenderLoop::handleUpdateRequest                           qsgthreadedrenderloop.cpp 1347 
      29 QQuickWindow::event                                                  qquickwindow.cpp          1521 
      30 QCoreApplicationPrivate::notify_helper                               qcoreapplication.cpp      1193 
      31 doNotify                                                             qcoreapplication.cpp      1122 
      32 QCoreApplication::notify                                             qcoreapplication.cpp      1105 
      33 QGuiApplication::notify                                              qguiapplication.cpp       1928 
      34 QCoreApplication::notifyInternal2                                    qcoreapplication.cpp      1026 
      35 QCoreApplication::sendEvent                                          qcoreapplication.cpp      1442 
      36 QPlatformWindow::deliverUpdateRequest                                qplatformwindow.cpp       774  
      37 QPlatformWindow::windowEvent                                         qplatformwindow.cpp       454  
      38 QXcbWindow::windowEvent                                              qxcbwindow.cpp            2300 
      39 QGuiApplicationPrivate::sendQWindowEventToQPlatformWindow            qguiapplication.cpp       1985 
      40 QGuiApplication::notify                                              qguiapplication.cpp       1922 
      41 QCoreApplication::notifyInternal2                                    qcoreapplication.cpp      1026 
      42 QCoreApplication::sendEvent                                          qcoreapplication.cpp      1442 
      43 QTimerInfoList::activateTimers                                       qtimerinfo_unix.cpp       610  
      44 timerSourceDispatch                                                  qeventdispatcher_glib.cpp 149  
      45 g_main_context_dispatch                                                                             
      46 ??                                                                                                  
      47 g_main_context_iteration                                                                            
      48 QEventDispatcherGlib::processEvents                                  qeventdispatcher_glib.cpp 393  
      49 QXcbGlibEventDispatcher::processEvents                               qxcbeventdispatcher.cpp   96   
      50 QEventLoop::processEvents                                            qeventloop.cpp            100  
      51 QEventLoop::exec                                                     qeventloop.cpp            182  
      52 QCoreApplication::exec                                               qcoreapplication.cpp      1347 
      53 QGuiApplication::exec                                                qguiapplication.cpp       1860 
      54 main                                                                 main.cpp                  23   
      

      In QPointingDevicePrivate::setExclusiveGrabber(), point.pointId() looks ok; but persistentPoint->eventPoint->d->d is null. Later in QQuickDeliveryAgentPrivate::onGrabChanged(), point.id() is invalid (sometimes -1, sometimes garbage), so queryPointById() fails.

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-106223
          # Subject Branch Project Status CR V

          Activity

            People

              srutledg Shawn Rutledge
              srutledg Shawn Rutledge
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: