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

Qt applications crash when dragging to a different X11 Screen

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.7.2
    • QPA: X11/XCB
    • None
    • An X11 with two independent X11 screens (colloquially known as "Zaphode mode").
    • Linux/X11

    Description

      On a system with several independent X11 screens (colloquially also known as "zaphode mode") an attempt to drag anything to a different screen from a Qt application results in a segfault.

      A sample backtrace from draggableicons example:

      #0  0x00007ffff68146b2 in QScopedPointer<QPlatformScreenPrivate, QScopedPointerDeleter<QPlatformScreenPrivate> >::get (this=0x8)
          at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/tools/qscopedpointer.h:112
      #1  0x00007ffff6814379 in qGetPtrHelper<QScopedPointer<QPlatformScreenPrivate, QScopedPointerDeleter<QPlatformScreenPrivate> > const> (ptr=...)
          at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/global/qtclasshelpermacros.h:79
      #2  0x00007ffff6813ece in QPlatformScreen::d_func (this=0x0) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qplatformscreen.h:45
      #3  0x00007ffff6812ede in QPlatformScreen::screen (this=0x0) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qplatformscreen.cpp:115
      #4  0x00007ffff2b9b72d in QXcbDrag::move (this=0x5555555dd550, globalPos=..., b=..., mods=...) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/plugins/platforms/xcb/qxcbdrag.cpp:354
      #5  0x00007ffff6ccce49 in QBasicDrag::eventFilter (this=0x5555555dd550, o=0x5555555fd5e0, e=0x7fffffffb180) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qsimpledrag.cpp:123
      #6  0x00007ffff2b9a016 in QXcbDrag::eventFilter (this=0x5555555dd550, o=0x5555555fd5e0, e=0x7fffffffb180) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/plugins/platforms/xcb/qxcbdrag.cpp:137
      #7  0x00007ffff60989fa in QCoreApplicationPrivate::sendThroughApplicationEventFilters (this=0x555555588340, receiver=0x55555559d5c0, event=0x7fffffffb180)
          at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcoreapplication.cpp:1261
      #8  0x00007ffff7a80b66 in QApplicationPrivate::notify_helper (this=0x555555588340, receiver=0x55555559d5c0, e=0x7fffffffb180)
          at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/kernel/qapplication.cpp:3258
      #9  0x00007ffff7a80aba in QApplication::notify (this=0x7fffffffca20, receiver=0x55555559d5c0, e=0x7fffffffb180) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/kernel/qapplication.cpp:3238
      #10 0x00007ffff6098755 in QCoreApplication::notifyInternal2 (receiver=0x55555559d5c0, event=0x7fffffffb180) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcoreapplication.cpp:1142
      #11 0x00007ffff609925f in QCoreApplication::sendSpontaneousEvent (receiver=0x55555559d5c0, event=0x7fffffffb180) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcoreapplication.cpp:1597
      #12 0x00007ffff67aec99 in QGuiApplicationPrivate::processMouseEvent (e=0x555555599180) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qguiapplication.cpp:2327
      #13 0x00007ffff67ae00c in QGuiApplicationPrivate::processWindowSystemEvent (e=0x555555599180) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qguiapplication.cpp:2071
      #14 0x00007ffff6863f9a in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qwindowsysteminterface.cpp:1114
      #15 0x00007ffff2b47210 in xcbSourceDispatch (source=0x5555555de0f0) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:57
      #16 0x00007ffff5527166 in ?? () from /usr/lib64/libglib-2.0.so.0
      #17 0x00007ffff552a287 in ?? () from /usr/lib64/libglib-2.0.so.0
      #18 0x00007ffff552a8b0 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
      #19 0x00007ffff5ca2e50 in QEventDispatcherGlib::processEvents (this=0x5555555d7e70, flags=...) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qeventdispatcher_glib.cpp:394
      #20 0x00007ffff2b4746e in QXcbGlibEventDispatcher::processEvents (this=0x5555555d7e70, flags=...) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:96
      #21 0x00007ffff609f553 in QEventLoop::processEvents (this=0x7fffe4003590, flags=...) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qeventloop.cpp:100
      #22 0x00007ffff609f877 in QEventLoop::exec (this=0x7fffe4003590, flags=...) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qeventloop.cpp:182
      #23 0x00007ffff6ccd422 in QBasicDrag::drag (this=0x5555555dd550, o=0x5555556220d0) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qsimpledrag.cpp:176
      #24 0x00007ffff6cc6bc6 in QDragManager::drag (this=0x55555560d820, o=0x5555556220d0) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qdnd.cpp:81
      #25 0x00007ffff6cc74fc in QDrag::exec (this=0x5555556220d0, supportedActions=..., defaultDropAction=Qt::CopyAction) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qdrag.cpp:248
      #26 0x000055555555871a in DragWidget::mousePressEvent (this=0x5555555e2470, event=0x7fffffffbc10) at /tmp/draggableicons/dragwidget.cpp:125
      #27 0x00007ffff7abd74a in QWidget::event (this=0x5555555e2470, event=0x7fffffffbc10) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/kernel/qwidget.cpp:9021
      #28 0x00007ffff799148d in QFrame::event (this=0x5555555e2470, e=0x7fffffffbc10) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/widgets/qframe.cpp:521
      #29 0x00007ffff7a80cc8 in QApplicationPrivate::notify_helper (this=0x555555588340, receiver=0x5555555e2470, e=0x7fffffffbc10)
          at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/kernel/qapplication.cpp:3287
      #30 0x00007ffff7a7e8f5 in QApplication::notify (this=0x7fffffffca20, receiver=0x5555555e65b0, e=0x7fffffffbf40) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/kernel/qapplication.cpp:2765
      #31 0x00007ffff6098755 in QCoreApplication::notifyInternal2 (receiver=0x5555555e65b0, event=0x7fffffffbf40) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcoreapplication.cpp:1142
      #32 0x00007ffff609925f in QCoreApplication::sendSpontaneousEvent (receiver=0x5555555e65b0, event=0x7fffffffbf40) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcoreapplication.cpp:1597
      #33 0x00007ffff7a7d3bc in QApplicationPrivate::sendMouseEvent (receiver=0x5555555e65b0, event=0x7fffffffbf40, alienWidget=0x5555555e65b0, nativeWidget=0x7fffffffca50, buttonDown=0x7ffff7eaee90 <qt_button_down>, lastMouseReceiver=...,
          spontaneous=true, onlyDispatchEnterLeave=false) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/kernel/qapplication.cpp:2347
      #34 0x00007ffff7ad230e in QWidgetWindow::handleMouseEvent (this=0x5555555fd5e0, event=0x7fffffffc4d0) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/kernel/qwidgetwindow.cpp:649
      #35 0x00007ffff7ad0763 in QWidgetWindow::event (this=0x5555555fd5e0, event=0x7fffffffc4d0) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/kernel/qwidgetwindow.cpp:263
      #36 0x00007ffff7a80cc8 in QApplicationPrivate::notify_helper (this=0x555555588340, receiver=0x5555555fd5e0, e=0x7fffffffc4d0)
          at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/kernel/qapplication.cpp:3287
      #37 0x00007ffff7a80aba in QApplication::notify (this=0x7fffffffca20, receiver=0x5555555fd5e0, e=0x7fffffffc4d0) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/kernel/qapplication.cpp:3238
      #38 0x00007ffff6098755 in QCoreApplication::notifyInternal2 (receiver=0x5555555fd5e0, event=0x7fffffffc4d0) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcoreapplication.cpp:1142
      #39 0x00007ffff609925f in QCoreApplication::sendSpontaneousEvent (receiver=0x5555555fd5e0, event=0x7fffffffc4d0) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcoreapplication.cpp:1597
      #40 0x00007ffff67aec99 in QGuiApplicationPrivate::processMouseEvent (e=0x555555596a20) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qguiapplication.cpp:2327
      #41 0x00007ffff67ae00c in QGuiApplicationPrivate::processWindowSystemEvent (e=0x555555596a20) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qguiapplication.cpp:2071
      #42 0x00007ffff6863f9a in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qwindowsysteminterface.cpp:1114
      #43 0x00007ffff2b47210 in xcbSourceDispatch (source=0x5555555de0f0) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:57
      #44 0x00007ffff5527166 in ?? () from /usr/lib64/libglib-2.0.so.0
      #45 0x00007ffff552a287 in ?? () from /usr/lib64/libglib-2.0.so.0
      #46 0x00007ffff552a8b0 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
      #47 0x00007ffff5ca2e50 in QEventDispatcherGlib::processEvents (this=0x5555555d7e70, flags=...) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qeventdispatcher_glib.cpp:394
      #48 0x00007ffff2b4746e in QXcbGlibEventDispatcher::processEvents (this=0x5555555d7e70, flags=...) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:96
      #49 0x00007ffff609f553 in QEventLoop::processEvents (this=0x7fffffffc990, flags=...) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qeventloop.cpp:100
      #50 0x00007ffff609f877 in QEventLoop::exec (this=0x7fffffffc990, flags=...) at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qeventloop.cpp:182
      #51 0x00007ffff6099040 in QCoreApplication::exec () at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcoreapplication.cpp:1486
      #52 0x00007ffff67ad93e in QGuiApplication::exec () at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/gui/kernel/qguiapplication.cpp:1926
      --Type <RET> for more, q to quit, c to continue without paging--
      #53 0x00007ffff7a7dcb9 in QApplication::exec () at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/widgets/kernel/qapplication.cpp:2555
      #54 0x0000555555559862 in main (argc=1, argv=0x7fffffffcbb8) at /tmp/draggableicons/main.cpp:21
      

      Edit: The backtrace is replaced with more useful from a debug build of Qt
      Edit2: a typo

      Attachments

        Issue Links

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

          Activity

            People

              liaqi Liang Qi
              fat-zer Alexander Golubev
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes