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

[REG 6.9] Segfault in {{QtWebEngineCore::NativeSkiaOutputDeviceOpenGL::texture()}} with offscreen platform

    XMLWordPrintable

Details

    • Linux/X11
    • a9944c7c0 (dev), 13bddc733 (6.9), cca5fb104 (6.8)

    Description

      QtWebEngine 6.9 crashes immediately with the offscreen platform plugin:

      $ QT_QPA_PLATFORM=offscreen gdb -ex r --args ./simplebrowser
      [...]
      qt.webenginecontext: 
       Chromium GL Backend: angle 
       Chromium ANGLE Backend: gl-egl 
       Chromium Vulkan Backend: disabled 
       
       QSG RHI Backend: OpenGL 
       QSG RHI Backend Supported: yes 
       GPU Vendor: Intel 
       
       Using GLX: yes 
       Using EGL: no 
       Using Shared GL: no 
       Init Parameters:
        *  application-name simplebrowser
        *  browser-subprocess-path /home/florian/proj/qt/bin/6.9.0/gcc_64/libexec/QtWebEngineProcess
        *  disable-blink-features WebOTP
        *  disable-features EyeDropper,AttributionReportingCrossAppWebOverride,BackgroundFetch,InstalledApp,WebOTP,WebPayments,WebUSB
        *  disable-setuid-sandbox 
        *  disable-speech-api 
        *  enable-features NetworkServiceInProcess2,TracingServiceInProcess
        *  in-process-gpu 
        *  touch-events auto
        *  use-angle gl-egl
        *  use-gl angle
      
      [...]
      
      Thread 1 "simplebrowser" received signal SIGSEGV, Segmentation fault.
      QOpenGLContext::functions (this=0x0) at /home/qt/work/qt/qtbase/src/gui/kernel/qopenglcontext.cpp:536
      warning: 536	/home/qt/work/qt/qtbase/src/gui/kernel/qopenglcontext.cpp: No such file or directory
      (gdb) bt
      #0  QOpenGLContext::functions (this=0x0)
          at /home/qt/work/qt/qtbase/src/gui/kernel/qopenglcontext.cpp:536
      #1  0x00007fffec6d0ca5 in QtWebEngineCore::NativeSkiaOutputDeviceOpenGL::texture ()
          at /home/qt/work/qt/qtwebengine/src/core/compositor/native_skia_output_device_opengl.cpp:153
      #2  0x00007fffec66cb2a in QtWebEngineCore::RenderWidgetHostViewQtDelegateItem::updatePaintNode ()
          at /home/qt/work/qt/qtwebengine/src/core/render_widget_host_view_qt_delegate_item.cpp:397
      #3  0x00007fffeb4cf328 in QQuickWindowPrivate::updateDirtyNode (this=this@entry=0x555556073c90, 
          item=item@entry=0x5555560e3040)
          at /home/qt/work/qt/qtdeclarative/src/quick/items/qquickwindow.cpp:2271
      #4  0x00007fffeb4cfca4 in QQuickWindowPrivate::updateDirtyNodes (this=this@entry=0x555556073c90)
          at /home/qt/work/qt/qtdeclarative/src/quick/items/qquickwindow.cpp:2013
      #5  0x00007fffeb4d397e in QQuickWindowPrivate::syncSceneGraph (this=0x555556073c90)
          at /home/qt/work/qt/qtdeclarative/src/quick/items/qquickwindow.cpp:561
      #6  0x00007fffeb45d492 in QQuickRenderControl::sync (this=<optimized out>)
          at /home/qt/work/qt/qtdeclarative/src/quick/items/qquickrendercontrol.cpp:378
      #7  0x00007ffff75c3fb0 in QQuickWidgetPrivate::render (this=0x55555621d890, 
          needsSync=needsSync@entry=true)
          at /home/qt/work/qt/qtdeclarative/src/quickwidgets/qquickwidget.cpp:418
      #8  0x00007ffff75c411a in QQuickWidgetPrivate::renderSceneGraph (this=0x55555621d890)
          at /home/qt/work/qt/qtdeclarative/src/quickwidgets/qquickwidget.cpp:445
      #9  0x00007fffe93d72b5 in QObject::event (this=0x5555560cf340, e=0x7fffffffd430)
          at /home/qt/work/qt/qtbase/src/corelib/kernel/qobject.cpp:1462
      #10 0x00007ffff77913db in QApplicationPrivate::notify_helper (this=<optimized out>, 
          receiver=0x5555560cf340, e=0x7fffffffd430)
          at /home/qt/work/qt/qtbase/src/widgets/kernel/qapplication.cpp:3297
      #11 0x00007fffe937ed2a in QCoreApplication::notifyInternal2 (receiver=0x5555560cf340, 
          event=0x7fffffffd430) at /home/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1122
      #12 0x00007fffe937ef4d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>)
          at /home/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1564
      #13 0x00007fffe952f4ba in QTimerInfoList::activateTimers (this=0x5555555d9860)
          at /home/qt/work/qt/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:426
      #14 0x00007fffe9661c84 in timerSourceDispatch (source=<optimized out>)
          at /home/qt/work/qt/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:152
      #15 idleTimerSourceDispatch (source=<optimized out>)
          at /home/qt/work/qt/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:199
      #16 0x00007fffe88a1559 in g_main_dispatch (context=0x5555555d95e0) at ../glib/glib/gmain.c:3357
      #17 0x00007fffe8904257 in g_main_context_dispatch_unlocked (context=0x5555555d95e0)
          at ../glib/glib/gmain.c:4208
      #18 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x5555555d95e0, block=block@entry=1, 
          dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4273
      #19 0x00007fffe88a0a55 in g_main_context_iteration (context=0x5555555d95e0, may_block=1)
          at ../glib/glib/gmain.c:4338
      #20 0x00007fffe9661e4e in QEventDispatcherGlib::processEvents (this=0x5555555d3af0, flags=...)
          at /home/qt/work/qt/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
      #21 0x00007fffe938c142 in QEventLoop::exec (this=this@entry=0x7fffffffd760, flags=..., flags@entry=...)
          at /home/qt/work/qt/qtbase/src/corelib/global/qflags.h:77
      #22 0x00007fffe9387d1a in QCoreApplication::exec ()
          at /home/qt/work/qt/qtbase/src/corelib/global/qflags.h:77
      #23 0x000055555556879a in main ()
      

      While Qt 6.8 runs fine:

      qt.webenginecontext: 
       Chromium GL Backend: desktop 
       Chromium ANGLE Backend: disabled 
       Chromium Vulkan Backend: disabled 
       
       QSG RHI Backend: OpenGL 
       QSG RHI Backend Supported: yes 
       GPU Vendor: Intel 
       
       Using GLX: yes 
       Using EGL: no 
       Using Shared GL: yes 
       Using Software Dynamic GL: no 
       Surface Type: OpenGL 
       Surface Profile: NoProfile 
       Surface Version: 2.0
       
       Init Parameters:
        *  application-name simplebrowser
        *  browser-subprocess-path /usr/lib/qt6/QtWebEngineProcess
        *  disable-blink-features WebOTP
        *  disable-features InstalledApp,EyeDropper,BackgroundFetch,WebOTP,WebPayments,WebUSB
        *  disable-setuid-sandbox 
        *  disable-speech-api 
        *  enable-features NetworkServiceInProcess2,TracingServiceInProcess
        *  in-process-gpu 
        *  use-gl desktop
      
      This plugin does not support propagateSizeHints()
      Compositor returned null texture
      This plugin does not support propagateSizeHints()
      Compositor returned null texture
      Compositor returned null texture
      Compositor returned null texture
      Compositor returned null texture
      

      I tried --webEngineArgs --use-gl=desktop from Make ANGLE default on Linux (583002) ยท Gerrit Code Review, but that then fails with:

      [190092:190164:0108/231526.699961:ERROR:gl_factory.cc(129)] Requested GL implementation (gl=desktop-gl,angle=none) not found in allowed implementations: [(gl=egl-angle,angle=default),(gl=disabled,angle=none)].

      Attachments

        For Gerrit Dashboard: QTBUG-132682
        # Subject Branch Project Status CR V

        Activity

          People

            pvarga Peter Varga
            the compiler Florian Bruhin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes