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

[Linux] Crash when using a fake screen

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2: Important
    • 6.4.1
    • 6.3.2
    • QPA: X11/XCB
    • None
    • Linux/X11

    Description

      Out QTest-based tests were found to crash on the system without display, where Qt will create a fake screen, but the test crashed somewhere in the test body. Sorry that I can't get a complete crash stack trace because I'm not clear on how to get the same configurations locally (the crash was found on our cloud testing service).

       

      This is the Qt log. In the crash cases, the fake screen is always created with: geometry=0x0+0+0, availableGeometry=0x0+0+0

      qt.qpa.plugin: init_platform called with pluginNamesWithArguments "xcb" platformPluginPath "" platformThemeName ""
      qt.core.plugin.factoryloader: checking directory path "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platforms" ...
      qt.core.plugin.factoryloader: looking at "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platforms/libqoffscreen.so"
      qt.core.plugin.loader: Found metadata in lib /data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platforms/libqoffscreen.so, metadata=
      {
          "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
          "MetaData": {
              "Keys": [
                  "offscreen"
              ]
          },
          "archlevel": 1,
          "className": "QOffscreenIntegrationPlugin",
          "debug": false,
          "version": 393984
      }
      qt.core.plugin.factoryloader: Got keys from plugin meta data QList("offscreen")
      qt.core.plugin.factoryloader: looking at "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platforms/libqwayland-egl.so"
      qt.core.plugin.loader: Found metadata in lib /data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platforms/libqwayland-egl.so, metadata=
      {
          "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
          "MetaData": {
              "Keys": [
                  "wayland-egl"
              ]
          },
          "archlevel": 1,
          "className": "QWaylandEglPlatformIntegrationPlugin",
          "debug": false,
          "version": 393984
      }
      qt.core.plugin.factoryloader: Got keys from plugin meta data QList("wayland-egl")
      qt.core.plugin.factoryloader: looking at "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platforms/libqwayland-generic.so"
      qt.core.plugin.loader: Found metadata in lib /data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platforms/libqwayland-generic.so, metadata=
      {
          "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
          "MetaData": {
              "Keys": [
                  "wayland"
              ]
          },
          "archlevel": 1,
          "className": "QWaylandIntegrationPlugin",
          "debug": false,
          "version": 393984
      }
      qt.core.plugin.factoryloader: Got keys from plugin meta data QList("wayland")
      qt.core.plugin.factoryloader: looking at "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platforms/libqxcb.so"
      qt.core.plugin.loader: Found metadata in lib /data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platforms/libqxcb.so, metadata=
      {
          "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
          "MetaData": {
              "Keys": [
                  "xcb"
              ]
          },
          "archlevel": 1,
          "className": "QXcbIntegrationPlugin",
          "debug": false,
          "version": 393984
      }
      qt.core.plugin.factoryloader: Got keys from plugin meta data QList("xcb")
      qt.core.plugin.factoryloader: checking directory path "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/platforms" ...
      qt.qpa.plugin: Attempting to load Qt platform plugin "xcb" with arguments QList()
      qt.core.library: "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platforms/libqxcb.so" loaded library
      qt.qpa.xcb: Has MIT-SHM     : true
      qt.qpa.xcb: Has MIT-SHM FD  : true
      qt.qpa.xcb: Using XInput version 2.3
      qt.qpa.xcb: failed to query selection owner
      qt.qpa.screen: create a fake screen:  QXcbScreen(0xdd3e10, name=":0.0", geometry=0x0+0+0, availableGeometry=0x0+0+0, devicePixelRatio=1.0, logicalDpi=std::pair(96.0,96.0), physicalSize=-1.0x-1.0mm, screenNumber=0, virtualSize=640x480 (640.0x480.0mm), orientation=Qt::PrimaryOrientation, depth=24, refreshRate=60.0, root=1c8, windowManagerName="")
      qt.qpa.screen: adding QXcbScreen(0xdd3e10, name=":0.0", geometry=0x0+0+0, availableGeometry=0x0+0+0, devicePixelRatio=1.0, logicalDpi=std::pair(96.0,96.0), physicalSize=-1.0x-1.0mm, screenNumber=0, virtualSize=640x480 (640.0x480.0mm), orientation=Qt::PrimaryOrientation, depth=24, refreshRate=60.0, root=1c8, windowManagerName="") (Primary: true )
      qt.qpa.screen: initializeScreens: primary output is ":0.0"
      qt.qpa.input.devices: register QPointingDevice("Virtual core pointer" Mouse id=2 seat=30002 caps=Position|Scroll|Hover)
      qt.qpa.input.devices: register QInputDevice("Virtual core keyboard", type=QInputDevice::DeviceType::Keyboard, ID=3, seat='30002')
      qt.qpa.input.devices: input device  "Virtual core XTEST pointer" ID 4
      qt.qpa.input.devices:    has 10 buttons
      qt.qpa.input.devices:    has valuator "Rel X" recognized? true
      qt.qpa.input.devices:    has valuator "Rel Y" recognized? true
      qt.qpa.input.devices:    it's a scrolling device
      qt.qpa.input.devices:    it's a mouse
      qt.qpa.input.devices: register QPointingDevice("Virtual core XTEST pointer" Mouse id=4 seat=30002 caps=Position|Scroll|Hover)
      qt.qpa.input.devices: register QInputDevice("Virtual core XTEST keyboard", type=QInputDevice::DeviceType::Keyboard, ID=5, seat='30002')
      qt.qpa.input.devices: register QInputDevice("Power Button", type=QInputDevice::DeviceType::Keyboard, ID=6, seat='30002')
      qt.qpa.input.devices: register QInputDevice("Power Button", type=QInputDevice::DeviceType::Keyboard, ID=7, seat='30002')
      qt.qpa.input.devices: register QInputDevice("American Megatrends Inc. Virtual Keyboard and Mouse", type=QInputDevice::DeviceType::Keyboard, ID=8, seat='30002')
      qt.qpa.input.devices: input device  "American Megatrends Inc. Virtual Keyboard and Mouse" ID 9
      qt.qpa.input.devices:    has 7 buttons
      qt.qpa.input.devices:    has valuator "Abs X" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Y" recognized? true
      qt.qpa.input.devices:    has valuator "Rel Horiz Scroll" recognized? true
      qt.qpa.input.devices:    has valuator "Rel Vert Scroll" recognized? true
      qt.qpa.input.devices:    it's a scrolling device
      qt.qpa.input.devices:    it's a mouse
      qt.qpa.input.devices: register QPointingDevice("American Megatrends Inc. Virtual Keyboard and Mouse" Mouse id=9 seat=30002 caps=Position|Scroll|Hover)
      qt.qpa.plugin: Successfully loaded Qt platform plugin "xcb"
      QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
      qt.qpa.theme: Adding platform integration's theme names to list of theme names: QList("unknown", "generic")
      qt.qpa.theme: Attempting to create platform theme "unknown" via QPlatformThemeFactory::create
      qt.core.plugin.factoryloader: checking directory path "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platformthemes" ...
      qt.core.plugin.factoryloader: checking directory path "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/platformthemes" ...
      qt.qpa.theme: Attempting to create platform theme "generic" via QPlatformThemeFactory::create
      qt.qpa.theme: Attempting to create platform theme "unknown" via createPlatformTheme
      qt.qpa.theme: Attempting to create platform theme "generic" via createPlatformTheme
      qt.qpa.fonts: default fonts: system QFont(Sans Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1) fixed QFont(monospace,9,-1,2,400,0,0,0,0,0,0,0,0,0,0,1)
      qt.qpa.theme: Successfully created platform theme "generic"
      qt.qpa.xcb: using glib dispatcher
      qt.core.plugin.factoryloader: checking directory path "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/platforminputcontexts" ...
      qt.core.plugin.factoryloader: checking directory path "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/platforminputcontexts" ...
      qt.core.plugin.factoryloader: checking directory path "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/Plugins/styles" ...
      qt.core.plugin.factoryloader: checking directory path "/data/tmp/Bin/GraphicsTestsHost-Release-public-test/host/linux-desktop-nomad-x64/styles" ...
      

      dmesg crash log:

      [ 886.677555] UITest[26660]: segfault at 0 ip 00007f9e087f9457 sp 00007fff2b50b320 error 4 in libQt6XcbQpa.so.6[7f9e08783000+b4000]
      [ 886.677565] Code: 44 00 00 49 8b 7c 24 08 31 f6 e8 74 34 fc ff eb c4 66 90 4c 89 e7 e8 78 f3 ff ff 48 89 c7 48 8b 00 ff 90 b0 00 00 00 48 89 c7 <48> 8b 00 ff 90 80 00 00 00 4c 89 e7 48 89 44 24 2c e8 53 f3 ff ff

      The Xorg.log shows no display was connected:

      [   801.838] (--) NVIDIA(GPU-0): DFP-0: disconnected
      [   801.838] (--) NVIDIA(GPU-0): DFP-0: Internal DisplayPort
      [   801.838] (--) NVIDIA(GPU-0): DFP-0: 2670.0 MHz maximum pixel clock
      [   801.838] (--) NVIDIA(GPU-0): 
      [   801.839] (--) NVIDIA(GPU-0): DFP-1: disconnected
      [   801.839] (--) NVIDIA(GPU-0): DFP-1: Internal TMDS
      [   801.839] (--) NVIDIA(GPU-0): DFP-1: 165.0 MHz maximum pixel clock
      [   801.839] (--) NVIDIA(GPU-0): 
      [   801.839] (--) NVIDIA(GPU-0): DFP-2: disconnected
      [   801.839] (--) NVIDIA(GPU-0): DFP-2: Internal DisplayPort
      [   801.839] (--) NVIDIA(GPU-0): DFP-2: 2670.0 MHz maximum pixel clock
      [   801.839] (--) NVIDIA(GPU-0): 
      [   801.839] (--) NVIDIA(GPU-0): DFP-3: disconnected
      [   801.839] (--) NVIDIA(GPU-0): DFP-3: Internal TMDS
      [   801.839] (--) NVIDIA(GPU-0): DFP-3: 165.0 MHz maximum pixel clock
      [   801.839] (--) NVIDIA(GPU-0): 
      [   801.839] (--) NVIDIA(GPU-0): DFP-4: disconnected
      [   801.839] (--) NVIDIA(GPU-0): DFP-4: Internal TMDS
      [   801.839] (--) NVIDIA(GPU-0): DFP-4: 165.0 MHz maximum pixel clock
      [   801.839] (--) NVIDIA(GPU-0): 
      [   801.839] (--) NVIDIA(GPU-0): DFP-5: disconnected
      [   801.839] (--) NVIDIA(GPU-0): DFP-5: Internal DisplayPort
      [   801.839] (--) NVIDIA(GPU-0): DFP-5: 2670.0 MHz maximum pixel clock
      [   801.839] (--) NVIDIA(GPU-0): 
      [   801.839] (--) NVIDIA(GPU-0): DFP-6: disconnected
      [   801.839] (--) NVIDIA(GPU-0): DFP-6: Internal TMDS
      [   801.839] (--) NVIDIA(GPU-0): DFP-6: 165.0 MHz maximum pixel clock
      

      Attachments

        1. qt_6.4.1.log
          4.27 MB
        2. qt_crash.log
          179 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            liaqi Liang Qi
            jcl jcl
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes