<?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>197917</bug_id>
          
          <creation_ts>2019-05-15 10:33:55 -0700</creation_ts>
          <short_desc>REGRESSION (r245043) [Mac WK2 Debug] ASSERTION FAILED: m_services.isEmpty() &amp;&amp; transports.size() &lt;= maxTransportNumber seen with two http/wpt/webauthn/public-key-credential-* tests</short_desc>
          <delta_ts>2019-06-12 12:06:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=196377</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=194780</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Shawn Roberts">sroberts</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>jlewis3</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1536482</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Roberts">sroberts</who>
    <bug_when>2019-05-15 10:33:55 -0700</bug_when>
    <thetext>The following layout tests are flaky on Mac WK2 Debug

http/wpt/webauthn/public-key-credential-create-success-hid.https.html
http/wpt/webauthn/public-key-credential-get-success-hid.https.html

Probable cause:

After changes in https://trac.webkit.org/changeset/245043/webkit the above layout tests went from flaky failures in Mac WK2 Debug runs to crashes. 

Tests were marked as flaky in previous bugs 196377, 194780 for flaky failures in Mac WK2 Release and Debug builds. Now tests will crash instead of fail on Debug. 

Reproduced with:

run-webkit-tests http/wpt/webauthn/public-key-credential-get-success-hid.https.html --iter 100 -f --debug --exit-after-n-crashes=1

Will crash with builds including 245043. Previous builds will only flakily fail with 1500 iterations. 

Crash is the same for both tests

Flakiness Dashboard:

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=http%2Fwpt%2Fwebauthn%2Fpublic-key-credential-create-success-hid.https.html%20http%2Fwpt%2Fwebauthn%2Fpublic-key-credential-get-success-hid.https.html

Crash Log: https://build.webkit.org/results/Apple%20Mojave%20Debug%20WK2%20(Tests)/r245275%20(2606)/http/wpt/webauthn/public-key-credential-create-success-hid.https-crash-log.txt

0   com.apple.JavaScriptCore      	0x0000000104e80ae0 WTFCrash + 16 (Assertions.cpp:305)
1   com.apple.WebKit              	0x00000001116d4f0b WTFCrashWithInfo(int, char const*, char const*, int) + 27
2   com.apple.WebKit              	0x000000011255822b WebKit::AuthenticatorManager::startDiscovery(WTF::HashSet&lt;WebCore::AuthenticatorTransport, WTF::IntHash&lt;WebCore::AuthenticatorTransport&gt;, WTF::StrongEnumHashTraits&lt;WebCore::AuthenticatorTransport&gt; &gt; const&amp;) + 171 (AuthenticatorManager.cpp:224)
3   com.apple.WebKit              	0x0000000112557a99 WebKit::AuthenticatorManager::makeCredential(WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialCreationOptions const&amp;, WTF::CompletionHandler&lt;void (WTF::Variant&lt;WebCore::PublicKeyCredentialData, WebCore::ExceptionData&gt;&amp;&amp;)&gt;&amp;&amp;) + 649 (AuthenticatorManager.cpp:143)
4   com.apple.WebKit              	0x000000011255a38e WebKit::WebAuthenticatorCoordinatorProxy::makeCredential(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialCreationOptions const&amp;) + 142 (WebAuthenticatorCoordinatorProxy.cpp:69)
5   com.apple.WebKit              	0x000000011296e98f void IPC::callMemberFunctionImpl&lt;WebKit::WebAuthenticatorCoordinatorProxy, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialCreationOptions const&amp;), std::__1::tuple&lt;unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::PublicKeyCredentialCreationOptions&gt;, 0ul, 1ul, 2ul&gt;(WebKit::WebAuthenticatorCoordinatorProxy*, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialCreationOptions const&amp;), std::__1::tuple&lt;unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::PublicKeyCredentialCreationOptions&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul&gt;) + 207 (HandleMessage.h:42)
6   com.apple.WebKit              	0x00000001129669c0 void IPC::callMemberFunction&lt;WebKit::WebAuthenticatorCoordinatorProxy, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialCreationOptions const&amp;), std::__1::tuple&lt;unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::PublicKeyCredentialCreationOptions&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul&gt; &gt;(std::__1::tuple&lt;unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::PublicKeyCredentialCreationOptions&gt;&amp;&amp;, WebKit::WebAuthenticatorCoordinatorProxy*, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialCreationOptions const&amp;)) + 112 (HandleMessage.h:48)
7   com.apple.WebKit              	0x0000000112966580 void IPC::handleMessage&lt;Messages::WebAuthenticatorCoordinatorProxy::MakeCredential, WebKit::WebAuthenticatorCoordinatorProxy, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialCreationOptions const&amp;)&gt;(IPC::Decoder&amp;, WebKit::WebAuthenticatorCoordinatorProxy*, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialCreationOptions const&amp;)) + 336 (HandleMessage.h:121)
8   com.apple.WebKit              	0x00000001129662e5 WebKit::WebAuthenticatorCoordinatorProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) + 133 (WebAuthenticatorCoordinatorProxyMessageReceiver.cpp:46)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536483</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-15 10:34:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/50815987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536488</commentid>
    <comment_count>2</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-05-15 10:39:02 -0700</bug_when>
    <thetext>ASSERTION FAILED: m_services.isEmpty() &amp;&amp; transports.size() &lt;= maxTransportNumber
/Volumes/Data/slave/highsierra-debug/build/Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp(224) : void WebKit::AuthenticatorManager::startDiscovery(const WebKit::AuthenticatorManager::TransportSet &amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536552</commentid>
    <comment_count>3</comment_count>
    <who name="Shawn Roberts">sroberts</who>
    <bug_when>2019-05-15 12:57:43 -0700</bug_when>
    <thetext>Skipped tests on Debug in https://trac.webkit.org/changeset/245340/webkit

Expectations for Release WK2 are still set to Pass / Fail</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540014</commentid>
    <comment_count>4</comment_count>
      <attachid>370865</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-05-29 10:51:59 -0700</bug_when>
    <thetext>Created attachment 370865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540016</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-05-29 10:53:11 -0700</bug_when>
    <thetext>The changes in Bug 198308 resolved the underlying issue that triggered this failure. Local testing confirms debug runs do not assert on these tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540037</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-05-29 11:50:37 -0700</bug_when>
    <thetext>You can also hit this in GetAssertion:

    #0 0x107327b2d in WTFCrash Assertions.cpp:301
    #1 0x10cd9c01a in WTFCrashWithInfo(int, char const*, char const*, int) Assertions.h:568
    #2 0x10dc559f8 in WebKit::AuthenticatorManager::getAssertion(WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialRequestOptions const&amp;, WTF::CompletionHandler&lt;void (WTF::Variant&lt;WebCore::PublicKeyCredentialData, WebCore::ExceptionData&gt;&amp;&amp;)&gt;&amp;&amp;) AuthenticatorManager.cpp:162
    #3 0x10dc5756d in WebKit::WebAuthenticatorCoordinatorProxy::getAssertion(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialRequestOptions const&amp;) WebAuthenticatorCoordinatorProxy.cpp:85
    #4 0x10e01d17e in void IPC::callMemberFunctionImpl&lt;WebKit::WebAuthenticatorCoordinatorProxy, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialRequestOptions const&amp;), std::__1::tuple&lt;unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::PublicKeyCredentialRequestOptions&gt;, 0ul, 1ul, 2ul&gt;(WebKit::WebAuthenticatorCoordinatorProxy*, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialRequestOptions const&amp;), std::__1::tuple&lt;unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::PublicKeyCredentialRequestOptions&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul&gt;) HandleMessage.h:41
    #5 0x10e0198cf in void IPC::callMemberFunction&lt;WebKit::WebAuthenticatorCoordinatorProxy, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialRequestOptions const&amp;), std::__1::tuple&lt;unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::PublicKeyCredentialRequestOptions&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul&gt; &gt;(std::__1::tuple&lt;unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::PublicKeyCredentialRequestOptions&gt;&amp;&amp;, WebKit::WebAuthenticatorCoordinatorProxy*, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialRequestOptions const&amp;)) HandleMessage.h:47
    #6 0x10e011277 in void IPC::handleMessage&lt;Messages::WebAuthenticatorCoordinatorProxy::GetAssertion, WebKit::WebAuthenticatorCoordinatorProxy, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialRequestOptions const&amp;)&gt;(IPC::Decoder&amp;, WebKit::WebAuthenticatorCoordinatorProxy*, void (WebKit::WebAuthenticatorCoordinatorProxy::*)(unsigned long long, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, WebCore::PublicKeyCredentialRequestOptions const&amp;)) HandleMessage.h:120
    #7 0x10e010eac in WebKit::WebAuthenticatorCoordinatorProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) WebAuthenticatorCoordinatorProxyMessageReceiver.cpp:49
    #8 0x10ce87d48 in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;) MessageReceiverMap.cpp:123</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540049</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-05-29 12:08:58 -0700</bug_when>
    <thetext>Actually, I can still hit a debug assertion if I run the tests enough times (1000x or so), so perhaps this isn&apos;t ready yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540067</commentid>
    <comment_count>8</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-29 13:07:42 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #7)
&gt; Actually, I can still hit a debug assertion if I run the tests enough times
&gt; (1000x or so), so perhaps this isn&apos;t ready yet.

I think this is a different issue. This is a race condition that when a new request comes in right between the previous one finishes and the clearStateAsync is queue after. Therefore, when the new request starts discovery, it will still see previous request&apos;s state.

You can assign this back to me, and I will investigate a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540082</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-05-29 13:26:26 -0700</bug_when>
    <thetext>*** Bug 194780 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540086</commentid>
    <comment_count>10</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-05-29 13:28:14 -0700</bug_when>
    <thetext>*** Bug 196377 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543950</commentid>
    <comment_count>11</comment_count>
      <attachid>371918</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-06-11 20:57:04 -0700</bug_when>
    <thetext>Created attachment 371918
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544140</commentid>
    <comment_count>12</comment_count>
      <attachid>371918</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-06-12 09:32:52 -0700</bug_when>
    <thetext>Comment on attachment 371918
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=371918&amp;action=review

&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:178
&gt; +        return;

I&apos;m not sure I follow this new behavior. Does calling the completion handler (e.g., lines 132 and 152 above) cause the completion handler to be cleared? I guess it must.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544171</commentid>
    <comment_count>13</comment_count>
      <attachid>371918</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-06-12 11:23:40 -0700</bug_when>
    <thetext>Comment on attachment 371918
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=371918&amp;action=review

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:178
&gt;&gt; +        return;
&gt; 
&gt; I&apos;m not sure I follow this new behavior. Does calling the completion handler (e.g., lines 132 and 152 above) cause the completion handler to be cleared? I guess it must.

Yes, it does. And m_pendingCompletionHandler should be called before every clearState(). Therefore, if clearState() is called with m_pendingCompletionHandler, that means clearState() is called from clearStateAsync() and there is currently an active request. Therefore, the method should just return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544174</commentid>
    <comment_count>14</comment_count>
      <attachid>371918</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-06-12 11:28:55 -0700</bug_when>
    <thetext>Comment on attachment 371918
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=371918&amp;action=review

&gt;&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:178
&gt;&gt;&gt; +        return;
&gt;&gt; 
&gt;&gt; I&apos;m not sure I follow this new behavior. Does calling the completion handler (e.g., lines 132 and 152 above) cause the completion handler to be cleared? I guess it must.
&gt; 
&gt; Yes, it does. And m_pendingCompletionHandler should be called before every clearState(). Therefore, if clearState() is called with m_pendingCompletionHandler, that means clearState() is called from clearStateAsync() and there is currently an active request. Therefore, the method should just return.

Okay -- makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544175</commentid>
    <comment_count>15</comment_count>
      <attachid>371918</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-06-12 11:35:15 -0700</bug_when>
    <thetext>Comment on attachment 371918
Patch

Thanks Brent for r+ this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544189</commentid>
    <comment_count>16</comment_count>
      <attachid>371918</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-12 12:06:22 -0700</bug_when>
    <thetext>Comment on attachment 371918
Patch

Clearing flags on attachment: 371918

Committed r246369: &lt;https://trac.webkit.org/changeset/246369&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544190</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-12 12:06:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370865</attachid>
            <date>2019-05-29 10:51:59 -0700</date>
            <delta_ts>2019-06-11 20:57:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197917-20190529105159.patch</filename>
            <type>text/plain</type>
            <size>1866</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODE3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjI1Y2JiY2E0ODRiODBlZGY5MjI0
ZWU0Y2ZjMGMxNGVkODJjNDlkZC4uMDg4ZDRjZmM0ZjMyZDk1MWMxNzRjZDczOTdmYWRjNDVkZmY2
NGM4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA1LTI5ICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFVuc2tpcCBXZWJBdXRoTiB0ZXN0cyBjb3Jy
ZWN0ZWQgYnkgcjI0NTg1Mi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NzkxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTA4MTU5ODc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1ZyBmaXgg
aW4gQnVnIDE5ODMwOCBoYXMgcmVzb2x2ZWQgdGhlIGFzc2VydGlvbiBmYWlsdXJlLCBzbyB3ZSBj
YW4gdW5za2lwIHRoZXNlIHRlc3RzOgorICAgICAgICAgICAgaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy5odG1sCisgICAgICAg
ICAgICBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3Mt
aGlkLmh0dHBzLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAxOS0wNS0yNyAgVGFrYXNoaSBLb21vcmkgIDxUYWthc2hpLktvbW9yaUBzb255
LmNvbT4KIAogICAgICAgICBbQ1VSTF0gRml4IGNyYXNoaW5nIFNvY2tldFN0cmVhbUhhbmRsZS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1
ZTNjN2Y0ODcyMjk4NzMzNzM3NmRkYmJhZmI2NGQyNDExYTg1MGM2Li4xMDJjYWNkODFkOTBjYTc4
NmQyMTk5NTFiNjY5MTE5MDZmMTk3M2Q0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC05MjAsOSArOTIwLDYgQEAgd2Via2l0Lm9yZy9iLzE5
NDkxNiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQuaHRtbCBbIFBh
c3MgRmFpbHUKIAogd2Via2l0Lm9yZy9iLzE5NjM3NiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxz
dG9yYWdlL3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWwgWyBQYXNzIEZhaWx1
cmUgXQogCi13ZWJraXQub3JnL2IvMTk3OTE3IFsgRGVidWcgXSBodHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwgWyBTa2lw
IF0KLXdlYmtpdC5vcmcvYi8xOTc5MTcgWyBEZWJ1ZyBdIGh0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbCBbIFNraXAgXQotCiB3
ZWJraXQub3JnL2IvMTk0NzgwIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvMTk2Mzc3IGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQt
c3VjY2Vzcy1oaWQuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371918</attachid>
            <date>2019-06-11 20:57:04 -0700</date>
            <delta_ts>2019-06-12 12:06:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197917-20190611205703.patch</filename>
            <type>text/plain</type>
            <size>4928</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhhYTcyMjQ4Y2I2OWJlMGYw
MmM3YzQ5YmYzOTkxNDVhMzhkODYyMmEuLjc4ZTI2NjZiN2QyMmQxNTQxNGUwNTFjNmViNDMxMjdl
OTQ3MGVlNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDYtMTEgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjQ1MDQz
KSBbTWFjIFdLMiBEZWJ1Z10gQVNTRVJUSU9OIEZBSUxFRDogbV9zZXJ2aWNlcy5pc0VtcHR5KCkg
JiYgdHJhbnNwb3J0cy5zaXplKCkgPD0gbWF4VHJhbnNwb3J0TnVtYmVyIHNlZW4gd2l0aCB0d28g
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLSogdGVzdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzkxNworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTE1MjQ5NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHJhY2UgY29uZGl0aW9uIHRoYXQgd2hlbiBhIG5l
dyByZXF1ZXN0IGNvbWVzIGluIHRoZSBtaWRkbGUgYmV0d2VlbiB0aGUgcHJldmlvdXMgb25lIGZp
bmlzaGVzIGFuZCB0aGUgY2xlYXJTdGF0ZUFzeW5jIGlzIHF1ZXVlZCBpbiB0aGUgbWFpbiB0aHJl
YWQuCisgICAgICAgIFRoZXJlZm9yZSwgd2hlbiB0aGUgbmV3IHJlcXVlc3Qgc3RhcnRzIGRpc2Nv
dmVyeSwgaXQgd2lsbCBzdGlsbCBzZWUgcHJldmlvdXMgcmVxdWVzdCdzIHN0YXRlLgorCisgICAg
ICAgIFRvIGZpeCB0aGlzIGlzc3VlLCBjbGVhclN0YXRlKCkgd2lsbCBiZSBjYWxsZWQgdW5jb25k
aXRpb25hbGx5IGZvciBldmVyeSByZXF1ZXN0LiBBbmQgYSBndWFyZCBpcyBhZGRlZCB0byBjbGVh
clN0YXRlKCkgdG8gcHJldmVudCBkb3VibGUgY2xlYXJhbmNlLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAg
KFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6OmdldEFzc2VydGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpjbGVhclN0YXRlKToKKwogMjAxOS0wNi0xMSAg
UGF0cmljayBHcmlmZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBG
aXggYTExeSBzdXBwb3J0IGluIGJ1YmJsZXdyYXAgc2FuZGJveApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGlj
YXRvck1hbmFnZXIuY3BwCmluZGV4IDkxM2JjOGE5NTcyMTQ5ZDZmMTYzYTdmYTRhZTc4MTNjZmUw
MzJjMjYuLjJjMDg0NDU3ODU3ZDQxMDljODQzMTE1OTE4MzBlMzRiMmEyNWI2ZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAgLTEzMCw5ICsxMzAsOSBAQCB2b2lkIEF1
dGhlbnRpY2F0b3JNYW5hZ2VyOjptYWtlQ3JlZGVudGlhbChjb25zdCBWZWN0b3I8dWludDhfdD4m
IGhhc2gsIGNvbnN0IFB1YgogCiAgICAgaWYgKG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKSB7
CiAgICAgICAgIG1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbkRhdGEgeyBOb3RB
bGxvd2VkRXJyb3IsICJUaGlzIHJlcXVlc3QgaGFzIGJlZW4gY2FuY2VsbGVkIGJ5IGEgbmV3IHJl
cXVlc3QuIl9zIH0pOwotICAgICAgICBjbGVhclN0YXRlKCk7CiAgICAgICAgIG1fcmVxdWVzdFRp
bWVPdXRUaW1lci5zdG9wKCk7CiAgICAgfQorICAgIGNsZWFyU3RhdGUoKTsKIAogICAgIC8vIDEu
IFNhdmUgcmVxdWVzdCBmb3IgYXN5bmMgb3BlcmF0aW9ucy4KICAgICBtX3BlbmRpbmdSZXF1ZXN0
RGF0YSA9IHsgaGFzaCwgdHJ1ZSwgb3B0aW9ucywgeyB9IH07CkBAIC0xNDksOSArMTQ5LDkgQEAg
dm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgaGFzaCwgY29uc3QgUHVibGkKIAogICAgIGlmIChtX3BlbmRpbmdDb21wbGV0aW9uSGFu
ZGxlcikgewogICAgICAgICBtX3BlbmRpbmdDb21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb25EYXRh
IHsgTm90QWxsb3dlZEVycm9yLCAiVGhpcyByZXF1ZXN0IGhhcyBiZWVuIGNhbmNlbGxlZCBieSBh
IG5ldyByZXF1ZXN0LiJfcyB9KTsKLSAgICAgICAgY2xlYXJTdGF0ZSgpOwogICAgICAgICBtX3Jl
cXVlc3RUaW1lT3V0VGltZXIuc3RvcCgpOwogICAgIH0KKyAgICBjbGVhclN0YXRlKCk7CiAKICAg
ICAvLyAxLiBTYXZlIHJlcXVlc3QgZm9yIGFzeW5jIG9wZXJhdGlvbnMuCiAgICAgbV9wZW5kaW5n
UmVxdWVzdERhdGEgPSB7IGhhc2gsIGZhbHNlLCB7IH0sIG9wdGlvbnMgfTsKQEAgLTE3NCw4ICsx
NzQsOSBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpjbGVhclN0YXRlQXN5bmMoKQogCiB2
b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpjbGVhclN0YXRlKCkKIHsKKyAgICBpZiAobV9wZW5k
aW5nQ29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgIHJldHVybjsKICAgICBtX3BlbmRpbmdSZXF1
ZXN0RGF0YSA9IHsgfTsKLSAgICBBU1NFUlQoIW1fcGVuZGluZ0NvbXBsZXRpb25IYW5kbGVyKTsK
ICAgICBtX3NlcnZpY2VzLmNsZWFyKCk7CiAgICAgbV9hdXRoZW50aWNhdG9ycy5jbGVhcigpOwog
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDJiZGI0MDY2MGE1YjkwZWVmNzQ2YTc1MmNmMzVhNmYyOTFlZGJjMDQuLmFhNjI4
YjNiZWJkYjMxNzJhNzU4ZTVhMmRmZmQyYmYwZDZiNzIwM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxOS0wNi0xMSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFJFR1JFU1NJT04gKHIyNDUwNDMpIFtNYWMgV0syIERlYnVnXSBBU1NFUlRJT04gRkFJTEVE
OiBtX3NlcnZpY2VzLmlzRW1wdHkoKSAmJiB0cmFuc3BvcnRzLnNpemUoKSA8PSBtYXhUcmFuc3Bv
cnROdW1iZXIgc2VlbiB3aXRoIHR3byBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtKiB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk3OTE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTUyNDk1OD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxOS0wNi0xMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0
NjMyMC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAxNWJlMDg0NjlhMDUxNzYwODFkMWY5YTgxY2FhNmVjODZmNGMzNjZkLi4xYmE0YWYxN2U4
Zjk0ZTVjZmE4M2JjZDE0NzZkNGZmMDBiZTIxZWQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC05MjAsMTIgKzkyMCw2IEBAIHdlYmtpdC5v
cmcvYi8xOTQ5MTYgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50Lmh0
bWwgWyBQYXNzIEZhaWx1CiAKIHdlYmtpdC5vcmcvYi8xOTYzNzYgc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLWFmZmVjdHMtc3RvcmFnZS5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE5NzkxNyBbIERlYnVnIF0gaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWhpZC5odHRwcy5odG1s
IFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTk3OTE3IFsgRGVidWcgXSBodHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwgWyBTa2lw
IF0KLQotd2Via2l0Lm9yZy9iLzE5NDc4MCBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQot
d2Via2l0Lm9yZy9iLzE5NjM3NyBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQu
b3JnL2IvMTk2NDAwIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRTZXR0aW5n
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE5NjQwMyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1z
dG9wLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>