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

Wayland: Crash in XDG Shell when resizing window with mouse

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.15.8, 6.2.3, 6.3.0 Alpha
    • 5.15.5, 6.3.0
    • Wayland Compositor
    • None
    • Ubuntu 18.04, Intel graphics
    • Linux/Wayland
    • 07ddfbfa43d08c2b76aabafaab38830e04a42690 (qt/qtwayland/dev) 48447897ad0a28e756ed27fecdb4e22aefa01d2c (qt/qtwayland/6.2) a64c7ab8359ba40f86a04808ce29310fb332f088 (qt/tqtc-qtwayland/5.15)
    • Wayland Project - Backlog task

    Description

      1. Run pure-qml compositor (with wayland-egl and xcb_egl, not sure if it matters)
      2. Run shadereffects example from Qt Quick
      3. With the mouse, grab the bottom-right corner of the window and drag it around to resize it.
      4. Let go.
      5. Start resizing again

      For me, this pretty consistently leads to a crash with the following stack trace.

      #0  0x00007fffd5d6f8f4 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get (this=0x8) at /media/eskil/Dev/dev/qt5-dev-2/base/src/corelib/tools/qscopedpointer.h:147
      #1  0x00007fffd5d6f6a5 in qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > > (ptr=...) at /media/eskil/Dev/dev/qt5-dev-2/base/src/corelib/global/qglobal.h:1303
      #2  0x00007fffd5d6f282 in QWaylandCompositor::d_func (this=0x0) at /media/eskil/Dev/dev/qt5-dev-2/wayland/src/compositor/compositor_api/qwaylandcompositor.h:70
      #3  0x00007fffd5d75014 in QWaylandCompositor::seatFor (this=0x0, inputEvent=0x7fffffffd310) at src/compositor/compositor_api/qwaylandcompositor.cpp:965
      #4  0x00007fffd5ec6470 in QtWayland::XdgToplevelIntegration::filterMouseMoveEvent (this=0x55555595deb0, event=0x7fffffffd310) at src/compositor/extensions/qwaylandxdgshellintegration.cpp:88
      #5  0x00007fffd5ec63c1 in QtWayland::XdgToplevelIntegration::eventFilter (this=0x55555595deb0, object=0x555555afff80, event=0x7fffffffd310) at src/compositor/extensions/qwaylandxdgshellintegration.cpp:77
      #6  0x00007ffff6185539 in QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=0x555555afff80, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1189
      #7  0x00007ffff6185624 in QCoreApplicationPrivate::notify_helper (receiver=0x555555afff80, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1218
      #8  0x00007ffff618520d in doNotify (receiver=0x555555afff80, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1153
      #9  0x00007ffff618516c in QCoreApplication::notify (this=0x7fffffffd8a0, receiver=0x555555afff80, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1139
      #10 0x00007ffff759d93f in QGuiApplication::notify (this=0x7fffffffd8a0, object=0x555555afff80, event=0x7fffffffd310) at src/gui/kernel/qguiapplication.cpp:1942
      #11 0x00007ffff6185095 in QCoreApplication::notifyInternal2 (receiver=0x555555afff80, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1063
      #12 0x00007ffff6185b52 in QCoreApplication::sendEvent (receiver=0x555555afff80, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1471
      #13 0x00007fffd679f4d9 in QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem (this=0x55555590a310, item=0x555555afff80, isGrabber=true, pointerEvent=0x7fffffffd310, handlersOnly=false) at src/quick/util/qquickdeliveryagent.cpp:1969
      #14 0x00007fffd679e623 in QQuickDeliveryAgentPrivate::deliverUpdatedPoints (this=0x55555590a310, event=0x7fffffffd310) at src/quick/util/qquickdeliveryagent.cpp:1813
      #15 0x00007fffd679da61 in QQuickDeliveryAgentPrivate::deliverPointerEvent (this=0x55555590a310, event=0x7fffffffd310) at src/quick/util/qquickdeliveryagent.cpp:1689
      #16 0x00007fffd679c180 in QQuickDeliveryAgentPrivate::handleMouseEvent (this=0x55555590a310, event=0x7fffffffd310) at src/quick/util/qquickdeliveryagent.cpp:1487
      #17 0x00007fffd6797c88 in QQuickDeliveryAgent::event (this=0x55555590a2f0, ev=0x7fffffffd310) at src/quick/util/qquickdeliveryagent.cpp:705
      #18 0x00007fffd663fda1 in QQuickWindow::event (this=0x555555909d80, e=0x7fffffffd310) at src/quick/items/qquickwindow.cpp:1457
      #19 0x00007ffff6185650 in QCoreApplicationPrivate::notify_helper (receiver=0x555555909d80, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1224
      #20 0x00007ffff618520d in doNotify (receiver=0x555555909d80, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1153
      #21 0x00007ffff618516c in QCoreApplication::notify (this=0x7fffffffd8a0, receiver=0x555555909d80, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1139
      #22 0x00007ffff759d93f in QGuiApplication::notify (this=0x7fffffffd8a0, object=0x555555909d80, event=0x7fffffffd310) at src/gui/kernel/qguiapplication.cpp:1942
      #23 0x00007ffff6185095 in QCoreApplication::notifyInternal2 (receiver=0x555555909d80, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1063
      #24 0x00007ffff6185b8a in QCoreApplication::sendSpontaneousEvent (receiver=0x555555909d80, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1483
      #25 0x00007ffff759ea8b in QGuiApplicationPrivate::processMouseEvent (e=0x7fffc58fb2f0) at src/gui/kernel/qguiapplication.cpp:2260
      #26 0x00007ffff759de36 in QGuiApplicationPrivate::processWindowSystemEvent (e=0x7fffc58fb2f0) at src/gui/kernel/qguiapplication.cpp:2011
      #27 0x00007ffff761db12 in QWindowSystemEventHandler::sendEvent (this=0x555555904b50, e=0x7fffc58fb2f0) at src/gui/kernel/qwindowsysteminterface.cpp:194
      #28 0x00007fffd5d773fe in QtWayland::WindowSystemEventHandler::sendEvent (this=0x555555904b50, e=0x7fffc58fb2f0) at src/compositor/compositor_api/qwaylandcompositor.cpp:104
      #29 0x00007ffff7620425 in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at src/gui/kernel/qwindowsysteminterface.cpp:1162
      #30 0x00007ffff224415e in xcbSourceDispatch (source=0x5555555e5670) at src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:93
      #31 0x00007ffff592e17d in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
      #32 0x00007ffff592e400 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
      #33 0x00007ffff592e4a3 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
      #34 0x00007ffff658c1a0 in QEventDispatcherGlib::processEvents (this=0x5555555de150, flags=...) at src/corelib/kernel/qeventdispatcher_glib.cpp:429
      #35 0x00007ffff22443c2 in QXcbGlibEventDispatcher::processEvents (this=0x5555555de150, flags=...) at src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:132
      #36 0x00007ffff61993f9 in QEventLoop::processEvents (this=0x7fffffffd820, flags=...) at src/corelib/kernel/qeventloop.cpp:135
      #37 0x00007ffff619976d in QEventLoop::exec (this=0x7fffffffd820, flags=...) at src/corelib/kernel/qeventloop.cpp:219
      #38 0x00007ffff618596d in QCoreApplication::exec () at src/corelib/kernel/qcoreapplication.cpp:1378
      #39 0x00007ffff759d750 in QGuiApplication::exec () at src/gui/kernel/qguiapplication.cpp:1874
      #40 0x0000555555556557 in main (argc=1, argv=0x7fffffffd9f8) at main.cpp:67
      

      I have no idea why the compositor would be null in this case, but it always crashes in this location, so it does not seem like a random side effect.

      If I comment out the asserts in filterMouseEvent() that trigger the crash, a new crash happens:

      #0  0x00007ffff097efbc in wl_resource_post_event () from /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
      #1  0x00007fffd5e7bd03 in xdg_toplevel_send_configure (resource_=0x55555594d730, width=490, height=626, states=0x7fffffffc430)
          at /media/eskil/Dev/dev/qt5-dev-2/base/include/QtWaylandCompositor/6.2.0/QtWaylandCompositor/private/../../../../../../wayland/src/compositor/wayland-xdg-shell-server-protocol.h:1391
      #2  0x00007fffd5e7f845 in QtWaylandServer::xdg_toplevel::send_configure (this=0x555555953f88, resource=0x55555594d730, width=490, height=626, states=...) at src/compositor/qwayland-server-xdg-shell.cpp:1314
      #3  0x00007fffd5e7f7c3 in QtWaylandServer::xdg_toplevel::send_configure (this=0x555555953f88, width=490, height=626, states=...) at src/compositor/qwayland-server-xdg-shell.cpp:1300
      #4  0x00007fffd5df0bbd in QWaylandXdgToplevel::sendConfigure (this=0x5555559707b0, size=..., states=...) at src/compositor/extensions/qwaylandxdgshell.cpp:1028
      #5  0x00007fffd5df10b8 in QWaylandXdgToplevel::sendResizing (this=0x5555559707b0, maxSize=...) at src/compositor/extensions/qwaylandxdgshell.cpp:1178
      #6  0x00007fffd5ec6540 in QtWayland::XdgToplevelIntegration::filterMouseMoveEvent (this=0x55555596cea0, event=0x7fffffffd310) at src/compositor/extensions/qwaylandxdgshellintegration.cpp:99
      #7  0x00007fffd5ec63c1 in QtWayland::XdgToplevelIntegration::eventFilter (this=0x55555596cea0, object=0x55555594d970, event=0x7fffffffd310) at src/compositor/extensions/qwaylandxdgshellintegration.cpp:77
      #8  0x00007ffff6185539 in QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=0x55555594d970, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1189
      #9  0x00007ffff6185624 in QCoreApplicationPrivate::notify_helper (receiver=0x55555594d970, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1218
      #10 0x00007ffff618520d in doNotify (receiver=0x55555594d970, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1153
      #11 0x00007ffff618516c in QCoreApplication::notify (this=0x7fffffffd8a0, receiver=0x55555594d970, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1139
      #12 0x00007ffff759d93f in QGuiApplication::notify (this=0x7fffffffd8a0, object=0x55555594d970, event=0x7fffffffd310) at src/gui/kernel/qguiapplication.cpp:1942
      #13 0x00007ffff6185095 in QCoreApplication::notifyInternal2 (receiver=0x55555594d970, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1063
      #14 0x00007ffff6185b52 in QCoreApplication::sendEvent (receiver=0x55555594d970, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1471
      #15 0x00007fffd679f4d9 in QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem (this=0x5555559066b0, item=0x55555594d970, isGrabber=true, pointerEvent=0x7fffffffd310, handlersOnly=false) at src/quick/util/qquickdeliveryagent.cpp:1969
      #16 0x00007fffd679e623 in QQuickDeliveryAgentPrivate::deliverUpdatedPoints (this=0x5555559066b0, event=0x7fffffffd310) at src/quick/util/qquickdeliveryagent.cpp:1813
      #17 0x00007fffd679da61 in QQuickDeliveryAgentPrivate::deliverPointerEvent (this=0x5555559066b0, event=0x7fffffffd310) at src/quick/util/qquickdeliveryagent.cpp:1689
      #18 0x00007fffd679c180 in QQuickDeliveryAgentPrivate::handleMouseEvent (this=0x5555559066b0, event=0x7fffffffd310) at src/quick/util/qquickdeliveryagent.cpp:1487
      #19 0x00007fffd6797c88 in QQuickDeliveryAgent::event (this=0x555555906690, ev=0x7fffffffd310) at src/quick/util/qquickdeliveryagent.cpp:705
      #20 0x00007fffd663fda1 in QQuickWindow::event (this=0x555555906120, e=0x7fffffffd310) at src/quick/items/qquickwindow.cpp:1457
      #21 0x00007ffff6185650 in QCoreApplicationPrivate::notify_helper (receiver=0x555555906120, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1224
      #22 0x00007ffff618520d in doNotify (receiver=0x555555906120, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1153
      #23 0x00007ffff618516c in QCoreApplication::notify (this=0x7fffffffd8a0, receiver=0x555555906120, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1139
      #24 0x00007ffff759d93f in QGuiApplication::notify (this=0x7fffffffd8a0, object=0x555555906120, event=0x7fffffffd310) at src/gui/kernel/qguiapplication.cpp:1942
      #25 0x00007ffff6185095 in QCoreApplication::notifyInternal2 (receiver=0x555555906120, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1063
      #26 0x00007ffff6185b8a in QCoreApplication::sendSpontaneousEvent (receiver=0x555555906120, event=0x7fffffffd310) at src/corelib/kernel/qcoreapplication.cpp:1483
      #27 0x00007ffff759ea8b in QGuiApplicationPrivate::processMouseEvent (e=0x7fffc58f92f0) at src/gui/kernel/qguiapplication.cpp:2260
      #28 0x00007ffff759de36 in QGuiApplicationPrivate::processWindowSystemEvent (e=0x7fffc58f92f0) at src/gui/kernel/qguiapplication.cpp:2011
      #29 0x00007ffff761db12 in QWindowSystemEventHandler::sendEvent (this=0x5555559010d0, e=0x7fffc58f92f0) at src/gui/kernel/qwindowsysteminterface.cpp:194
      #30 0x00007fffd5d773fe in QtWayland::WindowSystemEventHandler::sendEvent (this=0x5555559010d0, e=0x7fffc58f92f0) at src/compositor/compositor_api/qwaylandcompositor.cpp:104
      #31 0x00007ffff7620425 in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at src/gui/kernel/qwindowsysteminterface.cpp:1162
      #32 0x00007ffff224415e in xcbSourceDispatch (source=0x5555555e2220) at src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:93
      #33 0x00007ffff592e17d in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
      #34 0x00007ffff592e400 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
      #35 0x00007ffff592e4a3 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
      #36 0x00007ffff658c1a0 in QEventDispatcherGlib::processEvents (this=0x5555555e7b80, flags=...) at src/corelib/kernel/qeventdispatcher_glib.cpp:429
      #37 0x00007ffff22443c2 in QXcbGlibEventDispatcher::processEvents (this=0x5555555e7b80, flags=...) at src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:132
      #38 0x00007ffff61993f9 in QEventLoop::processEvents (this=0x7fffffffd820, flags=...) at src/corelib/kernel/qeventloop.cpp:135
      #39 0x00007ffff619976d in QEventLoop::exec (this=0x7fffffffd820, flags=...) at src/corelib/kernel/qeventloop.cpp:219
      #40 0x00007ffff618596d in QCoreApplication::exec () at src/corelib/kernel/qcoreapplication.cpp:1378
      #41 0x00007ffff759d750 in QGuiApplication::exec () at src/gui/kernel/qguiapplication.cpp:1874
      #42 0x0000555555556557 in main (argc=1, argv=0x7fffffffd9f8) at main.cpp:67
      

      Attachments

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

        Activity

          People

            inho Inho Lee
            esabraha Eskil Abrahamsen Blomfeldt
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes