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

XCB crash on plugin load when HighDPI and multiple monitors

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P0: Blocker
    • 6.4.0 RC1
    • 6.4, 6.5
    • QPA
    • None
    • bf06976ef0 (qt/qtbase/6.4) bf06976ef0 (qt/tqtc-qtbase/6.4)

    Description

      #0  0x00007ffff73483e6 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get (this=0x8)
          at /home/tjmaciei/obj/qt/qt6/qtbase/include/QtCore/../../../../../../src/qt/qt6/qtbase/src/corelib/tools/qscopedpointer.h:111
      #1  0x00007ffff73dc4ea in qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const> (ptr=...)
          at /home/tjmaciei/obj/qt/qt6/qtbase/include/QtCore/../../../../../../src/qt/qt6/qtbase/src/corelib/global/qglobal.h:1102
      #2  0x00007ffff746c074 in QScreen::d_func (this=0x0) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.h:34
      #3  0x00007ffff7469ea0 in QScreen::geometry (this=0x0) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.cpp:383
      #4  0x00007ffff746a0aa in QScreen::virtualGeometry (this=0x701ab0) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.cpp:452
      #5  0x00007ffff7469563 in QScreenPrivate::emitGeometryChangeSignals (this=0x7ffff0003b30, geometryChanged=true, availableGeometryChanged=true)
          at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.cpp:86
      #6  0x00007ffff7469483 in QScreenPrivate::updateGeometriesWithSignals (this=0x7ffff0003b30) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.cpp:71
      #7  0x00007ffff74693e9 in QScreenPrivate::updateLogicalDpi (this=0x7ffff0003b30) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.cpp:63
      #8  0x00007ffff740f65a in QHighDpiScaling::setScreenFactor (screen=0x701ab0, factor=2)
          at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qhighdpiscaling.cpp:559
      #9  0x00007ffff740f16f in QHighDpiScaling::updateHighDpiScaling () at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qhighdpiscaling.cpp:493
      #10 0x00007ffff74847f0 in QWindowSystemInterface::handleScreenAdded (ps=0x7ffff0005500, isPrimary=true)
          at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:754
      #11 0x00007ffff4d71608 in QXcbConnection::initializeScreens (this=0x6cbe10, initialized=false)
          at /home/tjmaciei/src/qt/qt6/qtbase/src/plugins/platforms/xcb/qxcbconnection_screens.cpp:347
      

      Caused by 7b2ae3faab15913e006ece25d785e6a8453dd27a (https://codereview.qt-project.org/c/qt/qtbase/+/413380).

      Reason: QXcbVirtualDesktop's m_screens is still incompletely initialised. At the time of frame 11 (QXcbConnection::initializeScreens), m_screens has two QXcbScreen items ("eDP-1" and "DP-1" for me), but only the first one's m_screen is non-null. When handleScreenAdded is called, it queries back to the virtual desktop in QScreen::virtualGeometry and gets a null QScreen pointer.

      Attachments

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

        Activity

          People

            thiago Thiago Macieira
            thiago Thiago Macieira
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes