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

Crash in QCocoaAccessible::shouldBeIgnored

XMLWordPrintable

    • macOS
    • 74e5a51ba (dev), 4874a7b13 (6.9), 0d3d1e290 (6.8), bdcb48007 (tqtc/lts-6.5)

      Deleting a QComboBox that has focus and was "opened" before while some Accessibility feature of macOS (e.g. Voice Over) is enabled, leads to a crash with the following backtrace:

      Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
      0   QtWidgets                     	       0x103c17de0 0x1039b0000 + 2522592
      1   libqcocoa.dylib               	       0x102c60f74 QCocoaAccessible::shouldBeIgnored(QAccessibleInterface*) + 32 (qcocoaaccessibility.mm:195)
      2   AppKit                        	       0x190ba5ca4 __NSAccessibilityEntryPointIsAccessibilityElement_block_invoke + 424
      3   AppKit                        	       0x190ba5ab8 NSAccessibilityPerformEntryPointBOOL + 44
      4   AppKit                        	       0x1905a0454 NSAccessibilityEntryPointIsAccessibilityElement + 140
      5   AppKit                        	       0x1906914b4 NSAccessibilityUnignoredAncestor + 24
      6   AppKit                        	       0x190ff5098 -[NSWindow(NSWindowAccessibility) accessibilityFocusedUIElement] + 88
      7   AppKit                        	       0x1905f56ac NSAccessibilityHandleFocusChangedForce + 136
      8   AppKit                        	       0x190614c90 -[NSWindow _realMakeFirstResponder:] + 724
      9   libqcocoa.dylib               	       0x102c25a8c QCocoaWindow::~QCocoaWindow() + 304 (qcocoawindow.mm:151)
      10  libqcocoa.dylib               	       0x102c25dcc QCocoaWindow::~QCocoaWindow() + 4 (qcocoawindow.mm:147) [inlined]
      11  libqcocoa.dylib               	       0x102c25dcc QCocoaWindow::~QCocoaWindow() + 4 (qcocoawindow.mm:147) [inlined]
      12  libqcocoa.dylib               	       0x102c25dcc non-virtual thunk to QCocoaWindow::~QCocoaWindow() + 16
      13  QtGui                         	       0x102ead470 QWindowPrivate::destroy() + 168 (qwindow.cpp:2022)
      14  QtWidgets                     	       0x103a19ad8 0x1039b0000 + 432856
      15  QtWidgets                     	       0x103a19bf8 0x1039b0000 + 433144
      16  QtWidgets                     	       0x1039f7244 QWidget::destroy(bool, bool) + 648
      17  QtWidgets                     	       0x1039f6d34 QWidget::~QWidget() + 1208
      18  QtWidgets                     	       0x103ad15e4 QComboBoxPrivateContainer::~QComboBoxPrivateContainer() + 124
      19  QtWidgets                     	       0x103ad480c QComboBox::~QComboBox() + 140
      20  QtWidgets                     	       0x103ad4834 QComboBox::~QComboBox() + 12
      21  combobox                      	       0x102989fe4 Window::recreateComboBox() + 108
      22  combobox                      	       0x10298b058 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (Window::*)()>::call(void (Window::*)(), Window*, void**) + 140
      23  combobox                      	       0x10298af80 void QtPrivate::FunctionPointer<void (Window::*)()>::call<QtPrivate::List<>, void>(void (Window::*)(), Window*, void**) + 80
      24  combobox                      	       0x10298ae4c QtPrivate::QSlotObject<void (Window::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) + 172
      25  QtCore                        	       0x104abbb94 QtPrivate::QSlotObjectBase::call(QObject*, void**) + 28 (qobjectdefs_impl.h:374) [inlined]
      26  QtCore                        	       0x104abbb94 void doActivate<false>(QObject*, int, void**) + 1320 (qobject.cpp:4063)
      27  QtWidgets                     	       0x103ab91fc 0x1039b0000 + 1085948
      28  QtWidgets                     	       0x103ab907c 0x1039b0000 + 1085564
      29  QtWidgets                     	       0x103ab9f7c QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 172
      30  QtWidgets                     	       0x103a05af8 QWidget::event(QEvent*) + 132
      31  QtWidgets                     	       0x1039bc5d4 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 272
      32  QtWidgets                     	       0x1039be630 QApplication::notify(QObject*, QEvent*) + 5112
      33  QtCore                        	       0x104a71b94 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 292 (qcoreapplication.cpp:1127)
      34  QtWidgets                     	       0x1039bcb74 QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) + 808
      35  QtWidgets                     	       0x103a1aa80 0x1039b0000 + 436864
      36  QtWidgets                     	       0x103a19d38 0x1039b0000 + 433464
      37  QtWidgets                     	       0x1039bc5d4 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 272
      38  QtWidgets                     	       0x1039bd438 QApplication::notify(QObject*, QEvent*) + 512
      39  QtCore                        	       0x104a71b94 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 292 (qcoreapplication.cpp:1127)
      40  QtGui                         	       0x102e63520 QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 1728 (qguiapplication.cpp:2379)
      41  QtGui                         	       0x102eba8e4 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 396 (qwindowsysteminterface.cpp:1094)
      42  libqcocoa.dylib               	       0x102c02f9c QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void*) + 560 (qcocoaeventdispatcher.mm:921)
      43  CoreFoundation                	       0x18ccc54b8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
      44  CoreFoundation                	       0x18ccc544c __CFRunLoopDoSource0 + 176
      45  CoreFoundation                	       0x18ccc51bc __CFRunLoopDoSources0 + 244
      46  CoreFoundation                	       0x18ccc3da8 __CFRunLoopRun + 828
      47  CoreFoundation                	       0x18ccc3414 CFRunLoopRunSpecific + 608
      48  HIToolbox                     	       0x19746e19c RunCurrentEventLoopInMode + 292
      49  HIToolbox                     	       0x19746de2c ReceiveNextEventCommon + 220
      50  HIToolbox                     	       0x19746dd30 _BlockUntilNextEventMatchingListInModeWithFilter + 76
      51  AppKit                        	       0x190522cc8 _DPSNextEvent + 660
      52  AppKit                        	       0x190d194d0 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
      53  AppKit                        	       0x190515ffc -[NSApplication run] + 476
      54  libqcocoa.dylib               	       0x102c00b10 QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 2160 (qcocoaeventdispatcher.mm:405)
      55  QtCore                        	       0x104a7b7fc QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 36 (qeventloop.cpp:100) [inlined]
      56  QtCore                        	       0x104a7b7fc QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 532 (qeventloop.cpp:182)
      57  QtCore                        	       0x104a72220 QCoreApplication::exec() + 112 (qcoreapplication.cpp:1448)
      58  combobox                      	       0x10298989c main + 84
      59  dyld                          	       0x18c85b154 start + 2476
      

      See attached minimal example ComboBoxes.zip to reproduce it:
      1. Enable some Accessibility feature (e.g. Voice Over)
      2. Start the example application
      3. Select a different entry in the ComboBox
      4. Click on "Recreate ComboBox"

      The crash doesn't happen if you select a line edit after editing the ComboBox, or if you just use "tab" to get the focus on the ComboBox, without "opening" it.

        1. ComboBoxes.zip
          2 kB
          Simon Geisseler
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            vhilshei Volker Hilsheimer
            simon.geisseler Simon Geisseler
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes