Bug 172973

Summary: [GTK] Web Process deadlock when closing the remote inspector frontend
Product: WebKit Reporter: Carlos Garcia Campos <cgarcia>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: bugs-noreply, buildbot, keith_miller, mark.lam, msaboff, sbarati, zan
Priority: P2 Keywords: Gtk
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch zan: review+

Description Carlos Garcia Campos 2017-06-06 06:04:15 PDT
Thread 1 (Thread 0x7f4d2ca92a80 (LWP 14161)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f4d271c1a1b in WTF::ThreadCondition::timedWait(WTF::Mutex&, double) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#2  0x00007f4d2718a983 in WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) ()
   from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#3  0x00007f4d27180a44 in WTF::LockAlgorithm<unsigned char, (unsigned char)1, (unsigned char)2>::lockSlow(WTF::Atomic<unsigned char>&) ()
   from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#4  0x00007f4d271728fd in Inspector::RemoteInspector::updateTarget(Inspector::RemoteControllableTarget*) ()
   from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#5  0x000056402dcea681 in WebCore::PageDebuggable::disconnect(Inspector::FrontendChannel*) ()
#6  0x00007f4d27173c49 in Inspector::RemoteConnectionToTarget::close() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007f4d27174fbd in Inspector::RemoteInspector::receivedCloseMessage(unsigned int) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#8  0x00007f4d27175432 in Inspector::RemoteInspector::{lambda(_GDBusConnection*, char const*, char const*, char const*, char const*, _GVariant*, _GDBusMethodInvocation*, void*)#1}::_FUN(_GDBusConnection*, char const*, char const*, char const*, char const*, _GVariant*, _GDBusMethodInvocation*, void*) ()
   from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#9  0x00007f4d224e01c9 in call_in_idle_cb (user_data=<optimized out>) at gdbusconnection.c:4851
#10 0x00007f4d21f055aa in g_main_dispatch (context=0x5640308d1aa0) at gmain.c:3234
---Type <return> to continue, or q <return> to quit---
#11 g_main_context_dispatch (context=context@entry=0x5640308d1aa0) at gmain.c:3899
#12 0x00007f4d21f05928 in g_main_context_iterate (context=0x5640308d1aa0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3972
#13 0x00007f4d21f05c42 in g_main_loop_run (loop=0x56403095e100) at gmain.c:4168
#14 0x00007f4d271c2de0 in WTF::RunLoop::run() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#15 0x00007f4d2a6cc6a2 in int WebKit::ChildProcessMain<WebKit::WebProcess, WebKit::WebProcessMain>(int, char**) ()
   from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#16 0x00007f4d1cdaf2b1 in __libc_start_main (main=0x56402d40baf0 <main>, argc=2, argv=0x7ffe91537268, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
    stack_end=0x7ffe91537258) at ../csu/libc-start.c:291
#17 0x000056402d40bc5a in _start ()

We are taking the remote inspector mutex twice
Comment 1 Carlos Garcia Campos 2017-06-06 06:07:41 PDT
Created attachment 312069 [details]
Patch
Comment 2 Carlos Garcia Campos 2017-06-06 08:15:20 PDT
Committed r217830: <http://trac.webkit.org/changeset/217830>