NEW 238721
[GTK] Crash in glXCreateContext
https://bugs.webkit.org/show_bug.cgi?id=238721
Summary [GTK] Crash in glXCreateContext
Milan Crha
Reported 2022-04-04 00:08:55 PDT
Moving this from a downstream bug report: https://gitlab.gnome.org/GNOME/evolution/-/issues/1854 The WebKitWebProcess crashes with SIGSEGV in Evolution, when using 2.36.0 release, as built in Fedora 35, specifically webkit2gtk3-2.36.0-2.fc35.x86_64. Here is the terminal output: $ evolution libEGL warning: MESA-LOADER: failed to open swrast: /usr/lib64/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib64/dri, suffix _dri) EGLDisplay Initialization failed: EGL_NOT_INITIALIZED Cannot create EGL sharing context: invalid display (last error: EGL_SUCCESS) and here is the corecumpctl info: PID: 3075 (WebKitWebProces) UID: 1001 (peter) GID: 100 (users) Signal: 11 (SEGV) Timestamp: Fri 2022-04-01 21:55:24 CEST (4min 46s ago) Command Line: /usr/libexec/webkit2gtk-4.0/WebKitWebProcess 13 35 Executable: /usr/libexec/webkit2gtk-4.0/WebKitWebProcess Control Group: /user.slice/user-1001.slice/user@1001.service/app.slice/vte-spawn- a39e67fa-5035-4c1d-b775-2ddab4ae166b.scope Unit: user@1001.service User Unit: vte-spawn-a39e67fa-5035-4c1d-b775-2ddab4ae166b.scope Slice: user-1001.slice Owner UID: 1001 (peter) Boot ID: ba0.........076 Machine ID: 244.........70e Hostname: gygv Storage: none Message: Process 3075 (WebKitWebProces) of user 1001 dumped core. As I said I had earlier installed mesa-dri-drivers with the swrast file, and although the swrast failure report went away, I still got the very same error report in Evolution, with no mail bodies visible. So I deinstalled the package with swrast. I also noticed that a new dependency came with 2.36.0 which is not used by 2.34.0: libglvnd-opengl-1:1.3.4-2.fc35.x86_64
Attachments
webkitgtk-backtrace.txt (9.26 KB, text/plain)
2022-05-26 10:27 PDT, Michael Orlitzky
no flags
Michael Catanzaro
Comment 1 2022-04-04 08:17:12 PDT
/usr/lib64/dri/swrast_dri.so is not a symlink, and all of /usr/lib64 is mounted in the web process sandbox... very strange. Does it work using WEBKIT_FORCE_SANDBOX=0?
Michael Catanzaro
Comment 2 2022-04-04 08:18:02 PDT
(In reply to Milan Crha from comment #0) > As I said I had earlier installed mesa-dri-drivers with the swrast file, and > although the swrast failure report went away, I still got the very same > error report in Evolution, with no mail bodies visible. So I deinstalled the > package with swrast. What exactly did you uninstall? /usr/lib64/dri/swrast_dri.so is provided by mesa-dri-drivers. Surely you didn't remove that?
Milan Crha
Comment 3 2022-04-04 22:31:34 PDT
(In reply to Michael Catanzaro from comment #1) > /usr/lib64/dri/swrast_dri.so is not a symlink, and all of /usr/lib64 is > mounted in the web process sandbox... very strange. Does it work using > WEBKIT_FORCE_SANDBOX=0? Evolution 3.42.4 disables the sandbox, due to the printing bug #202363: https://gitlab.gnome.org/GNOME/evolution/-/blob/gnome-41/src/shell/main.c#L478 (In reply to Michael Catanzaro from comment #2) > What exactly did you uninstall? /usr/lib64/dri/swrast_dri.so is provided by > mesa-dri-drivers. Surely you didn't remove that? From the downstream reporter: I don't have mesa-dri-drivers on my system, nothing requires it. When I saw the error message when starting evolution in a terminal about the missing swrast file, I found out that it is provided by mesa-dri- drivers, so I installed that package. But apart from silencing the swrast message in the terminal, it didn't solve any problems, so I uninstalled the package. With current evolution, and the webkit2gt3 2.34.0, evolution works nicely without mesa-dri-drivers, as does anything else. That is I don't have this file right now: /usr/lib64/dri/swrast_dri.so
Milan Crha
Comment 4 2022-04-04 22:41:57 PDT
Backtrace of the crash. I specifically asked to not install debuginfo package for the WebKitGTK due to its size. Using host libthread_db library "/lib64/libthread_db.so.1". Core was generated by `/usr/libexec/webkit2gtk-4.0/WebKitWebProcess 13 23'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f5ee97b487e in glXCreateContext () from /lib64/libGLX.so.0 [Current thread is 1 (Thread 0x7f5e3f5ff640 (LWP 4492))] Missing separate debuginfos, use: dnf debuginfo-install webkit2gtk3- 2.36.0-2.fc35.x86_64 (gdb) bt #0 0x00007f5ee97b487e in glXCreateContext () from /lib64/libGLX.so.0 #1 0x00007f5eee1108b6 in WebCore::GLContext::createContextForWindow(unsigned long, WebCore::PlatformDisplay*) () from /lib64/libwebkit2gtk-4.0.so.37 #2 0x00007f5eecf758b8 in WTF::Detail::CallableWrapper<WebKit::ThreadedCompositor::ThreadedCompos itor(WebKit::ThreadedCompositor::Client&, WebKit::ThreadedDisplayRefreshMonitor::Client&, unsigned int, WebCore::IntSize const&, float, unsigned int)::{lambda()#2}, void>::call() () from /lib64/libwebkit2gtk-4.0.so.37 #3 0x00007f5eecf6bb87 in WTF::Detail::CallableWrapper<WebKit::CompositingRunLoop::performTaskSyn c(WTF::Function<void ()>&&)::{lambda()#1}, void>::call() () from /lib64/libwebkit2gtk-4.0.so.37 #4 0x00007f5eebb8d22d in WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) [clone .lto_priv.0] () from /lib64/libjavascriptcoregtk-4.0.so.18 #5 0x00007f5eebb8ace3 in WTF::RunLoop::{lambda(_GSource*, int (*)(void*), void*)#1}::_FUN(_GSource*, int (*)(void*), void*) [clone .lto_priv.0] () from /lib64/libjavascriptcoregtk-4.0.so.18 #6 0x00007f5eec1040af in g_main_context_dispatch () from /lib64/libglib-2.0.so.0 #7 0x00007f5eec159308 in g_main_context_iterate.constprop () from /lib64/libglib-2.0.so.0 #8 0x00007f5eec1037c3 in g_main_loop_run () from /lib64/libglib- 2.0.so.0 #9 0x00007f5eebb8d8f0 in WTF::RunLoop::run() () from /lib64/libjavascriptcoregtk-4.0.so.18 #10 0x00007f5eebb97267 in WTF::wtfThreadEntryPoint(void*) [clone .lto_priv.0] () from /lib64/libjavascriptcoregtk-4.0.so.18 #11 0x00007f5eec51eb1a in start_thread () from /lib64/libc.so.6 #12 0x00007f5eec5a3660 in clone3 () from /lib64/libc.so.6
Michael Orlitzky
Comment 5 2022-05-26 10:27:47 PDT
Created attachment 459788 [details] webkitgtk-backtrace.txt I have same problem, but have a backtrace with -ggdb information. To me it looks like the fallback case in Source/WebCore/platform/graphics/glx/GLContextGLX.cpp is supplying NULL as the "vis" argument to glXCreateContext(), but that function immediately tries to use vis. Note however that I don't get any libEGL or mesa warnings when I start evolution; those may be red herrings.
Michael Orlitzky
Comment 6 2022-05-26 12:18:56 PDT
Updating to evolution-3.44.1 fixes it, and my guess is that the NEWS item "Disable hardware acceleration for WebKitGTK" is responsible.
Note You need to log in before you can comment on or make changes to this bug.