<?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>220366</bug_id>
          
          <creation_ts>2021-01-06 09:22:07 -0800</creation_ts>
          <short_desc>REGRESSION(r270074): [WPE][GTK] Problems when creating SoupServer in WebKitTestServer::WebKitTestServer</short_desc>
          <delta_ts>2021-01-27 06:00:25 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=220922</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=220938</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>219995</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>aboya</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>dpino</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jan.brummer</cc>
    
    <cc>lmoura</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pgriffis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1717667</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-06 09:22:07 -0800</bug_when>
    <thetext>Using libsoup (built from latest commit on gnome-3-38 branch), I notice that WebKitTestServer crashes whenever it is constructed, which prevents running API tests that use it. The error is:

Failed to start HTTP server: Can’t create a TLS server without a TLS certificate

Problem is here:

SoupServerListenOptions serverOptions = static_cast&lt;SoupServerListenOptions&gt;(options[ServerHTTPS] ? SOUP_SERVER_LISTEN_IPV4_ONLY : SOUP_SERVER_LISTEN_IPV4_ONLY | SOUP_SERVER_LISTEN_HTTPS);

Notice that the logic was inverted by mistake in r270074. We pass SOUP_SERVER_LISTEN_HTTPS only when options[ServerHTTPS] is not set. That is, whenever we should not be listening for HTTPS, we listen for HTTPS. And whenever we should be listening for HTTPS, we don&apos;t.

This leads me to question: how does anything currently work? I see API tests are actually currently passing on the release bots, so... ?????

I notice we also currently pass SOUP_SERVER_LISTEN_IPV4_ONLY to vanilla soup_server_listen(), which does nothing. We should probably stop doing that, so my suggested fix would be:

diff --git a/Tools/TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp b/Tools/TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp
index 2a0720fc3fdd..6baaaddad01d 100644
--- a/Tools/TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp
+++ b/Tools/TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp
@@ -45,14 +45,13 @@ WebKitTestServer::WebKitTestServer(ServerOptionsBitSet options)
         SOUP_SERVER_SSL_KEY_FILE, sslKeyFile.get(), nullptr));
 
     GUniqueOutPtr&lt;GError&gt; error;
-    SoupServerListenOptions serverOptions = static_cast&lt;SoupServerListenOptions&gt;(options[ServerHTTPS] ? SOUP_SERVER_LISTEN_IPV4_ONLY : SOUP_SERVER_LISTEN_IPV4_ONLY | SOUP_SERVER_LISTEN_HTTPS);
     bool serverStarted = false;
     if (options[ServerNonLoopback]) {
         GRefPtr&lt;SoupAddress&gt; address = adoptGRef(soup_address_new(&quot;localhost&quot;, SOUP_ADDRESS_ANY_PORT));
         soup_address_resolve_sync(address.get(), nullptr);
-        serverStarted = soup_server_listen(m_soupServer.get(), soup_address_get_gsockaddr(address.get()), serverOptions, &amp;error.outPtr());
+        serverStarted = soup_server_listen(m_soupServer.get(), soup_address_get_gsockaddr(address.get()), options[ServerHTTPS] ? SOUP_SERVER_LISTEN_HTTPS : static_cast&lt;SoupServerListenOptions&gt;(0), &amp;error.outPtr());
     } else
-        serverStarted = soup_server_listen_local(m_soupServer.get(), SOUP_ADDRESS_ANY_PORT, serverOptions, &amp;error.outPtr());
+        serverStarted = soup_server_listen_local(m_soupServer.get(), SOUP_ADDRESS_ANY_PORT, options[ServerHTTPS] ? static_cast&lt;SoupServerListenOptions&gt;(SOUP_SERVER_LISTEN_IPV4_ONLY | SOUP_SERVER_LISTEN_HTTPS) : SOUP_SERVER_LISTEN_IPV4_ONLY, &amp;error.outPtr());
     if (!serverStarted) {
         WTFLogAlways(&quot;Failed to start HTTP server: %s&quot;, error-&gt;message);
         CRASH();

Of course, if that worked, I would submit a proper patch. It doesn&apos;t work. serverStarted is true, so the listen call succeeds, but soup_server_get_uris() returns NULL, and then we crash. (A smaller patch that just swaps SOUP_SERVER_LISTEN_HTTPS around crashes the same way.) It smells like a libsoup bug. Surely if the call to listen() succeeds, then soup_server_get_uris() should return results?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721150</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-21 06:51:28 -0800</bug_when>
    <thetext>The soup server impl is indeed very broken. I also don&apos;t understand how it can work in the bots and EWS. I&apos;m not sure it&apos;s worth reverting the original commits or just fix current impl at this point. In any case we should make sure the bots are running the actual code and not an old version or whatever is going on.

Michael&apos;s patch looks good, but it0&apos;s not enough:

1- We are assuming soup_server_get_uris() returns a list og objects, but SoupURI is not an object. That means we should use soup_uri_copy instead of g_object_ref when setting m_baseURI (or steal the uri somehow) and soup_uri_free instead of g_object_ref when freeing the list.

2- We are still calling soup_server_run_async() that should only be called from the old API. We can just omit it, it&apos;s not needed with the new API.

Michael, could you submit a new patch with those things fixed, please?

Diego, Lauro or Carlos, could any of you check why tests are running fine in the bots, please?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721185</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-21 09:12:58 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #1)
&gt; Michael, could you submit a new patch with those things fixed, please?

Sure. That indeed seems to be enough to fix WebKitTestServer for me locally. I guess we should probably not land this until we know what&apos;s happening with the bots, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721187</commentid>
    <comment_count>3</comment_count>
      <attachid>418046</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-21 09:14:33 -0800</bug_when>
    <thetext>Created attachment 418046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721287</commentid>
    <comment_count>4</comment_count>
      <attachid>418046</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-21 12:45:30 -0800</bug_when>
    <thetext>Comment on attachment 418046
Patch

Looks like API tests EWS really hates this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721513</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-22 00:55:27 -0800</bug_when>
    <thetext>I think there are two issues. We are still using soup_server_get_port() which is also &quot;old&quot; api, and I think https server is somehow broken too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721581</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-22 07:12:22 -0800</bug_when>
    <thetext>I don&apos;t have time to go further. We might need to revert r270074 and r270170. They were needed for bug #171934, but that&apos;s stalled anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721964</commentid>
    <comment_count>7</comment_count>
    <who name="Diego Pino">dpino</who>
    <bug_when>2021-01-25 00:26:34 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #1)

&gt; Diego, Lauro or Carlos, could any of you check why tests are running fine in
&gt; the bots, please?
&gt; 
&gt; Thanks!

I built libsoup gnome3-38 branch, it builds libsoup2.72.0 which corresponds to this commit:

$ git log -1 2.72.0
commit ae1632c176c60b7fe832024c0a958f4079767c44 (tag: 2.72.0)
Author: Patrick Griffis &lt;pgriffis@igalia.com&gt;
Date:   Sun Sep 13 15:53:40 2020 -0700

    2.72.0

On the other hand, WebKitGTK, both with jhbuild or Flatpak SDK, links using libsoup2.71.0, which corresponds to this commit:

$ git log -1 2.71.0
commit d7b8e46510e6a4d1dbcd38d3330e83c41086cc2f (tag: 2.71.0)
Author: Patrick Griffis &lt;pgriffis@igalia.com&gt;
Date:   Tue Jul 7 15:23:44 2020 -0700

    2.71.0

So I think this might be the reason why the tests are passing in the bots. To test the use case mentioned by Michael we would need to update the libsoup version in jhbuild modules and run the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721968</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-25 00:30:42 -0800</bug_when>
    <thetext>The libsoup version shouldn&apos;t matter. We are mixing new and old API that is present in the minimum libsoup version and used unconditionally. We are also handling SoupURI as a GObject. That should make all the tests crash in the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722056</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-25 07:04:46 -0800</bug_when>
    <thetext>std::bitset is also wrongly used. There are too many issues to fix here. I&apos;m going to revert the commits and I&apos;ll work on removing deprecated libsoup api as part of the preparation for libsoup3 migration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722094</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-25 09:09:20 -0800</bug_when>
    <thetext>Changes reverted in bug #220922. Closing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722097</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-25 09:17:45 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #0)
&gt; Using libsoup (built from latest commit on gnome-3-38 branch), I notice that
&gt; WebKitTestServer crashes whenever it is constructed, which prevents running
&gt; API tests that use it. The error is:
&gt; 
&gt; Failed to start HTTP server: Can’t create a TLS server without a TLS
&gt; certificate

Also this error has been around for years, so it&apos;s not something that would have changed between libsoup 2.70 and libsoup 2.72. That suggests something is seriously wrong with the API test bots; it&apos;s as if they were running the code from before this change, rather than the current code.

And yet the EWS in this bug *did* pick up my changes and turn red, so... I don&apos;t know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722135</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-01-25 10:54:03 -0800</bug_when>
    <thetext>The adventure continues in bug #220922. Incredibly, the revert has broken all the tests that use WebKitTestServer. Sigh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722926</commentid>
    <comment_count>13</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2021-01-27 06:00:25 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #11)
&gt; (In reply to Michael Catanzaro from comment #0)
&gt; &gt; Using libsoup (built from latest commit on gnome-3-38 branch), I notice that
&gt; &gt; WebKitTestServer crashes whenever it is constructed, which prevents running
&gt; &gt; API tests that use it. The error is:
&gt; &gt; 
&gt; &gt; Failed to start HTTP server: Can’t create a TLS server without a TLS
&gt; &gt; certificate
&gt; 
&gt; Also this error has been around for years, so it&apos;s not something that would
&gt; have changed between libsoup 2.70 and libsoup 2.72. That suggests something
&gt; is seriously wrong with the API test bots; it&apos;s as if they were running the
&gt; code from before this change, rather than the current code.
&gt; 
&gt; And yet the EWS in this bug *did* pick up my changes and turn red, so... I
&gt; don&apos;t know.

The API test runner has a bug where it doesn&apos;t report crashing test suites. https://bugs.webkit.org/show_bug.cgi?id=220863</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418046</attachid>
            <date>2021-01-21 09:14:33 -0800</date>
            <delta_ts>2021-01-22 05:56:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220366-20210121111432.patch</filename>
            <type>text/plain</type>
            <size>7963</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjkxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODQzMjk4N2Y3NGJkYWIyNWYzMDVhYzIxNjJiZDVlNzk2
MDBkMjNkZC4uODRlZGRlMDE1ZDI2ZWY5M2M1ZGFlZGVjYzRkNTJmNTI3NTRjYTQzMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDIxLTAxLTIxICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3Jn
PgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3MDA3NCk6IFtXUEVdW0dUS10gUHJvYmxlbXMgd2hl
biBjcmVhdGluZyBTb3VwU2VydmVyIGluIFdlYktpdFRlc3RTZXJ2ZXI6OldlYktpdFRlc3RTZXJ2
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDM2
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBz
b21lIHByb2JsZW1zIHdpdGggV2ViS2l0VGVzdFNlcnZlciBpbnRyb2R1Y2VkIGluIHIyNzAwNzQu
CisKKyAgICAgICAgQWxzbywgZm9yIGdvb2QgbWVhc3VyZSwgY29udmVydCBXZWJLaXRUZXN0U2Vy
dmVyIHRvIHVzZSBHVW5pcXVlUHRyIHdoZXJlIHBvc3NpYmxlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHA6CisgICAgICAgIChX
ZWJLaXRUZXN0U2VydmVyOjpXZWJLaXRUZXN0U2VydmVyKTogVGhpcyBjb25zdHJ1Y3RvciBzaG91
bGQgYmUgZXhwbGljaXQuIEZpeCBsb2dpYyBlcnJvcgorICAgICAgICB3aXRoIGludmVydGVkIHVz
ZSBvZiBTT1VQX1NFUlZFUl9MSVNURU5fSFRUUFMuIFJlcGxhY2UgaW1wcm9wZXIgdXNlIG9mIGdf
b2JqZWN0X3JlZi91bnJlZiBvbgorICAgICAgICBTb3VwVVJJcyB3aXRoIHNvdXBfdXJpX2NvcHkv
c291cF91cmlfZnJlZS4KKyAgICAgICAgKFdlYktpdFRlc3RTZXJ2ZXI6OnJ1bik6IFJlbW92ZSB1
bm5lY2Vzc2FyeSBjYWxscyB0byBzb3VwX3NlcnZlcl9ydW5fYXN5bmMoKSwgbm90aWNlZCBieSBD
YXJsb3MgR2FyY2lhLgorICAgICAgICAoV2ViS2l0VGVzdFNlcnZlcjo6YWRkV2ViU29ja2V0SGFu
ZGxlcik6CisgICAgICAgIChXZWJLaXRUZXN0U2VydmVyOjpyZW1vdmVXZWJTb2NrZXRIYW5kbGVy
KToKKyAgICAgICAgKFdlYktpdFRlc3RTZXJ2ZXI6OmdldFdlYlNvY2tldFVSSUZvclBhdGggY29u
c3QpOgorICAgICAgICAoV2ViS2l0VGVzdFNlcnZlcjo6Z2V0VVJJRm9yUGF0aCBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXRUZXN0U2VydmVyOjp+V2ViS2l0VGVzdFNlcnZlcik6IERlbGV0ZWQuCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5o
OgorICAgICAgICAoV2ViS2l0VGVzdFNlcnZlcjo6YmFzZVVSSSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXRUZXN0U2VydmVyOjpiYXNlV2ViU29ja2V0VVJJIGNvbnN0KToKKwogMjAyMS0wMS0yMSAg
QWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBU
aXRsZWJhciBzZXBhcmF0b3IgZG9lc24ndCBzaG93IHdoZW4gV0tXZWJWaWV3IGlzIHNjcm9sbGVk
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRU
ZXN0U2VydmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktp
dFRlc3RTZXJ2ZXIuY3BwCmluZGV4IDJhMDcyMGZjM2ZkZGJmZGQyNmRjOTA2YTVhMWZmMjI4MTYz
MzJkMjIuLmMyM2IxZjk4OWYyN2U4YTQzMzI5M2VjZDYxNGU3NjJmZjlkOTlmMzggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RT
ZXJ2ZXIuY3BwCkBAIC00NSwxNCArNDUsMTMgQEAgV2ViS2l0VGVzdFNlcnZlcjo6V2ViS2l0VGVz
dFNlcnZlcihTZXJ2ZXJPcHRpb25zQml0U2V0IG9wdGlvbnMpCiAgICAgICAgIFNPVVBfU0VSVkVS
X1NTTF9LRVlfRklMRSwgc3NsS2V5RmlsZS5nZXQoKSwgbnVsbHB0cikpOwogCiAgICAgR1VuaXF1
ZU91dFB0cjxHRXJyb3I+IGVycm9yOwotICAgIFNvdXBTZXJ2ZXJMaXN0ZW5PcHRpb25zIHNlcnZl
ck9wdGlvbnMgPSBzdGF0aWNfY2FzdDxTb3VwU2VydmVyTGlzdGVuT3B0aW9ucz4ob3B0aW9uc1tT
ZXJ2ZXJIVFRQU10gPyBTT1VQX1NFUlZFUl9MSVNURU5fSVBWNF9PTkxZIDogU09VUF9TRVJWRVJf
TElTVEVOX0lQVjRfT05MWSB8IFNPVVBfU0VSVkVSX0xJU1RFTl9IVFRQUyk7CiAgICAgYm9vbCBz
ZXJ2ZXJTdGFydGVkID0gZmFsc2U7CiAgICAgaWYgKG9wdGlvbnNbU2VydmVyTm9uTG9vcGJhY2td
KSB7CiAgICAgICAgIEdSZWZQdHI8U291cEFkZHJlc3M+IGFkZHJlc3MgPSBhZG9wdEdSZWYoc291
cF9hZGRyZXNzX25ldygibG9jYWxob3N0IiwgU09VUF9BRERSRVNTX0FOWV9QT1JUKSk7CiAgICAg
ICAgIHNvdXBfYWRkcmVzc19yZXNvbHZlX3N5bmMoYWRkcmVzcy5nZXQoKSwgbnVsbHB0cik7Ci0g
ICAgICAgIHNlcnZlclN0YXJ0ZWQgPSBzb3VwX3NlcnZlcl9saXN0ZW4obV9zb3VwU2VydmVyLmdl
dCgpLCBzb3VwX2FkZHJlc3NfZ2V0X2dzb2NrYWRkcihhZGRyZXNzLmdldCgpKSwgc2VydmVyT3B0
aW9ucywgJmVycm9yLm91dFB0cigpKTsKKyAgICAgICAgc2VydmVyU3RhcnRlZCA9IHNvdXBfc2Vy
dmVyX2xpc3RlbihtX3NvdXBTZXJ2ZXIuZ2V0KCksIHNvdXBfYWRkcmVzc19nZXRfZ3NvY2thZGRy
KGFkZHJlc3MuZ2V0KCkpLCBvcHRpb25zW1NlcnZlckhUVFBTXSA/IFNPVVBfU0VSVkVSX0xJU1RF
Tl9IVFRQUyA6IHN0YXRpY19jYXN0PFNvdXBTZXJ2ZXJMaXN0ZW5PcHRpb25zPigwKSwgJmVycm9y
Lm91dFB0cigpKTsKICAgICB9IGVsc2UKLSAgICAgICAgc2VydmVyU3RhcnRlZCA9IHNvdXBfc2Vy
dmVyX2xpc3Rlbl9sb2NhbChtX3NvdXBTZXJ2ZXIuZ2V0KCksIFNPVVBfQUREUkVTU19BTllfUE9S
VCwgc2VydmVyT3B0aW9ucywgJmVycm9yLm91dFB0cigpKTsKKyAgICAgICAgc2VydmVyU3RhcnRl
ZCA9IHNvdXBfc2VydmVyX2xpc3Rlbl9sb2NhbChtX3NvdXBTZXJ2ZXIuZ2V0KCksIFNPVVBfQURE
UkVTU19BTllfUE9SVCwgb3B0aW9uc1tTZXJ2ZXJIVFRQU10gPyBzdGF0aWNfY2FzdDxTb3VwU2Vy
dmVyTGlzdGVuT3B0aW9ucz4oU09VUF9TRVJWRVJfTElTVEVOX0lQVjRfT05MWSB8IFNPVVBfU0VS
VkVSX0xJU1RFTl9IVFRQUykgOiBTT1VQX1NFUlZFUl9MSVNURU5fSVBWNF9PTkxZLCAmZXJyb3Iu
b3V0UHRyKCkpOwogICAgIGlmICghc2VydmVyU3RhcnRlZCkgewogICAgICAgICBXVEZMb2dBbHdh
eXMoIkZhaWxlZCB0byBzdGFydCBIVFRQIHNlcnZlcjogJXMiLCBlcnJvci0+bWVzc2FnZSk7CiAg
ICAgICAgIENSQVNIKCk7CkBAIC02MCwzMyArNTksMjMgQEAgV2ViS2l0VGVzdFNlcnZlcjo6V2Vi
S2l0VGVzdFNlcnZlcihTZXJ2ZXJPcHRpb25zQml0U2V0IG9wdGlvbnMpCiAKICAgICBHU0xpc3Qq
IHVyaXMgPSBzb3VwX3NlcnZlcl9nZXRfdXJpcyhtX3NvdXBTZXJ2ZXIuZ2V0KCkpOwogICAgIEFT
U0VSVCh1cmlzKTsKLSAgICBtX2Jhc2VVUkkgPSBzdGF0aWNfY2FzdDxTb3VwVVJJKj4oZ19vYmpl
Y3RfcmVmKHVyaXMtPmRhdGEpKTsKLSAgICBnX3NsaXN0X2ZyZWVfZnVsbCh1cmlzLCBnX29iamVj
dF91bnJlZik7Ci19Ci0KLVdlYktpdFRlc3RTZXJ2ZXI6On5XZWJLaXRUZXN0U2VydmVyKCkKLXsK
LSAgICBzb3VwX3VyaV9mcmVlKG1fYmFzZVVSSSk7Ci0gICAgaWYgKG1fYmFzZVdlYlNvY2tldFVS
SSkKLSAgICAgICAgc291cF91cmlfZnJlZShtX2Jhc2VXZWJTb2NrZXRVUkkpOworICAgIG1fYmFz
ZVVSSS5yZXNldChzb3VwX3VyaV9jb3B5KHN0YXRpY19jYXN0PFNvdXBVUkkqPih1cmlzLT5kYXRh
KSkpOworICAgIGdfc2xpc3RfZnJlZV9mdWxsKHVyaXMsIHJlaW50ZXJwcmV0X2Nhc3Q8R0Rlc3Ry
b3lOb3RpZnk+KHNvdXBfdXJpX2ZyZWUpKTsKIH0KIAogdm9pZCBXZWJLaXRUZXN0U2VydmVyOjpy
dW4oU291cFNlcnZlckNhbGxiYWNrIHNlcnZlckNhbGxiYWNrKQogewogICAgIGlmIChtX3F1ZXVl
KSB7CiAgICAgICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBzZXJ2ZXJDYWxsYmFja10gewot
ICAgICAgICAgICAgc291cF9zZXJ2ZXJfcnVuX2FzeW5jKG1fc291cFNlcnZlci5nZXQoKSk7CiAg
ICAgICAgICAgICBzb3VwX3NlcnZlcl9hZGRfaGFuZGxlcihtX3NvdXBTZXJ2ZXIuZ2V0KCksIG51
bGxwdHIsIHNlcnZlckNhbGxiYWNrLCBudWxscHRyLCBudWxscHRyKTsKICAgICAgICAgfSk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgc291cF9zZXJ2ZXJfcnVuX2FzeW5jKG1fc291cFNlcnZlci5n
ZXQoKSk7CisgICAgfSBlbHNlCiAgICAgICAgIHNvdXBfc2VydmVyX2FkZF9oYW5kbGVyKG1fc291
cFNlcnZlci5nZXQoKSwgbnVsbHB0ciwgc2VydmVyQ2FsbGJhY2ssIG51bGxwdHIsIG51bGxwdHIp
OwotICAgIH0KIH0KIAogdm9pZCBXZWJLaXRUZXN0U2VydmVyOjphZGRXZWJTb2NrZXRIYW5kbGVy
KFNvdXBTZXJ2ZXJXZWJzb2NrZXRDYWxsYmFjayBjYWxsYmFjaywgZ3BvaW50ZXIgdXNlckRhdGEp
CiB7Ci0gICAgbV9iYXNlV2ViU29ja2V0VVJJID0gc291cF91cmlfbmV3X3dpdGhfYmFzZShtX2Jh
c2VVUkksICIvd2Vic29ja2V0LyIpOworICAgIG1fYmFzZVdlYlNvY2tldFVSSS5yZXNldChzb3Vw
X3VyaV9uZXdfd2l0aF9iYXNlKG1fYmFzZVVSSS5nZXQoKSwgIi93ZWJzb2NrZXQvIikpOwogICAg
IG1fYmFzZVdlYlNvY2tldFVSSS0+c2NoZW1lID0gbV9iYXNlV2ViU29ja2V0VVJJLT5zY2hlbWUg
PT0gU09VUF9VUklfU0NIRU1FX0hUVFAgPyBTT1VQX1VSSV9TQ0hFTUVfV1MgOiBTT1VQX1VSSV9T
Q0hFTUVfV1NTOwogCiAgICAgaWYgKG1fcXVldWUpIHsKQEAgLTk5LDcgKzg4LDYgQEAgdm9pZCBX
ZWJLaXRUZXN0U2VydmVyOjphZGRXZWJTb2NrZXRIYW5kbGVyKFNvdXBTZXJ2ZXJXZWJzb2NrZXRD
YWxsYmFjayBjYWxsYmFjaywKIAogdm9pZCBXZWJLaXRUZXN0U2VydmVyOjpyZW1vdmVXZWJTb2Nr
ZXRIYW5kbGVyKCkKIHsKLSAgICBzb3VwX3VyaV9mcmVlKG1fYmFzZVdlYlNvY2tldFVSSSk7CiAg
ICAgbV9iYXNlV2ViU29ja2V0VVJJID0gbnVsbHB0cjsKIAogICAgIGlmIChtX3F1ZXVlKSB7CkBA
IC0xMTIsMTggKzEwMCwxNiBAQCB2b2lkIFdlYktpdFRlc3RTZXJ2ZXI6OnJlbW92ZVdlYlNvY2tl
dEhhbmRsZXIoKQogCiBDU3RyaW5nIFdlYktpdFRlc3RTZXJ2ZXI6OmdldFdlYlNvY2tldFVSSUZv
clBhdGgoY29uc3QgY2hhciogcGF0aCkgY29uc3QKIHsKLSAgICBnX2Fzc2VydF9ub25udWxsKG1f
YmFzZVdlYlNvY2tldFVSSSk7CisgICAgZ19hc3NlcnRfbm9ubnVsbChtX2Jhc2VXZWJTb2NrZXRV
UkkuZ2V0KCkpOwogICAgIGdfYXNzZXJ0X3RydWUocGF0aCAmJiAqcGF0aCA9PSAnLycpOwotICAg
IFNvdXBVUkkqIHVyaSA9IHNvdXBfdXJpX25ld193aXRoX2Jhc2UobV9iYXNlV2ViU29ja2V0VVJJ
LCBwYXRoICsgMSk7IC8vIElnbm9yZSB0aGUgbGVhZGluZyBzbGFzaC4KLSAgICBHVW5pcXVlUHRy
PGdjaGFyPiB1cmlTdHJpbmcoc291cF91cmlfdG9fc3RyaW5nKHVyaSwgRkFMU0UpKTsKLSAgICBz
b3VwX3VyaV9mcmVlKHVyaSk7CisgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1cmkoc291cF91cmlf
bmV3X3dpdGhfYmFzZShtX2Jhc2VXZWJTb2NrZXRVUkkuZ2V0KCksIHBhdGggKyAxKSk7IC8vIEln
bm9yZSB0aGUgbGVhZGluZyBzbGFzaC4KKyAgICBHVW5pcXVlUHRyPGdjaGFyPiB1cmlTdHJpbmco
c291cF91cmlfdG9fc3RyaW5nKHVyaS5nZXQoKSwgRkFMU0UpKTsKICAgICByZXR1cm4gdXJpU3Ry
aW5nLmdldCgpOwogfQogCiBDU3RyaW5nIFdlYktpdFRlc3RTZXJ2ZXI6OmdldFVSSUZvclBhdGgo
Y29uc3QgY2hhciogcGF0aCkgY29uc3QKIHsKLSAgICBTb3VwVVJJKiB1cmkgPSBzb3VwX3VyaV9u
ZXdfd2l0aF9iYXNlKG1fYmFzZVVSSSwgcGF0aCk7Ci0gICAgR1VuaXF1ZVB0cjxnY2hhcj4gdXJp
U3RyaW5nKHNvdXBfdXJpX3RvX3N0cmluZyh1cmksIEZBTFNFKSk7Ci0gICAgc291cF91cmlfZnJl
ZSh1cmkpOworICAgIEdVbmlxdWVQdHI8U291cFVSST4gdXJpKHNvdXBfdXJpX25ld193aXRoX2Jh
c2UobV9iYXNlVVJJLmdldCgpLCBwYXRoKSk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gdXJpU3Ry
aW5nKHNvdXBfdXJpX3RvX3N0cmluZyh1cmkuZ2V0KCksIEZBTFNFKSk7CiAgICAgcmV0dXJuIHVy
aVN0cmluZy5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9X
ZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9X
ZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuaAppbmRleCBkYTI1ZWFkYTgzNmE0ZmQ0ZjRmMTgy
ZjE4MTBlZmU5ZDAyZTBhMTQzLi5kODgxZjI4MjQzMGNmODU1MTgwYTEyMjgxYWMxMDRhM2YxNmQ2
MzJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJL
aXRUZXN0U2VydmVyLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIv
V2ViS2l0VGVzdFNlcnZlci5oCkBAIC0xOSw2ICsxOSw3IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRyU291cC5oPgogI2luY2x1ZGUgPGJpdHNldD4KICNp
bmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CkBAIC0z
NiwyNSArMzcsMjUgQEAgcHVibGljOgogICAgIH07CiAgICAgdXNpbmcgU2VydmVyT3B0aW9uc0Jp
dFNldCA9IHN0ZDo6Yml0c2V0PDM+OwogCi0gICAgV2ViS2l0VGVzdFNlcnZlcihTZXJ2ZXJPcHRp
b25zQml0U2V0ID0gMCk7Ci0gICAgdmlydHVhbCB+V2ViS2l0VGVzdFNlcnZlcigpOworICAgIGV4
cGxpY2l0IFdlYktpdFRlc3RTZXJ2ZXIoU2VydmVyT3B0aW9uc0JpdFNldCA9IDApOworICAgIHZp
cnR1YWwgfldlYktpdFRlc3RTZXJ2ZXIoKSA9IGRlZmF1bHQ7CiAKLSAgICBTb3VwVVJJKiBiYXNl
VVJJKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlVVJJOyB9CisgICAgU291cFVSSSogYmFzZVVSSSgp
IGNvbnN0IHsgcmV0dXJuIG1fYmFzZVVSSS5nZXQoKTsgfQogICAgIENTdHJpbmcgZ2V0VVJJRm9y
UGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdDsKICAgICB2b2lkIHJ1bihTb3VwU2VydmVyQ2Fs
bGJhY2spOwogCiAjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDUwLCAwKQogICAgIHZvaWQgYWRk
V2ViU29ja2V0SGFuZGxlcihTb3VwU2VydmVyV2Vic29ja2V0Q2FsbGJhY2ssIGdwb2ludGVyIHVz
ZXJEYXRhKTsKICAgICB2b2lkIHJlbW92ZVdlYlNvY2tldEhhbmRsZXIoKTsKLSAgICBTb3VwVVJJ
KiBiYXNlV2ViU29ja2V0VVJJKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlV2ViU29ja2V0VVJJOyB9
CisgICAgU291cFVSSSogYmFzZVdlYlNvY2tldFVSSSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVdl
YlNvY2tldFVSSS5nZXQoKTsgfQogICAgIENTdHJpbmcgZ2V0V2ViU29ja2V0VVJJRm9yUGF0aChj
b25zdCBjaGFyKiBwYXRoKSBjb25zdDsKICNlbmRpZgogCiBwcml2YXRlOgogICAgIEdSZWZQdHI8
U291cFNlcnZlcj4gbV9zb3VwU2VydmVyOwotICAgIFNvdXBVUkkqIG1fYmFzZVVSSSB7IG51bGxw
dHIgfTsKKyAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IG1fYmFzZVVSSTsKICNpZiBTT1VQX0NIRUNL
X1ZFUlNJT04oMiwgNTAsIDApCi0gICAgU291cFVSSSogbV9iYXNlV2ViU29ja2V0VVJJIHsgbnVs
bHB0ciB9OworICAgIEdVbmlxdWVQdHI8U291cFVSST4gbV9iYXNlV2ViU29ja2V0VVJJOwogI2Vu
ZGlmCiAgICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKIH07Cg==
</data>
<flag name="review"
          id="435884"
          type_id="1"
          status="-"
          setter="mcatanzaro"
    />
    <flag name="commit-queue"
          id="435923"
          type_id="3"
          status="-"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>