Bug 160240

Summary: [GTK] WebProcess from WebKitGtk+ 2.13.4 SIGTRAPs in _ZN7WebCore12GLContextGLX22defaultFrameBufferSizeEv () at Source/WebCore/platform/graphics/glx/GLContextGLX.cpp
Product: WebKit Reporter: Andres Gomez Garcia <agomez>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: bugs-noreply, cgarcia
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 160389    
Bug Blocks:    
Attachments:
Description Flags
BT from gdb none

Andres Gomez Garcia
Reported 2016-07-27 05:43:27 PDT
Created attachment 284687 [details] BT from gdb I'm using WebKitGtk+ with my own JHBuild setting: https://github.com/tanty/jhbuild-epiphany/tree/master Epiphany 3.20.3 and WebKit 2.13.4 I'm running Epiphany with the dconf key: "process-model" = "shared-secondary-process" The compilation was done with CMake args: '-DPORT=GTK -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS_RELEASE="-O0 -g1 -DNDEBUG -DG_DISABLE_CAST_CHECKS" -DCMAKE_CXX_FLAGS_RELEASE="-O0 -g1 -DNDEBUG -DG_DISABLE_CAST_CHECKS"' After visiting several pages, eventually, WebKitWebProcess hits a SIGTRAP. This bug is not reproducible in a predictable way.
Attachments
BT from gdb (67.52 KB, text/plain)
2016-07-27 05:43 PDT, Andres Gomez Garcia
no flags
Andres Gomez Garcia
Comment 1 2016-07-27 05:47:05 PDT
This was the message from epiphany's process: ERROR: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 6 /home/tanty/no-backup/personal/webkit/epiphany/jhbuild-checkout/webkitgtk-2.13.4/Source/WebKit2/Platform/IPC/Connection.cpp(590) : std::unique_ptr<IPC::MessageDecoder> IPC::Connection::waitForSyncReply(uint64_t, std::chrono::milliseconds, unsigned int) (WebKitWebProcess:26585): Gdk-ERROR **: The program 'WebKitWebProcess' received an X Window System error. This probably reflects a bug in the program. The error was 'BadDrawable (invalid Pixmap or Window parameter)'. (Details: serial 43122 error_code 9 request_code 14 (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.)
Carlos Garcia Campos
Comment 2 2016-07-27 06:05:32 PDT
So, DestroyNativeSurfaceForCompositing sync message is timing out. That explains why the UI process ends up destroying the native surface before the web process clears the context. The thing is why it timed out, it could be that it really took more than 1 second, or maybe there's a deadlock with the sync tasks in the threaded compositor.
Andres Gomez Garcia
Comment 3 2016-07-27 06:10:45 PDT
To end the process, I just deattach gdb from the WKWebProcess and, in ephy's UI, chose to "Quit". Ephy is still attached to a gdb session. This is ephy's output: [New Thread 0x7fff557fa700 (LWP 6847)] [Thread 0x7fff557fa700 (LWP 6847) exited] [New Thread 0x7fff557fa700 (LWP 7536)] [Thread 0x7fff557fa700 (LWP 7536) exited] [New Thread 0x7fff557fa700 (LWP 9998)] [Thread 0x7fff557fa700 (LWP 9998) exited] ERROR: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 7 /home/tanty/no-backup/personal/webkit/epiphany/jhbuild-checkout/webkitgtk-2.13.4/Source/WebKit2/Platform/IPC/Connection.cpp(590) : std::unique_ptr<IPC::MessageDecoder> IPC::Connection::waitForSyncReply(uint64_t, std::chrono::milliseconds, unsigned int) ERROR: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 8 /home/tanty/no-backup/personal/webkit/epiphany/jhbuild-checkout/webkitgtk-2.13.4/Source/WebKit2/Platform/IPC/Connection.cpp(590) : std::unique_ptr<IPC::MessageDecoder> IPC::Connection::waitForSyncReply(uint64_t, std::chrono::milliseconds, unsigned int) ERROR: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 9 /home/tanty/no-backup/personal/webkit/epiphany/jhbuild-checkout/webkitgtk-2.13.4/Source/WebKit2/Platform/IPC/Connection.cpp(590) : std::unique_ptr<IPC::MessageDecoder> IPC::Connection::waitForSyncReply(uint64_t, std::chrono::milliseconds, unsigned int) ... ERROR: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 51 /home/tanty/no-backup/personal/webkit/epiphany/jhbuild-checkout/webkitgtk-2.13.4/Source/WebKit2/Platform/IPC/Connection.cpp(590) : std::unique_ptr<IPC::MessageDecoder> IPC::Connection::waitForSyncReply(uint64_t, std::chrono::milliseconds, unsigned int) ERROR: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 52 /home/tanty/no-backup/personal/webkit/epiphany/jhbuild-checkout/webkitgtk-2.13.4/Source/WebKit2/Platform/IPC/Connection.cpp(590) : std::unique_ptr<IPC::MessageDecoder> IPC::Connection::waitForSyncReply(uint64_t, std::chrono::milliseconds, unsigned int) ERROR: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 53 /home/tanty/no-backup/personal/webkit/epiphany/jhbuild-checkout/webkitgtk-2.13.4/Source/WebKit2/Platform/IPC/Connection.cpp(590) : std::unique_ptr<IPC::MessageDecoder> IPC::Connection::waitForSyncReply(uint64_t, std::chrono::milliseconds, unsigned int) [New Thread 0x7fff557fa700 (LWP 11595)] [Thread 0x7fff6abfd700 (LWP 19602) exited] [Thread 0x7fff6bbff700 (LWP 19598) exited] [Thread 0x7fff8bffd700 (LWP 19586) exited] [Thread 0x7fff88b72700 (LWP 19597) exited] [Thread 0x7fff89373700 (LWP 19596) exited] [Thread 0x7fffd6bff700 (LWP 19578) exited] [Thread 0x7fff557fa700 (LWP 11595) exited] [Thread 0x7fff567fc700 (LWP 4066) exited] [Thread 0x7fffd4bfb700 (LWP 19585) exited] [Thread 0x7fff6a3fc700 (LWP 26502) exited] [Thread 0x7fff55ffb700 (LWP 4067) exited] [Thread 0x7fff577fe700 (LWP 4068) exited] [Thread 0x7fff57fff700 (LWP 20595) exited] [Thread 0x7fffd5bfd700 (LWP 19580) exited] [Thread 0x7fffd63fe700 (LWP 19579) exited] [Thread 0x7fffd7bc0700 (LWP 19577) exited] [Thread 0x7fffdc924700 (LWP 19575) exited] [Thread 0x7fffdd125700 (LWP 19574) exited] [Thread 0x7fffde744700 (LWP 19573) exited] [Thread 0x7ffff7f0aac0 (LWP 19346) exited] [Inferior 1 (process 19346) exited normally] (gdb) [ERROR:flash/platform/pepper/common/pep_minithreads_posix.cpp(49)] NOTREACHED() reached [ERROR:flash/platform/pepper/common/pep_minithreads_posix.cpp(59)] NOTREACHED() reached [ERROR:flash/platform/pepper/common/pep_minithreads_posix.cpp(49)] NOTREACHED() reached [ERROR:flash/platform/pepper/common/pep_minithreads_posix.cpp(59)] NOTREACHED() reached (WebKitPluginProcess2:20594): GLib-CRITICAL **: g_hash_table_lookup: assertion 'hash_table != NULL' failed (WebKitPluginProcess2:20594): GLib-CRITICAL **: g_hash_table_lookup: assertion 'hash_table != NULL' failed [ERROR:flash/platform/pepper/common/pep_minithreads_posix.cpp(49)] NOTREACHED() reached [ERROR:flash/platform/pepper/common/pep_minithreads_posix.cpp(59)] NOTREACHED() reached ERROR: Exiting process early due to unacknowledged closed-connection /home/tanty/no-backup/personal/webkit/epiphany/jhbuild-checkout/webkitgtk-2.13.4/Source/WebKit2/Shared/ChildProcess.cpp(58) : WebKit::didCloseOnConnectionWorkQueue(IPC::Connection*)::<lambda()> (gdb)
Carlos Garcia Campos
Comment 4 2016-07-27 06:19:29 PDT
It's single process model, so using a shared thread, one possibility could be that other compositors are scheduling updates like crazy and it takes a bit longer until the destroy task is performed, maybe more than 1 second in total.
Carlos Garcia Campos
Comment 5 2016-08-01 23:47:48 PDT
This should no longer happen after r204013. Please reopen if you see this crash again. Thanks.
Note You need to log in before you can comment on or make changes to this bug.