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

QtWebEngine SEGV_MAPERR when opening web view on Raspberry Pi 3

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2: Important
    • None
    • 5.10.1
    • QPA: EGLFS, WebEngine
    • None
    • Operating System: Linux, Yocto Sumo (2.5), eglfs mode.

      On Linux/X11 works normally.

    Description

      I'm running a PyQt app on Raspberry Pi 3. System is built with Yocto project and meta-qt5 layer. Qt compiled with eglfs support.
      When I switched from QT 5.9.3 to 5.9.4, web engine view started crashing with segfault. Upgrade to QT 5.10.1 didn't solve the problem.

      Here is the short python script to reproduce it:

      import os, sys
      from PyQt5.QtWidgets import QApplication
      from PyQt5.QtWebEngineWidgets import QWebEngineView
      os.environ['QT_QPA_PLATFORM'] = 'eglfs'
      app = QApplication(sys.argv)
      view = QWebEngineView()
      view.page()
      

      The result (on Qt 5.10.1):

      QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
      Unable to query physical screen size, defaulting to 100 dpi.
      To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
      Received signal 11 SEGV_MAPERR 000000000000
      #0 0x000072a7ab4a <unknown>
      #1 0x000072a7a9c6 <unknown>
      #2 0x000071eda2c8 <unknown>
      #3 0x000072a7adc2 <unknown>
      #4 0x000076bb4d30 <unknown>
      [end of stack trace]
      Calling _exit(1). Core file will not be generated.
      

      When running in gdb:

      Thread 23 "Chrome_InProcGp" received signal SIGSEGV, Segmentation fault.
      [Switching to Thread 0x641f4460 (LWP 653)]
      0x00000000 in ?? ()
      (gdb) bt
      #0  0x00000000 in ?? ()
      #1  0x7313bbbe in gl::RealEGLApi::eglQueryStringFn(void*, int) () from /usr/lib/libQt5WebEngineCore.so.5
      #2  0x71feb256 in gl::GLSurfaceQtEGL::InitializeOneOff () at /usr/src/debug/qtwebengine/5.10.1+gitAUTOINC+9dc8dff7a8_c858cc7609-r0/git/src/core/gl_surface_qt.cpp:393
      #3  0x731e4452 in gl::init::InitializeGLOneOffImplementation(gl::GLImplementation, bool, bool, bool) () from /usr/lib/libQt5WebEngineCore.so.5
      #4  0x731e44f4 in gl::init::InitializeGLOneOff() () from /usr/lib/libQt5WebEngineCore.so.5
      #5  0x73d9f97e in content::InProcessGpuThread::Init() () from /usr/lib/libQt5WebEngineCore.so.5
      #6  0x72b7cad2 in base::Thread::ThreadMain() () from /usr/lib/libQt5WebEngineCore.so.5
      #7  0x72b79820 in base::(anonymous namespace)::ThreadFunc(void*) () from /usr/lib/libQt5WebEngineCore.so.5
      #8  0x76c2fd60 in start_thread (arg=0x641f4460) at /usr/src/debug/glibc/2.27-r0/git/nptl/pthread_create.c:463
      #9  0x76d21a28 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/libc.so.6
      Backtrace stopped: previous frame identical to this frame (corrupt stack?)
      

      Error vanishes if I set QTWEBENGINE_CHROMIUM_FLAGS environment variable to '--disable-gpu', however web view in my app doesn't display anything and these errors appear in logs:

      shader compilation failed:
      ""
      QOpenGLShaderProgram::uniformLocation(matrix): shader program is not linked
      QOpenGLShaderProgram::uniformLocation(opacity): shader program is not linked
      

      Attachments

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

        Activity

          People

            qt_webengine_team Qt WebEngine Team
            xuhcc Kirill Goncharov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes