Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
None
-
5.10.1
-
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