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

[REG 6.5.0 -> 6.5.1] Segfault in QXcbConnection::handleXcbEvent with touch(pad) gestures after disconnecting input device

    XMLWordPrintable

Details

    • Linux/X11
    • a8a75d2c4 (dev), 8c36f935a (6.5.2), 755b80b1f (6.5), e938a4a10 (6.6)

    Description

      • Use a device with a touchpad (i.e. pretty much any laptop) or a touchscreen
      • Run any Qt example on Qt 6.5.1, e.g. the widgets/calculator example
      • Disconnect any input device (e.g. an USB or bluetooth keyboard)
      • Do a gesture (e.g. pinch zoom) on the touchpad/touchscreen
      • The application segfaults here:
      #0  0x00007ffff2ba3ccc in QXcbConnection::xi2HandleGesturePinchEvent(void*) () from /usr/lib/qt6/plugins/platforms/../../../libQt6XcbQpa.so.6
      #1  0x00007ffff2b9397c in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) () from /usr/lib/qt6/plugins/platforms/../../../libQt6XcbQpa.so.6
      #2  0x00007ffff2b9b92c in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt6/plugins/platforms/../../../libQt6XcbQpa.so.6
      #3  0x00007ffff2bb0f97 in ?? () from /usr/lib/qt6/plugins/platforms/../../../libQt6XcbQpa.so.6
      #4  0x00007ffff6126981 in g_main_dispatch (context=0x7fffec000f10) at ../glib/glib/gmain.c:3460
      #5  g_main_context_dispatch (context=0x7fffec000f10) at ../glib/glib/gmain.c:4200
      #6  0x00007ffff6183b39 in g_main_context_iterate.isra.0 (context=context@entry=0x7fffec000f10, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4276
      #7  0x00007ffff6124032 in g_main_context_iteration (context=0x7fffec000f10, may_block=1) at ../glib/glib/gmain.c:4343
      #8  0x00007ffff6b344d4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Core.so.6
      #9  0x00007ffff6944cd3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Core.so.6
      #10 0x00007ffff693e378 in QCoreApplication::exec() () from /usr/lib/libQt6Core.so.6
      #11 0x0000555555558818 in main ()
      

      In the upstream issue, I also get reports with a stacktrace pointing to xi2HandleGestureSwipeEvent. Touchscreen users report that using the touchscreen on the window is enough as well (though I haven't tried that), and one user reports that "For instance, I use a three-finger drag (intercepted by libinput-gestures) to switch between workspaces, and that will also often lead to a crash (though not reliably, strangely enough)."

      Attachments

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

        Activity

          People

            srutledg Shawn Rutledge
            the compiler Florian Bruhin
            Votes:
            2 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: