[webkit-gtk] Webprocess hang with javascript on MacOS

John Ralls jralls at ceridwen.fremont.ca.us
Sat Oct 7 17:28:09 PDT 2017


I'm using a WebkitWebView to display reports in a program (GnuCash). Everything works fine on Linux, and we're using GnuCash 2.4.11 on Windows, which works OK too.

On MacOS with WebKit 2.16.6 plain html renders OK but WebKitWebProcess wanders off to never-never land on reports containing Javascript like the one attached. It has the following threads running:
  thread #1: tid = 0x22a9aaf, 0x0000000111295bf2 libsystem_kernel.dylib`__psynch_cvwait + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  thread #2: tid = 0x22a9abf, 0x0000000111295bf2 libsystem_kernel.dylib`__psynch_cvwait + 10
  thread #3: tid = 0x22a9ada, 0x0000000111295eb6 libsystem_kernel.dylib`__select + 10, name = 'com.apple.WebKit.EventDispatcher'
  thread #4: tid = 0x22a9adb, 0x0000000111295eb6 libsystem_kernel.dylib`__select + 10, name = 'com.apple.WebKit.PluginProcessConnectionManager'
  thread #5: tid = 0x22a9adc, 0x0000000111295eb6 libsystem_kernel.dylib`__select + 10, name = 'com.apple.IPC.ReceiveQueue'
  thread #6: tid = 0x22a9ae7, 0x0000000111295eb6 libsystem_kernel.dylib`__select + 10, name = 'com.apple.IPC.ReceiveQueue'
  thread #7: tid = 0x22a9aeb, 0x0000000111295bf2 libsystem_kernel.dylib`__psynch_cvwait + 10
  thread #8: tid = 0x22aa165, 0x000000011129644e libsystem_kernel.dylib`__workq_kernreturn + 10
  thread #9: tid = 0x22aa1da, 0x0000000111295bf2 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'WTF::AutomaticThread'
  thread #10: tid = 0x22aa1db, 0x0000000111295bf2 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'WTF::AutomaticThread'
  thread #11: tid = 0x22aa1dc, 0x0000000111295bf2 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'WTF::AutomaticThread'
  thread #12: tid = 0x22aa1dd, 0x0000000111295bf2 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'WTF::AutomaticThread'
  thread #13: tid = 0x22aa1de, 0x0000000111295bf2 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'WTF::AutomaticThread'
  thread #14: tid = 0x22aa1df, 0x0000000111295bf2 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'WTF::AutomaticThread'
  thread #15: tid = 0x22aa1e0, 0x0000000111295bf2 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'WTF::AutomaticThread'

All of which are either sitting in g_poll() or _pthread_cond_wait().

The bottom of the main thread's call stack looks like:
    frame #28: 0x000000010b8f5602 libjavascriptcoregtk-4.0.18.dylib`JSC::$_0::operator(this=0x0000000000000000, (null)=0x00007ff211a06090, callback=(libjavascriptcoregtk-4.0.18.dylib`JSC::HeapTimer::HeapTimer(JSC::VM*)::$_1::__invoke(void*) at HeapTimer.cpp:136), userData=0x00000001121e5300)(_GSource*, int (*)(void*), void*) const + 34 at HeapTimer.cpp:123
    frame #29: 0x000000010b8f55d8 libjavascriptcoregtk-4.0.18.dylib`JSC::$_0::__invoke((null)=0x00007ff211a06090, callback=(libjavascriptcoregtk-4.0.18.dylib`JSC::HeapTimer::HeapTimer(JSC::VM*)::$_1::__invoke(void*) at HeapTimer.cpp:136), userData=0x00000001121e5300)(void*), void*) + 40 at HeapTimer.cpp:121
    frame #30: 0x00000001101893e0 libglib-2.0.0.dylib`g_main_context_dispatch + 320
    frame #31: 0x0000000110189704 libglib-2.0.0.dylib`g_main_context_iterate + 420
    frame #32: 0x0000000110189a2f libglib-2.0.0.dylib`g_main_loop_run + 223
    frame #33: 0x00000001042954a4 libwebkit2gtk-4.0.37.dylib`WTF::RunLoop::run() + 180 at RunLoopGLib.cpp:94
    frame #34: 0x00000001023b28d8 libwebkit2gtk-4.0.37.dylib`int WebKit::ChildProcessMain<WebKit::WebProcess, WebKit::WebProcessMain>(argc=2, argv=0x00007fff5e3f8518) + 152 at ChildProcessMain.h:61
    frame #35: 0x00000001023b282b libwebkit2gtk-4.0.37.dylib`WebProcessMainUnix(argc=2, argv=0x00007fff5e3f8518) + 27 at WebProcessMainGtk.cpp:69
    frame #36: 0x000000010180f285 WebKitWebProcess`main(argc=2, argv=0x00007fff5e3f8518) + 69 at WebProcessMain.cpp:45
    frame #37: 0x000000011124e235 libdyld.dylib`start + 1
    frame #38: 0x000000011124e235 libdyld.dylib`start + 1

It seems likely to me that some thread has died, but I have no idea where to look. Any ideas?

Regards,
John Ralls



More information about the webkit-gtk mailing list