Bug 199666
| Summary: | [GTK][X11] X Error received in WebProcess on NVidia binary drivers | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Tomas Popela <tpopela> |
| Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | bugs-noreply, eocanha, magomez, mcatanzaro, pnormand, steph, uwb17174 |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| See Also: |
https://bugs.webkit.org/show_bug.cgi?id=217323 https://bugs.webkit.org/show_bug.cgi?id=219456 |
||
Tomas Popela
Using the following demo program inside the Toolbox running on T460p with GeFroce 940MX crashes the web process. I can reproduce it easily, so if anything is needed Miguel, I can provide it.
// gcc demo.c -o demo `pkg-config --libs --cflags gtk±3.0 webkit2gtk-4.0
#include <gtk/gtk.h>
#include <webkit2/webkit2.h>
static void activate(GtkApplication *app, gpointer user_data);
int main(int argc, char **argv)
{
GtkApplication *app;
int status;
app = gtk_application_new("org.test.test", G_APPLICATION_FLAGS_NONE);
g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
status = g_application_run(G_APPLICATION(app), argc, argv);
g_object_unref(app);
return status;
}
static void activate(GtkApplication *app, gpointer user_data)
{
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
WebKitWebView *web_view;
gtk_application_add_window(app, GTK_WINDOW(window));
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window), 400, 400);
gtk_window_set_title(GTK_WINDOW(window), "Demo");
web_view = WEBKIT_WEB_VIEW(webkit_web_view_new());
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(web_view));
gtk_widget_set_size_request(window, 100, 100);
webkit_web_view_load_uri(web_view, "https://www.youtube.com/embed/?v=vCoF21OXu2E");
gtk_widget_show_all(window);
}
(WebKitWebProcess:12512): Gdk-ERROR **: 13:39:16.802: The program 'WebKitWebProcess' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadValue (integer parameter out of range for operation)'.
(Details: serial 300 error_code 2 request_code 53 (core protocol) minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Thread 17 "eadedCompositor" received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7fb6999fd700 (LWP 12603)]
0x00007fb726dae1c5 in _g_log_abort (breakpoint=1) at ../glib/gmessages.c:554
554 ../glib/gmessages.c: No such file or directory.
(gdb) bt
#0 0x00007fb726dae1c5 in _g_log_abort (breakpoint=1) at ../glib/gmessages.c:554
#1 0x00007fb726db0bbc in g_log_writer_default (log_level=6, log_level@entry=G_LOG_LEVEL_ERROR, fields=fields@entry=0x7fb6999fbec0, n_fields=n_fields@entry=6, user_data=user_data@entry=0x0) at ../glib/gmessages.c:2690
#2 0x00007fb726daee17 in g_log_structured_array (n_fields=6, fields=0x7fb6999fbec0, log_level=G_LOG_LEVEL_ERROR) at ../glib/gmessages.c:1923
#3 0x00007fb726daee17 in g_log_structured_array (log_level=G_LOG_LEVEL_ERROR, fields=0x7fb6999fbec0, n_fields=6) at ../glib/gmessages.c:1896
#4 0x00007fb726daf844 in g_log_structured_standard
(log_domain=log_domain@entry=0x7fb72731a017 "Gdk", log_level=log_level@entry=G_LOG_LEVEL_ERROR, file=file@entry=0x7fb7273381bc "gdkdisplay-x11.c", line=line@entry=0x7fb727338268 "2763", func=func@entry=0x7fb727338ed0 <__func__.76909> "_gdk_x11_display_error_event", message_format=message_format@entry=0x7fb727339238 "%s") at ../glib/gmessages.c:1980
#5 0x00007fb7272d8bea in _gdk_x11_display_error_event (display=display@entry=0x55a4f7b0f0e0 [GdkX11Display], error=error@entry=0x7fb6999fc510) at gdkdisplay-x11.c:2763
#6 0x00007fb7272e5b93 in gdk_x_error (error=0x7fb6999fc510, xdisplay=0x55a4f7afea20) at gdkmain-x11.c:307
#7 0x00007fb7272e5b93 in gdk_x_error (xdisplay=0x55a4f7afea20, error=0x7fb6999fc510) at gdkmain-x11.c:269
#8 0x00007fb724702402 in _XError (dpy=dpy@entry=0x55a4f7afea20, rep=rep@entry=0x7fb67800a410) at XlibInt.c:1444
#9 0x00007fb7246ff297 in handle_error (dpy=0x55a4f7afea20, err=0x7fb67800a410, in_XReply=<optimized out>) at xcb_io.c:199
#10 0x00007fb7246ff33d in handle_response (dpy=0x55a4f7afea20, response=0x7fb67800a410, in_XReply=<optimized out>) at xcb_io.c:324
#11 0x00007fb7247002b0 in _XReply (dpy=dpy@entry=0x55a4f7afea20, rep=rep@entry=0x7fb6999fc6c0, extra=extra@entry=0, discard=discard@entry=1) at xcb_io.c:634
#12 0x00007fb7246fbb01 in XSync (dpy=0x55a4f7afea20, discard=discard@entry=0) at Sync.c:44
#13 0x00007fb7246fbb9f in _XSyncFunction (dpy=<optimized out>) at Synchro.c:35
#14 0x00007fb7246de5e4 in XCreatePixmap (dpy=0x55a4f7afea20, d=586, width=1, height=1, depth=128) at CrPixmap.c:58
#15 0x00007fb6d9dc0429 in () at /lib64/libGLX_system.so.0
#16 0x00007fb7242bb2a9 in glXCreatePbuffer () at /lib64/libGLX.so.0
#17 0x00007fb72998e49b in WebCore::GLContextGLX::createPbufferContext(WebCore::PlatformDisplay&, __GLXcontextRec*) (platformDisplay=..., sharingContext=sharingContext@entry=0x0)
at ../Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:233
#18 0x00007fb72998ec78 in WebCore::GLContextGLX::createSharingContext(WebCore::PlatformDisplay&) (platformDisplay=...) at ../Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:296
#19 0x00007fb72995ab26 in WebCore::GLContext::createSharingContext(WebCore::PlatformDisplay&) (display=...) at ../Source/WebCore/platform/graphics/GLContext.cpp:119
#20 0x00007fb72a0c409e in WebCore::PlatformDisplay::sharingGLContext() (this=this@entry=0x7fb6c0a03140) at ../Source/WebCore/platform/graphics/PlatformDisplay.cpp:163
#21 0x00007fb72998eb60 in WebCore::GLContextGLX::createContext(unsigned long, WebCore::PlatformDisplay&) (window=window@entry=52428804, platformDisplay=...) at ../Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:284
#22 0x00007fb72995a96b in WebCore::GLContext::createContextForWindow(unsigned long, WebCore::PlatformDisplay*) (windowHandle=52428804, platformDisplay=<optimized out>) at ../Source/WebCore/platform/graphics/GLContext.cpp:94
#23 0x00007fb72857cde0 in WebKit::ThreadedCompositor::createGLContext() (this=0x7fb69aa61660) at ../Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:90
#24 0x00007fb72857bdc7 in WTF::Function<void()>::CallableWrapper<WebKit::CompositingRunLoop::performTaskSync(WTF::Function<void()>&&)::<lambda()> >::call(void) (this=0x7fb69aa4b648) at /usr/include/c++/9/bits/unique_ptr.h:357
#25 0x00007fb72674b9d5 in WTF::RunLoop::performWork() () at /lib64/libjavascriptcoregtk-4.0.so.18
#26 0x00007fb726795cfd in () at /lib64/libjavascriptcoregtk-4.0.so.18
#27 0x00007fb726da7fd0 in g_main_dispatch (context=0x7fb678000b20) at ../glib/gmain.c:3189
#28 0x00007fb726da7fd0 in g_main_context_dispatch (context=context@entry=0x7fb678000b20) at ../glib/gmain.c:3854
#29 0x00007fb726da8368 in g_main_context_iterate (context=0x7fb678000b20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:3927
#30 0x00007fb726da86b3 in g_main_loop_run (loop=0x7fb678002500) at ../glib/gmain.c:4123
#31 0x00007fb726796770 in WTF::RunLoop::run() () at /lib64/libjavascriptcoregtk-4.0.so.18
#32 0x00007fb72674cd68 in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) () at /lib64/libjavascriptcoregtk-4.0.so.18
#33 0x00007fb726796afd in () at /lib64/libjavascriptcoregtk-4.0.so.18
#34 0x00007fb72507a5a2 in start_thread () at /lib64/libpthread.so.0
#35 0x00007fb727c35023 in clone () at /lib64/libc.so.6
(gdb) bt full
#0 0x00007fb726dae1c5 in _g_log_abort (breakpoint=1) at ../glib/gmessages.c:554
debugger_present = 1
#1 0x00007fb726db0bbc in g_log_writer_default (log_level=6, log_level@entry=G_LOG_LEVEL_ERROR, fields=fields@entry=0x7fb6999fbec0, n_fields=n_fields@entry=6, user_data=user_data@entry=0x0) at ../glib/gmessages.c:2690
initialized = 1
stderr_is_journal = 0
__FUNCTION__ = "g_log_writer_default"
#2 0x00007fb726daee17 in g_log_structured_array (n_fields=6, fields=0x7fb6999fbec0, log_level=G_LOG_LEVEL_ERROR) at ../glib/gmessages.c:1923
writer_func = 0x7fb726db0a40 <g_log_writer_default>
writer_user_data = 0x0
recursion = 0
depth = <optimized out>
__FUNCTION__ = "g_log_structured_array"
__FUNCTION__ = "g_log_structured_array"
#3 0x00007fb726daee17 in g_log_structured_array (log_level=G_LOG_LEVEL_ERROR, fields=0x7fb6999fbec0, n_fields=6) at ../glib/gmessages.c:1896
__FUNCTION__ = "g_log_structured_array"
#4 0x00007fb726daf844 in g_log_structured_standard
(log_domain=log_domain@entry=0x7fb72731a017 "Gdk", log_level=log_level@entry=G_LOG_LEVEL_ERROR, file=file@entry=0x7fb7273381bc "gdkdisplay-x11.c", line=line@entry=0x7fb727338268 "2763", func=func@entry=0x7fb727338ed0 <__func__.76909> "_gdk_x11_display_error_event", message_format=message_format@entry=0x7fb727339238 "%s") at ../glib/gmessages.c:1980
fields =
{{key = 0x7fb726dff594 "PRIORITY", value = 0x7fb726df9223, length = -1}, {key = 0x7fb726dff59d "CODE_FILE", value = 0x7fb7273381bc, length = -1}, {key = 0x7fb726dff5a7 "CODE_LINE", value = 0x7fb727338268, length = -1}, {key = 0x7fb726dff5b1 "CODE_FUNC", value = 0x7fb727338ed0 <__func__.76909>, length = -1}, {key = 0x7fb726dff581 "MESSAGE", value = 0x7fb67801c240, length = -1}, {key = 0x7fb726dff5ee "GLIB_DOMAIN", value = 0x7fb72731a017, length = -1}}
n_fields = 6
message_allocated = 0x7fb67801c240 "The program 'WebKitWebProcess' received an X Window System error.\nThis probably reflects a bug in the program.\nThe error was 'BadValue (integer parameter out of range for operation)'.\n (Details: seri"...
buffer = "\240\266\317'\267\177\000\000\372q\336ٶ\177\000\000\340ğ\231\266\177\000\000D\b\272'\267\177\000\000\310\f\234\001\000\000\000\000\264\277\237\231\266\177\000\000\273\002\000\000\000\000\000\000\220\300\237\231\266\177\000\000\060\222\330ٶ\177\000\000\200\300\237\231\266\177\000\000\310\023\231!\267\177\000\000x", '\000' <repeats 24 times>, "\340\005\000\000\000\000\000\200\300\237\231\266\177\000\000\000\000\000\000\000\000\000\000\336\017\331ٶ\177\000\000(h\000x\266\177\000\000\220\300\237\231\v\000\000\000\006\062\003g\000\000\000\000\b\375\303*\267\177\000\000\062\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001", '\000' <repeats 15 times>...
args = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fb6999fc438, reg_save_area = 0x7fb6999fc360}}
#5 0x00007fb7272d8bea in _gdk_x11_display_error_event (display=display@entry=0x55a4f7b0f0e0 [GdkX11Display], error=error@entry=0x7fb6999fc510) at gdkdisplay-x11.c:2763
buf = "BadValue (integer parameter out of range for operation)\000\000\000\000\000\000\000\000"
msg = <optimized out>
display_x11 = 0x55a4f7b0f0e0 [GdkX11Display]
tmp_list = <optimized out>
ignore = 0
__func__ = "_gdk_x11_display_error_event"
#6 0x00007fb7272e5b93 in gdk_x_error (error=0x7fb6999fc510, xdisplay=0x55a4f7afea20) at gdkmain-x11.c:307
error_display = 0x55a4f7b0f0e0 [GdkX11Display]
manager = <optimized out>
displays = 0x0
#7 0x00007fb7272e5b93 in gdk_x_error (xdisplay=0x55a4f7afea20, error=0x7fb6999fc510) at gdkmain-x11.c:269
#8 0x00007fb724702402 in _XError (dpy=dpy@entry=0x55a4f7afea20, rep=rep@entry=0x7fb67800a410) at XlibInt.c:1444
rtn_val = <optimized out>
event =
422238160496}, xunmap = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, event = 140422227703042, window = 140422238160496, from_configure = -139461408}, xmap = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, event = 140422227703042, window = 140422238160496, override_redirect = -139461408}, xmaprequest = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, parent = 140422227703042, window = 140422238160496}, xreparent = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, event = 140422227703042, window = 140422238160496, parent = 94167018503392, x = -1717582416, y = 32694, override_redirect = -1717582448}, xconfigure = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, event = 140422227703042, window = 140422238160496, x = -139461408, y = 21924, width = -1717582416, height = 32694, border_width = -1717582448, above = 301, override_redirect = -1717582456}, xgravity = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, event = 140422227703042, window = 140422238160496, x = -139461408, y = 21924}, xresizerequest = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, window = 140422227703042, width = -1717582224, height = 32694}, xconfigurerequest = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, parent = 140422227703042, window = 140422238160496, x = -139461408, y = 21924, width = -1717582416, height = 32694, border_width = -1717582448, above = 301, detail = -1717582456, value_mask = 140424558418985}, xcirculate = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, event = 140422227703042, window = 140422238160496, place = -139461408}, xcirculaterequest = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, parent = 140422227703042, window = 140422238160496, place = -139461408}, xproperty = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, window = 140422227703042, atom = 140422238160496, time = 94167018503392, state = -1717582416}, xselectionclear = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, window = 140422227703042, selection = 140422238160496, time = 94167018503392}, xselectionrequest = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, owner = 140422227703042, requestor = 140422238160496, selection = 94167018503392, target = 140422238160304, property = 140422238160272, time = 301}, xselection = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, requestor = 140422227703042, selection = 140422238160496, target = 94167018503392, property = 140422238160304, time = 140422238160272}, xcolormap = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, window = 140422227703042, colormap = 140422238160496, new = -139461408, state = 21924}, xclient = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, window = 140422227703042, message_type = 140422238160496, format = -139461408, data = {b = "\260ş\231\266\177\000\000\220ş\231\266\177\000\000-\001\000", s = {-14928, -26209, 32694, 0, -14960, -26209, 32694, 0, 301, 0}, l = {140422238160304, 140422238160272, 301, 140422238160264, 140424558418985}}}, xmapping = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, window = 140422227703042, request = -1717582224, first_keycode = 32694, count = -139461408}, xerror = {type = 0, display = 0x55a4f7afea20, resourceid = 128, serial = 300, error_code = 2 '\002', request_code = 53 '5', minor_code = 0 '\000'}, xkeymap = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, window = 140422227703042, key_vector = "pƟ\231\266\177\000\000\340\374\257\367\244U\000\000\260ş\231\266\177\000\000\220ş\231\266\177\000"}, xgeneric = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, extension = -1728039678, evtype = 32694}, xcookie = {type = 0, serial = 94167018498592, send_event = 128, display = 0x12c, extension = -1728039678, evtype = 32694, cookie = 2577385072, data = 0x55a4f7affce0}, pad = {94162862997504, 94167018498592, 128, 300, 140422227703042, 140422238160496, 94167018503392, 140422238160304, 140422238160272, 301, 140422238160264, 140424558418985, 301, 140424558419301, 0, 140421674118320, 301, 140422238160304, 0, 140422238160400, 0, 0, 0, 0}}
async = <optimized out>
next = <optimized out>
#9 0x00007fb7246ff297 in handle_error (dpy=0x55a4f7afea20, err=0x7fb67800a410, in_XReply=<optimized out>) at xcb_io.c:199
ext = <optimized out>
ret_code = 21924
#10 0x00007fb7246ff33d in handle_response (dpy=0x55a4f7afea20, response=0x7fb67800a410, in_XReply=<optimized out>) at xcb_io.c:324
async = <optimized out>
next = <optimized out>
#11 0x00007fb7247002b0 in _XReply (dpy=dpy@entry=0x55a4f7afea20, rep=rep@entry=0x7fb6999fc6c0, extra=extra@entry=0, discard=discard@entry=1) at xcb_io.c:634
event = <optimized out>
req = <optimized out>
response = 0x7fb678012cb0
error = 0x0
c = <optimized out>
reply = <optimized out>
current = 0x7fb67800e030
dpy_request = <optimized out>
__PRETTY_FUNCTION__ = "_XReply"
#12 0x00007fb7246fbb01 in XSync (dpy=0x55a4f7afea20, discard=discard@entry=0) at Sync.c:44
rep = {type = 112 'p', revertTo = 163 '\243', sequenceNumber = 30720, length = 32694, focus = 4155501088, pad1 = 21924, pad2 = 0, pad3 = 0, pad4 = 4155501088, pad5 = 21924}
#13 0x00007fb7246fbb9f in _XSyncFunction (dpy=<optimized out>) at Synchro.c:35
#14 0x00007fb7246de5e4 in XCreatePixmap (dpy=0x55a4f7afea20, d=586, width=1, height=1, depth=128) at CrPixmap.c:58
pid = 52428811
req = <optimized out>
#15 0x00007fb6d9dc0429 in () at /lib64/libGLX_system.so.0
#16 0x00007fb7242bb2a9 in glXCreatePbuffer () at /lib64/libGLX.so.0
#17 0x00007fb72998e49b in WebCore::GLContextGLX::createPbufferContext(WebCore::PlatformDisplay&, __GLXcontextRec*) (platformDisplay=..., sharingContext=sharingContext@entry=0x0)
at ../Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:233
fbConfigAttributes = {32784, 4, 32785, 1, 8, 1, 9, 1, 10, 1, 11, 1, 5, 0, 0}
returnedElements = 39
display = 0x55a4f7afea20
configs = std::unique_ptr<struct __GLXFBConfigRec *> = {get() = 0x7fb67801a910}
pbufferAttributes = {32833, 1, 32832, 1, 0}
pbuffer = {m_resource = 140424562083872}
context = std::unique_ptr<struct __GLXcontextRec> = {get() = 0xfffffffffffffff0}
#18 0x00007fb72998ec78 in WebCore::GLContextGLX::createSharingContext(WebCore::PlatformDisplay&) (platformDisplay=...) at ../Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:296
context = std::unique_ptr<class WebCore::GLContextGLX> = {get() = 0x7fb72a19d6fe}
#19 0x00007fb72995ab26 in WebCore::GLContext::createSharingContext(WebCore::PlatformDisplay&) (display=...) at ../Source/WebCore/platform/graphics/GLContext.cpp:119
glxContext = std::unique_ptr<class WebCore::GLContextGLX> = {get() = 0x7fb72a19d6fe}
#20 0x00007fb72a0c409e in WebCore::PlatformDisplay::sharingGLContext() (this=this@entry=0x7fb6c0a03140) at ../Source/WebCore/platform/graphics/PlatformDisplay.cpp:163
#21 0x00007fb72998eb60 in WebCore::GLContextGLX::createContext(unsigned long, WebCore::PlatformDisplay&) (window=window@entry=52428804, platformDisplay=...) at ../Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:284
glxSharingContext = <optimized out>
context = std::unique_ptr<class WebCore::GLContextGLX> = {get() = 0x7fb6e0001810}
#22 0x00007fb72995a96b in WebCore::GLContext::createContextForWindow(unsigned long, WebCore::PlatformDisplay*) (windowHandle=52428804, platformDisplay=<optimized out>) at ../Source/WebCore/platform/graphics/GLContext.cpp:94
glxContext = std::unique_ptr<class WebCore::GLContextGLX> = {get() = 0x7fb6e0001810}
display =
@0x7fb6c0a03140: {_vptr.PlatformDisplay = 0x7fb72ab58250 <vtable for WebCore::PlatformDisplayX11+16>, m_nativeDisplayOwned = WebCore::PlatformDisplay::NativeDisplayOwned::No, m_eglDisplay = 0x0, m_sharingGLContext = std::unique_ptr<class WebCore::GLContext> = {get() = 0x0}, m_eglDisplayInitialized = false, m_eglMajorVersion = 0, m_eglMinorVersion = 0}
#23 0x00007fb72857cde0 in WebKit::ThreadedCompositor::createGLContext() (this=0x7fb69aa61660) at ../Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:90
#24 0x00007fb72857bdc7 in WTF::Function<void()>::CallableWrapper<WebKit::CompositingRunLoop::performTaskSync(WTF::Function<void()>&&)::<lambda()> >::call(void) (this=0x7fb69aa4b648) at /usr/include/c++/9/bits/unique_ptr.h:357
#25 0x00007fb72674b9d5 in WTF::RunLoop::performWork() () at /lib64/libjavascriptcoregtk-4.0.so.18
#26 0x00007fb726795cfd in () at /lib64/libjavascriptcoregtk-4.0.so.18
#27 0x00007fb726da7fd0 in g_main_dispatch (context=0x7fb678000b20) at ../glib/gmain.c:3189
dispatch = <optimized out>
prev_source = 0x0
was_in_call = 0
user_data = 0x7fb69aa59000
callback = 0x7fb726795cf0
cb_funcs = 0x7fb726e7a280 <g_source_callback_funcs>
cb_data = 0x7fb6780025b0
need_destroy = <optimized out>
source = 0x7fb678002520
current = 0x7fb678002710
i = 0
__FUNCTION__ = "g_main_dispatch"
#28 0x00007fb726da7fd0 in g_main_context_dispatch (context=context@entry=0x7fb678000b20) at ../glib/gmain.c:3854
#29 0x00007fb726da8368 in g_main_context_iterate (context=0x7fb678000b20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:3927
max_priority = 2147483647
timeout = -1
some_ready = 1
nfds = <optimized out>
allocated_nfds = 1
fds = 0x7fb678002660
#30 0x00007fb726da86b3 in g_main_loop_run (loop=0x7fb678002500) at ../glib/gmain.c:4123
__FUNCTION__ = "g_main_loop_run"
#31 0x00007fb726796770 in WTF::RunLoop::run() () at /lib64/libjavascriptcoregtk-4.0.so.18
#32 0x00007fb72674cd68 in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) () at /lib64/libjavascriptcoregtk-4.0.so.18
#33 0x00007fb726796afd in () at /lib64/libjavascriptcoregtk-4.0.so.18
#34 0x00007fb72507a5a2 in start_thread () at /lib64/libpthread.so.0
#35 0x00007fb727c35023 in clone () at /lib64/libc.so.6
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Tomas Popela
Reported in the Fedora Discussion - https://discussion.fedoraproject.org/t/webkitwebprocess-error/1852
uwb17174
Hi, I was redirected from this Epiphany Browser issue in:
https://gitlab.gnome.org/GNOME/epiphany/-/issues/1235
I am using NVidia GeForce GT 610 (binary driver from NVidia) & Intel Core 2 Duo with X11. Epiphany crashes in the tech preview (3.37.2-90-g6406a3481+), but it's working normal in the regular version in Debian Bulleye (3.36.2).
Any idea? Thanks in advance!
Here is the core dump:
$ ./.local/share/bin/flatpak-coredumpctl org.gnome.Epiphany.Devel//master
Executable /usr/libexec/webkit2gtk-4.0/WebKitWebProcess doesn't seem to be a flatpaked application.
Running: `"flatpak" "run" "--filesystem=home" "--filesystem=/tmp" "--command=gdb" "--devel" "org.gnome.Epiphany.Devel//master" "/usr/libexec/webkit2gtk-4.0/WebKitWebProcess" "/tmp/tmpnd8qsr5o"`
/usr/share/gdb/python/gdb/command/prompt.py:48: SyntaxWarning: "is not" with a literal. Did you mean "!="?
if self.value is not '':
/usr/share/gdb/python/gdb/command/prompt.py:60: SyntaxWarning: "is not" with a literal. Did you mean "!="?
if self.value is not '':
GNU gdb (GDB) 8.3.1
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/libexec/webkit2gtk-4.0/WebKitWebProcess...
Reading symbols from /usr/lib/debug//usr/libexec/webkit2gtk-4.0/WebKitWebProcess.debug...
warning: core file may not match specified executable file.
[New LWP 85]
[New LWP 43]
[New LWP 45]
[New LWP 46]
[New LWP 48]
[New LWP 47]
[New LWP 49]
[New LWP 51]
[New LWP 50]
[New LWP 53]
[New LWP 54]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/x86_64-linux-gnu/libthread_db.so.1".
could not find '.gnu_debugaltlink' file for /usr/lib/debug/usr/lib/x86_64-linux-gnu/libsystemd.so.0.28.0.debug
warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libicudata.so.65.1.debug" does not match "/usr/lib/x86_64-linux-gnu/libicudata.so.65" (CRC mismatch).
warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libicudata.so.65.1.debug" does not match "/usr/lib/x86_64-linux-gnu/libicudata.so.65" (CRC mismatch).
warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0.debug" does not match "/usr/lib/x86_64-linux-gnu/libX11-xcb.so.1" (CRC mismatch).
warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0.debug" does not match "/usr/lib/x86_64-linux-gnu/libX11-xcb.so.1" (CRC mismatch).
warning: the debug information found in "/usr/lib/debug//app/lib/libdazzle-1.0.so.0.debug" does not match "/app/lib/libdazzle-1.0.so.0" (CRC mismatch).
Core was generated by `/usr/libexec/webkit2gtk-4.0/WebKitWebProcess 15 37'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 WebCore::GLContextGLX::createPbufferContext (platformDisplay=...,
sharingContext=sharingContext@entry=0x0)
at ../Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:232
--Type <RET> for more, q to quit, c to continue without paging--c
232 XUniqueGLXPbuffer pbuffer(glXCreatePbuffer(display, configs.get()[0], pbufferAttributes));
[Current thread is 1 (Thread 0x7f3b294ff700 (LWP 85))]
(gdb) bt full
#0 0x00007f3b83929718 in WebCore::GLContextGLX::createPbufferContext(WebCore::PlatformDisplay&, __GLXcontextRec*)
(platformDisplay=..., sharingContext=sharingContext@entry=0x0)
at ../Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:232
fbConfigAttributes =
{32784, 4, 32785, 1, 8, 1, 9, 1, 10, 1, 11, 1, 5, 0, 0}
returnedElements = 56
display = 0x55d0e47484c0
configs = std::unique_ptr<__GLXFBConfigRec *> = {get() = 0x0}
pbufferAttributes = {32833, 1, 32832, 1, 0}
pbuffer = {m_resource = 1}
context = std::unique_ptr<__GLXcontextRec> = {get() = 0x3100000007}
#1 0x00007f3b83929d18 in WebCore::GLContextGLX::createSharingContext(WebCore::PlatformDisplay&) (platformDisplay=...)
at ../Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:295
context =
std::unique_ptr<WebCore::GLContextGLX> = {get() = 0x7f3b7d834260 <__glvndPthreadFuncs>}
#2 0x00007f3b838fb706 in WebCore::GLContext::createSharingContext(WebCore::PlatformDisplay&) (display=...)
at ../Source/WebCore/platform/graphics/GLContext.cpp:115
glxContext =
std::unique_ptr<WebCore::GLContextGLX> = {get() = 0x7f3b7d834260 <__gl--Type <RET> for more, q to quit, c to continue without paging--
vndPthreadFuncs>}
#3 0x00007f3b838fc0ae in WebCore::PlatformDisplay::sharingGLContext()
(this=this@entry=0x7f3b794fb270)
at ../Source/WebCore/platform/graphics/PlatformDisplay.cpp:172
#4 0x00007f3b83929c00 in WebCore::GLContextGLX::createContext(unsigned long, WebCore::PlatformDisplay&) (window=window@entry=50331652, platformDisplay=...)
at ../Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:283
glxSharingContext = <optimized out>
context = std::unique_ptr<WebCore::GLContextGLX> = {get() = 0x0}
#5 0x00007f3b838fb52f in WebCore::GLContext::createContextForWindow(unsigned long, WebCore::PlatformDisplay*)
(windowHandle=50331652, platformDisplay=<optimized out>)
at ../Source/WebCore/platform/graphics/GLContext.cpp:89
glxContext = std::unique_ptr<WebCore::GLContextGLX> = {get() = 0x0}
display =
@0x7f3b794fb270: {_vptr.PlatformDisplay = 0x7f3b84d8ea28 <vtable for WebCore::PlatformDisplayX11+16>, m_nativeDisplayOwned = WebCore::PlatformDisplay::NativeDisplayOwned::No, m_eglDisplay = 0x0, m_sharingGLContext = std::unique_ptr<WebCore::GLContext> = {get() = 0x0}, m_eglDisplayInitialized = false, m_eglMajorVersion = 0, m_eglMinorVersion = 0, m_gstGLDisplay = {m_ptr = 0x0}, m_gstGLContext = {m_ptr = 0x0}}
#6 0x00007f3b82336800 in WebKit::ThreadedCompositor::createGLContext()
(this=0x7f3b29915f80)
--Type <RET> for more, q to quit, c to continue without paging--
at ../Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:87
#7 0x00007f3b82334cf7 in WTF::Function<void ()>::operator()() const
(this=<optimized out>) at /usr/include/c++/10.1.0/bits/unique_ptr.h:420
locker = <optimized out>
#8 0x00007f3b82334cf7 in operator() (__closure=<optimized out>)
at ../Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:90
locker = <optimized out>
#9 0x00007f3b82334cf7 in WTF::Detail::CallableWrapper<WebKit::CompositingRunLoop::performTaskSync(WTF::Function<void()>&&)::<lambda()>, void>::call(void)
(this=0x7f3b2990c288) at DerivedSources/ForwardingHeaders/wtf/Function.h:52
#10 0x00007f3b80bd78e9 in WTF::Function<void ()>::operator()() const
(this=<synthetic pointer>) at ../Source/WTF/wtf/Vector.h:341
function =
{m_callableWrapper = std::unique_ptr<WTF::Detail::CallableWrapperBase<void>> = {get() = 0x7f3b2990c288}}
functionsHandled = 0
functionsToHandle = 1
didSuspendFunctions = false
#11 0x00007f3b80bd78e9 in WTF::RunLoop::performWork() (this=0x7f3b295f8000)
at ../Source/WTF/wtf/RunLoop.cpp:140
function =
--Type <RET> for more, q to quit, c to continue without paging--
{m_callableWrapper = std::unique_ptr<WTF::Detail::CallableWrapperBase<void>> = {get() = 0x7f3b2990c288}}
functionsHandled = 0
functionsToHandle = 1
didSuspendFunctions = false
#12 0x00007f3b80c2558d in operator() (userData=<optimized out>, __closure=0x0)
at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:68
#13 0x00007f3b80c2558d in _FUN(gpointer) ()
at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:70
#14 0x00007f3b8129ce6f in g_main_dispatch (context=0x7f3b0c000b60)
at ../glib/gmain.c:3313
dispatch = 0x7f3b80c255a0 <_FUN(GSource*, GSourceFunc, gpointer)>
prev_source = 0x0
was_in_call = 0
user_data = 0x7f3b295f8000
callback = 0x7f3b80c25580 <_FUN(gpointer)>
cb_funcs = <optimized out>
cb_data = 0x7f3b0c001dd0
need_destroy = <optimized out>
source = 0x7f3b0c001d60
current = 0x7f3b0c002b40
i = 0
__func__ = "g_main_dispatch"
--Type <RET> for more, q to quit, c to continue without paging--c
#15 0x00007f3b8129ce6f in g_main_context_dispatch (context=0x7f3b0c000b60) at ../glib/gmain.c:3978
#16 0x00007f3b8129d218 in g_main_context_iterate (context=0x7f3b0c000b60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4051
max_priority = 100
timeout = 0
some_ready = 1
nfds = <optimized out>
allocated_nfds = <optimized out>
fds = 0x7f3b0c002a90
#17 0x00007f3b8129d533 in g_main_loop_run (loop=loop@entry=0x7f3b0c001d40) at ../glib/gmain.c:4245
__func__ = "g_main_loop_run"
#18 0x00007f3b80c260a0 in WTF::RunLoop::run() () at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:96
runLoop = @0x7f3b295f8000: {<WTF::FunctionDispatcher> = {<WTF::ThreadSafeRefCounted<WTF::FunctionDispatcher, (WTF::DestructionThread)0>> = {<WTF::ThreadSafeRefCountedBase> = {m_refCount = {<std::__atomic_base<unsigned int>> = {static _S_alignment = 4, _M_i = 2}, static is_always_lock_free = true}}, <No data fields>}, _vptr.FunctionDispatcher = 0x7f3b80f720d0 <vtable for WTF::RunLoop+16>}, m_functionQueueLock = {static isHeldBit = 1 '\001', static hasParkedBit = 2 '\002', m_byte = {value = {<std::__atomic_base<unsigned char>> = {static _S_alignment = 1, _M_i = 0 '\000'}, static is_always_lock_free = true}}}, m_functionQueue = {m_start = 1, m_end = 1, m_buffer = {<WTF::VectorBufferBase<WTF::Function<void()>, WTF::FastMalloc>> = {m_buffer = 0x7f3b295f6000, m_capacity = 16, m_size = 0}, <No data fields>}}, m_isFunctionDispatchSuspended = false, m_hasSuspendedFunctions = false, m_mainContext = {m_ptr = 0x7f3b0c000b60}, m_mainLoops = {<WTF::VectorBuffer<WTF::GRefPtr<_GMainLoop>, 0, WTF::FastMalloc>> = {<WTF::VectorBufferBase<WTF::GRefPtr<_GMainLoop>, WTF::FastMalloc>> = {m_buffer = 0x7f3b295f7000, m_capacity = 16, m_size = 1}, <No data fields>}, <No data fields>}, m_source = {m_ptr = 0x7f3b0c001d60}}
mainContext = 0x7f3b0c000b60
innermostLoop = 0x7f3b0c001d40
nestedMainLoop = <optimized out>
#19 0x00007f3b80bd90bd in WTF::Function<void ()>::operator()() const (this=<synthetic pointer>) at ../Source/WTF/wtf/Function.h:81
function = {m_callableWrapper = std::unique_ptr<WTF::Detail::CallableWrapperBase<void>> = {get() = 0x7f3b2990c258}}
#20 0x00007f3b80bd90bd in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) (newThreadContext=0x7f3b29903e58) at ../Source/WTF/wtf/Threading.cpp:167
function = {m_callableWrapper = std::unique_ptr<WTF::Detail::CallableWrapperBase<void>> = {get() = 0x7f3b2990c258}}
#21 0x00007f3b80c2764d in WTF::wtfThreadEntryPoint(void*) (context=<optimized out>) at ../Source/WTF/wtf/posix/ThreadingPOSIX.cpp:197
#22 0x00007f3b7f2994d2 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139892072904448, 4951441610445275893, 140729881238750, 140729881238751, 139892072901952, 8396800, -4989601947617213707, -4989438931772652811}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#23 0x00007f3b817bd563 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb)
Michael Catanzaro
(In reply to uwb17174 from comment #2)
> Hi, I was redirected from this Epiphany Browser issue in:
> https://gitlab.gnome.org/GNOME/epiphany/-/issues/1235
>
> I am using NVidia GeForce GT 610 (binary driver from NVidia) & Intel Core 2
> Duo with X11. Epiphany crashes in the tech preview (3.37.2-90-g6406a3481+),
> but it's working normal in the regular version in Debian Bulleye (3.36.2).
Epiphany version doesn't matter here, only WebKit version. First thing to check: could you try installing libwebkit2gtk-4.0-37 from Debian experimental and see if that introduces the crash? It should be version 2.29.2-1. If so, then we know we have a WebKit regression that can be bisected.
steph
Hit this bug on a yelp page on a Flatpak application: https://github.com/getting-things-gnome/gtg/issues/421
Not sure how to get the flatpak version of the webkit2gtk dependency. Can't reproduce with system yelp running on webkit2gtk 2.28.3-1
Enrique Ocaña
(In reply to uwb17174 from comment #2)
> #0 0x00007f3b83929718 in
> WebCore::GLContextGLX::createPbufferContext(WebCore::PlatformDisplay&,
> __GLXcontextRec*)
> (platformDisplay=..., sharingContext=sharingContext@entry=0x0)
> at ../Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:232
> fbConfigAttributes =
> {32784, 4, 32785, 1, 8, 1, 9, 1, 10, 1, 11, 1, 5, 0, 0}
> returnedElements = 56
> display = 0x55d0e47484c0
> configs = std::unique_ptr<__GLXFBConfigRec *> = {get() = 0x0}
> pbufferAttributes = {32833, 1, 32832, 1, 0}
> pbuffer = {m_resource = 1}
> context = std::unique_ptr<__GLXcontextRec> = {get() = 0x3100000007}
I'm also experiencing a crash in this very same place here, using NVidia proprietary drivers. I've reported it as bug 217323.
In both stacktraces, yours and mine, configs is pointing to null (so 0 elements have been returned by glXChooseFBConfig()) but returnedElements is different from zero. That's because glXChooseFBConfig() has an early return that leaves returnedElements untouched. It still holds its original uninitialized value, a random integer likely different from 0.
Once fixed the crash is gone, but I'm getting a different error, more similar to the one originally reported in this bug and out of the scope of bug 217323:
$ run-minibrowser --gtk http://google.com
libEGL warning: DRI2: failed to authenticate
(WebKitWebProcess:34): Gdk-WARNING **: 11:17:39.044: The program 'WebKitWebProcess' received an X Window System error.
This probably reflects a bug in the program.
The error was '179'.
(Details: serial 193 error_code 179 request_code 154 (unknown) minor_code 21)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Philippe Normand
Is this still an issue?
Enrique Ocaña
Not anymore for me, at least.
This issue disappeared after https://bugs.webkit.org/show_bug.cgi?id=230891 landed. That patch uses the flatpack extension for the Nvidia proprietary drivers (on systems that have them).
Still, I had to install the nvidia flatpak extensions manually in the WebKit flatpak with this command that Phil suggested to me (adapt the path for your case):
FLATPAK_USER_DIR=$HOME/WebKit/WebKitBuild/UserFlatpak flatpak install --user org.freedesktop.Platform.GL.nvidia-460-91
Later, after considering Patrick's feedback, Phil suggested a new command to install it system-wide and avoid reinstalls every time the WebKit flatpack (UserFlatpak) is regenerated:
flatpak install --system org.freedesktop.Platform.GL.nvidia-460-91
After this, both MiniBrowser and Epiphany Canary (following instructions from https://base-art.net/Articles/introducing-the-gnome-web-canary-flavor/) worked fine (including HTML5 video) in X11 using the proprietary drivers. They even worked in wayland in an X-Window weston session, something that I couldn't ever get working before.
Phil, thanks for whatever you did to fix this! Now my nvidia laptop has changed from being an expensive paperweight to be a useful machine for upstream developing again. :-)))
Philippe Normand
Alright, let's close this. Please re-open if folks still have issues about this :)