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

Crash in QQuickWindowPrivate::deliverSinglePointEventUntilAccepted()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P1: Critical
    • None
    • 5.12
    • None
    • MacBook Pro
      macOS 10.13.6
    • Linux/X11, macOS

    Description

      I can reproduce the crash when using the trackpad on a MacBook Pro or a regular mouse on Ubuntu.

      To reproduce it, run the following example, click "Pick up", then "Drop", then scroll the mouse wheel/trackpad over the area where the Rectangle was initially.

      import QtQuick.Controls 2.0
      import QtQuick.Layouts 1.0
      import QtQuick 2.0
      import QtQuick.Window 2.0
      
      import App 1.0
      
      ApplicationWindow {
          id: window
          width: 320
          height: 480
          visible: true
      
          header: RowLayout {
              Button {
                  text: "Pick up"
                  onClicked: sceneItem.parent = null
              }
              Button {
                  text: "Drop"
                  onClicked: sceneItem.parent = scene
              }
          }
      
          Rectangle {
              id: sceneItem
              objectName: "sceneItem"
              color: "steelblue"
              width: 32
              height: 32
          }
      
          GridView {
              anchors.fill: parent
              anchors.margins: 50
              model: !sceneItem.parent ? 1 : 0
              delegate: ItemDelegate {
                  width: 32
                  height: 32
      
                  ShaderEffectSource {
                      smooth: false
                      sourceItem: sceneItem
                      width: 32
                      height: 32
                      anchors.centerIn: parent
                  }
              }
      
              Rectangle {
                  anchors.fill: parent
                  color: "transparent"
                  border.color: "darkorange"
              }
          }
      
          Item {
              id: scene
              anchors.fill: parent
          }
      }
      
      ASAN:DEADLYSIGNAL
      =================================================================
      ==56822==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000008 (pc 0x00010e9b5b4e bp 0x7ffee4688830 sp 0x7ffee4688820 T0)
      ==56822==The signal is caused by a READ memory access.
      ==56822==Hint: address points to the zero page.
          #0 0x10e9b5b4d in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator->() const qscopedpointer.h:118
          #1 0x10e9b5b04 in decltype(fp.operator->()) qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > >(QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const&) qglobal.h:1038
          #2 0x10ea5db68 in QWindow::d_func() const qwindow.h:98
          #3 0x10ea76f66 in QWindow::mapToGlobal(QPoint const&) const qwindow.cpp:2531
          #4 0x11269d73e in QQuickWindowPrivate::deliverSinglePointEventUntilAccepted(QQuickPointerEvent*) qquickwindow.cpp:1913
          #5 0x1126a644c in QQuickWindowPrivate::deliverPointerEvent(QQuickPointerEvent*) qquickwindow.cpp:2312
          #6 0x1126a596d in QQuickWindow::wheelEvent(QWheelEvent*) qquickwindow.cpp:1963
          #7 0x10ea75f02 in QWindow::event(QEvent*) qwindow.cpp:2297
          #8 0x1126997a9 in QQuickWindow::event(QEvent*) qquickwindow.cpp:1643
          #9 0x10cc55344 in QApplicationPrivate::notify_helper(QObject*, QEvent*) qapplication.cpp:3738
          #10 0x10cc5b811 in QApplication::notify(QObject*, QEvent*) qapplication.cpp:3108
          #11 0x110f8d5c5 in QCoreApplication::notifyInternal2(QObject*, QEvent*) qcoreapplication.cpp:1048
          #12 0x110f8fcac in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) qcoreapplication.cpp:1431
          #13 0x10ea24223 in QGuiApplicationPrivate::processWheelEvent(QWindowSystemInterfacePrivate::WheelEvent*) qguiapplication.cpp:2154
          #14 0x10ea1f3d3 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) qguiapplication.cpp:1814
          #15 0x10e9a6ed7 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) qwindowsysteminterface.cpp:1062
          #16 0x11c2e0e64 in QCocoaEventDispatcherPrivate::processPostedEvents() qcocoaeventdispatcher.mm:909
          #17 0x11c2e3776 in QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void*) qcocoaeventdispatcher.mm:930
          #18 0x7fff28b15a10 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ (CoreFoundation:x86_64h+0xa3a10)
          #19 0x7fff28bcf42b in __CFRunLoopDoSource0 (CoreFoundation:x86_64h+0x15d42b)
          #20 0x7fff28af846f in __CFRunLoopDoSources0 (CoreFoundation:x86_64h+0x8646f)
          #21 0x7fff28af78ec in __CFRunLoopRun (CoreFoundation:x86_64h+0x858ec)
          #22 0x7fff28af7152 in CFRunLoopRunSpecific (CoreFoundation:x86_64h+0x85152)
          #23 0x7fff27de1d95 in RunCurrentEventLoopInMode (HIToolbox:x86_64+0x2fd95)
          #24 0x7fff27de1a0e in ReceiveNextEventCommon (HIToolbox:x86_64+0x2fa0e)
          #25 0x7fff27de1883 in _BlockUntilNextEventMatchingListInModeWithFilter (HIToolbox:x86_64+0x2f883)
          #26 0x7fff26092a72 in _DPSNextEvent (AppKit:x86_64+0x41a72)
          #27 0x7fff26828e33 in -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] (AppKit:x86_64+0x7d7e33)
          #28 0x7fff26087884 in -[NSApplication run] (AppKit:x86_64+0x36884)
          #29 0x11c2dca99 in QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) qcocoaeventdispatcher.mm:430
          #30 0x110f7d198 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) qeventloop.cpp:136
          #31 0x110f7d89d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) qeventloop.cpp:214
          #32 0x110f8f3ae in QCoreApplication::exec() qcoreapplication.cpp:1336
          #33 0x10ea1eaf5 in QGuiApplication::exec() qguiapplication.cpp:1753
          #34 0x10b615930 in TshnmApplication::doRun(int&, char**) TshnmApplication.cpp:264
          #35 0x10bb4b7d7 in AbstractApplication::run(int&, char**) AbstractApplication.cpp:43
          #36 0x10b6477f7 in main main.cpp:17
          #37 0x7fff50938014 in start (libdyld.dylib:x86_64+0x1014)
      
      ==56822==Register values:
      rax = 0x0000000000000008  rbx = 0x00007ffee4688920  rcx = 0x0000100000000001  rdx = 0x00007ffee4688bc0  
      rdi = 0x0000000000000008  rsi = 0x0000000000000000  rbp = 0x00007ffee4688830  rsp = 0x00007ffee4688820  
       r8 = 0x000000010fc22772   r9 = 0x00007ffee46888a0  r10 = 0x00007ffee46888c0  r11 = 0x00007ffee46888e0  
      r12 = 0xf200f204f204f2f2  r13 = 0xf2f8f2f2f200f2f2  r14 = 0x00007ffee4688900  r15 = 0xf200f2f2f200f2f2  
      AddressSanitizer can not provide additional info.
      SUMMARY: AddressSanitizer: SEGV qscopedpointer.h:118 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator->() const
      ==56822==ABORTING
      22:29:31: The program has unexpectedly finished.
      

      Attachments

        Issue Links

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

          Activity

            People

              srutledg Shawn Rutledge
              mitch_curtis Mitch Curtis
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes