<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>193569</bug_id>
          
          <creation_ts>2019-01-18 05:41:36 -0800</creation_ts>
          <short_desc>[GLIB] Remote Inspector: no data displayed</short_desc>
          <delta_ts>2019-02-05 08:03:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Serban Ungureanu">s.ungureanu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>t.bernard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1495807</commentid>
    <comment_count>0</comment_count>
    <who name="Serban Ungureanu">s.ungureanu</who>
    <bug_when>2019-01-18 05:41:36 -0800</bug_when>
    <thetext>Overview: After the 2.23.2(and 2.23.3) webkit gtk releases, remote inspector is not working anymore. The remote inspector attaches to a debugged minibrowser but doesn&apos;t display any data in any of the remote inspector&apos;s tabs. Moreover, the debugged minibrowser hangs even after the debugging session is ended.

Reproduction steps:
1. Run MiniBrowser and load a web page.
2. Attach the remote inspector in order to debug the minibrowser session.

Expected result: Remote debugger attaches to the running minibrowser and retrieves inspector data.
Actual result: No data is displayed in any of the tabs. The minibrowser session hangs after remote debugging is closed.

Build date and hardware:
Built on 17th January 2019, using webkitgtk 2.23.2 and 2.23.3 on Ubuntu 18.04.1 TLS

Build parameters: 
cmake -DPORT=GTK -DENABLE_OPENGL=ON -DENABLE_GLES2=ON -DENABLE_MINIBROWSER=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_WEBGL=ON -DENABLE_ENCRYPTED_MEDIA=ON -DENABLE_MEDIA_SOURCE=ON -GNinja ..

Run command: 
WEBKIT_INSPECTOR_SERVER=0.0.0.0:12345 ./bin/MiniBrowser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495818</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-01-18 06:36:41 -0800</bug_when>
    <thetext>This is because the target is in a deadlock in the main thread:

Thread 1 (Thread 0x7fa2e998e9c0 (LWP 32133)):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x7fa2e81fb964) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x7fa2e81fb910, cond=0x7fa2e81fb938) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x7fa2e81fb938, mutex=0x7fa2e81fb910) at pthread_cond_wait.c:655
#3  0x00007fa2f145326b in WTF::ThreadCondition::timedWait(WTF::Mutex&amp;, WTF::WallTime) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#4  0x00007fa2f13f145b in WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda&lt;bool ()&gt; const&amp;, WTF::ScopedLambda&lt;void ()&gt; const&amp;, WTF::TimeWithDynamicClockType const&amp;) ()
   from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#5  0x00007fa2f13e5aae in WTF::LockAlgorithm&lt;unsigned char, (unsigned char)1, (unsigned char)2, WTF::EmptyLockHooks&lt;unsigned char&gt; &gt;::lockSlow(WTF::Atomic&lt;unsigned char&gt;&amp;) ()
   from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007fa2f0ecb3aa in Inspector::RemoteInspector::sendMessageToRemote(unsigned int, WTF::String const&amp;) ()
   from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007fa2f0e5cd10 in Inspector::FrontendRouter::sendEvent(WTF::String const&amp;) const () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#8  0x00007fa2f0e83f91 in Inspector::TargetFrontendDispatcher::targetCreated(WTF::RefPtr&lt;Inspector::Protocol::Target::TargetInfo, WTF::DumbPtrTraits&lt;Inspector::Protocol::Target::TargetInfo&gt; &gt;) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#9  0x00007fa2f0ebe158 in Inspector::InspectorTargetAgent::connectToTargets() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
--Type &lt;RET&gt; for more, q to quit, c to continue without paging--
#10 0x00007fa2f0e5c323 in Inspector::AgentRegistry::didCreateFrontendAndBackend(Inspector::FrontendRouter*, Inspector::BackendDispatcher*) ()
   from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#11 0x00007fa2f4678f51 in WebKit::WebPageInspectorController::connectFrontend(Inspector::FrontendChannel&amp;, bool, bool) ()
   from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#12 0x00007fa2f0ece081 in Inspector::RemoteConnectionToTarget::setup(bool, bool) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#13 0x00007fa2f0ece25c in Inspector::RemoteInspector::setup(unsigned int) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#14 0x00007fa2f0ece2dd in Inspector::RemoteInspector::receivedSetupMessage(unsigned int) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#15 0x00007fa2f0ece385 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
#16 0x00007fa2f2078fe9 in call_in_idle_cb (user_data=&lt;optimized out&gt;) at ../gio/gdbusconnection.c:4847
#17 0x00007fa2f1e63588 in g_main_dispatch (context=0x55f1f3a5b150) at ../glib/gmain.c:3190
#18 g_main_context_dispatch (context=context@entry=0x55f1f3a5b150) at ../glib/gmain.c:3855
#19 0x00007fa2f1e63948 in g_main_context_iterate (context=0x55f1f3a5b150, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at ../glib/gmain.c:3928
#20 0x00007fa2f1e63c32 in g_main_loop_run (loop=0x55f1f40fd470) at ../glib/gmain.c:4124
#21 0x00007fa2f267f155 in gtk_main () at gtkmain.c:1323
#22 0x000055f1f1acf914 in main ()

See:

#12 0x00007fa2f0ece081 in Inspector::RemoteConnectionToTarget::setup(bool, bool) ()

Here we take the remote inspector mutex that is still locked when:

#6  0x00007fa2f0ecb3aa in Inspector::RemoteInspector::sendMessageToRemote(unsigned int, WTF::String const&amp;) ()

is called. This doesn&apos;t happen in cocoa inspector because RemoteConnectionToTarget::setup() calls RemoteInspectionTarget::connect() asynchronously, so the remote inspector mutex is no longer locked.

In the GLib case I think we can get rid of the mutex when receiving DBus messages, because they are dispatched to the main thread by GDBus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496558</commentid>
    <comment_count>2</comment_count>
      <attachid>359682</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-01-21 02:56:47 -0800</bug_when>
    <thetext>Created attachment 359682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496659</commentid>
    <comment_count>3</comment_count>
      <attachid>359682</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-21 14:41:23 -0800</bug_when>
    <thetext>Comment on attachment 359682
Patch

r=me. Moving the lock to the smaller scope is safer anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496660</commentid>
    <comment_count>4</comment_count>
      <attachid>359682</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-21 14:42:09 -0800</bug_when>
    <thetext>Comment on attachment 359682
Patch

And thanks for this bug report, Serban. We would surely have released 2.24 with this broken had you not reported it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497264</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-01-23 02:13:02 -0800</bug_when>
    <thetext>Committed r240330: &lt;https://trac.webkit.org/changeset/240330&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359682</attachid>
            <date>2019-01-21 02:56:47 -0800</date>
            <delta_ts>2019-01-21 14:42:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk-remote-inspector-deadlock.diff</filename>
            <type>text/plain</type>
            <size>2354</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGRiYzdkNDZhZDE4Li43YjRmYzVkM2MxYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDEtMjEgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHTElCXSBS
ZW1vdGUgSW5zcGVjdG9yOiBubyBkYXRhIGRpc3BsYXllZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVsZWFzZSB0aGUgcmVtb3RlIGluc3BlY3RvciBt
dXRleCBiZWZvcmUgdXNpbmcgUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0IGluIFJlbW90ZUluc3Bl
Y3Rvcjo6c2V0dXAoKSB0byBhdm9pZCBhCisgICAgICAgIGRlYWRsb2NrLgorCisgICAgICAgICog
aW5zcGVjdG9yL3JlbW90ZS9nbGliL1JlbW90ZUluc3BlY3RvckdsaWIuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OnJlY2VpdmVkU2V0dXBNZXNzYWdlKToKKyAgICAg
ICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzZXR1cCk6CisKIDIwMTktMDEtMjAgIFNh
YW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgREZHOiBXaGVuIGlubGlu
aW5nIERhdGFWaWV3IHNldCogaW50cmluc2ljcyB3ZSBuZWVkIHRvIHNldCB1bmRlZmluZWQgYXMg
b3VyIHJlc3VsdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9y
ZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JHbGliLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlSW5zcGVjdG9yR2xpYi5jcHAKaW5kZXggMWQw
MGEzMDQ1MDMuLmI3MzQ1NWE0MGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9nbGliL1JlbW90ZUluc3BlY3RvckdsaWIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlSW5zcGVjdG9yR2xp
Yi5jcHAKQEAgLTI5Myw3ICsyOTMsNiBAQCB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRH
ZXRUYXJnZXRMaXN0TWVzc2FnZSgpCiAKIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZFNl
dHVwTWVzc2FnZSh1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyKQogewotICAgIHN0ZDo6bG9ja19n
dWFyZDxMb2NrPiBsb2NrKG1fbXV0ZXgpOwogICAgIHNldHVwKHRhcmdldElkZW50aWZpZXIpOwog
fQogCkBAIC0zMjgsOSArMzI3LDEzIEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZENs
b3NlTWVzc2FnZSh1bnNpZ25lZCB0YXJnZXRJZGVudGlmaWVyKQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3Rvcjo6c2V0dXAodW5zaWduZWQgdGFyZ2V0SWRlbnRpZmllcikKIHsKLSAgICBSZW1vdGVDb250
cm9sbGFibGVUYXJnZXQqIHRhcmdldCA9IG1fdGFyZ2V0TWFwLmdldCh0YXJnZXRJZGVudGlmaWVy
KTsKLSAgICBpZiAoIXRhcmdldCkKLSAgICAgICAgcmV0dXJuOworICAgIFJlbW90ZUNvbnRyb2xs
YWJsZVRhcmdldCogdGFyZ2V0OworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+
IGxvY2sobV9tdXRleCk7CisgICAgICAgIHRhcmdldCA9IG1fdGFyZ2V0TWFwLmdldCh0YXJnZXRJ
ZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCF0YXJnZXQpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgfQogCiAgICAgYXV0byBjb25uZWN0aW9uVG9UYXJnZXQgPSBhZG9wdFJlZigqbmV3IFJlbW90
ZUNvbm5lY3Rpb25Ub1RhcmdldCgqdGFyZ2V0KSk7CiAgICAgQVNTRVJUKGlzPFJlbW90ZUluc3Bl
Y3Rpb25UYXJnZXQ+KHRhcmdldCkgfHwgaXM8UmVtb3RlQXV0b21hdGlvblRhcmdldD4odGFyZ2V0
KSk7CkBAIC0zMzgsNiArMzQxLDggQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3I6OnNldHVwKHVuc2ln
bmVkIHRhcmdldElkZW50aWZpZXIpCiAgICAgICAgIGNvbm5lY3Rpb25Ub1RhcmdldC0+Y2xvc2Uo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBs
b2NrKG1fbXV0ZXgpOwogICAgIG1fdGFyZ2V0Q29ubmVjdGlvbk1hcC5zZXQodGFyZ2V0SWRlbnRp
ZmllciwgV1RGTW92ZShjb25uZWN0aW9uVG9UYXJnZXQpKTsKIAogICAgIHVwZGF0ZUhhc0FjdGl2
ZURlYnVnU2Vzc2lvbigpOwo=
</data>
<flag name="review"
          id="376427"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>