<?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>226999</bug_id>
          
          <creation_ts>2021-06-14 16:33:50 -0700</creation_ts>
          <short_desc>[git-webkit] Handle auth failures</short_desc>
          <delta_ts>2021-06-15 12:05:40 -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>
          
          
          <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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1769605</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-14 16:33:50 -0700</bug_when>
    <thetext>When we get a 400 error but we didn&apos;t prompt the user, we should prompt the user for credentials before giving up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769606</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-14 16:34:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/79313850&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769614</commentid>
    <comment_count>2</comment_count>
      <attachid>431385</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-14 16:42:14 -0700</bug_when>
    <thetext>Created attachment 431385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769621</commentid>
    <comment_count>3</comment_count>
      <attachid>431385</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2021-06-14 16:50:13 -0700</bug_when>
    <thetext>Comment on attachment 431385
Patch

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

&gt; Tools/ChangeLog:10
&gt; +        (credentials): We should attempt to retrieve credentials, even if they

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769623</commentid>
    <comment_count>4</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2021-06-14 16:51:36 -0700</bug_when>
    <thetext>Does getting credentials prompt?  Because if so we should figure out a better way to know their required than always fetching them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769627</commentid>
    <comment_count>5</comment_count>
      <attachid>431385</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-06-14 16:57:28 -0700</bug_when>
    <thetext>Comment on attachment 431385
Patch

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

&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:100
&gt; +        if authenticated is None and not auth and response.status_code - (response.status_code % 100) == 400:

Is `response.status_code - (response.status_code % 100) == 400` equivalent to `response.status_code  // 100 == 4`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769632</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-14 17:09:20 -0700</bug_when>
    <thetext>(In reply to dewei_zhu from comment #5)
&gt; Comment on attachment 431385 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=431385&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:100
&gt; &gt; +        if authenticated is None and not auth and response.status_code - (response.status_code % 100) == 400:
&gt; 
&gt; Is `response.status_code - (response.status_code % 100) == 400` equivalent
&gt; to `response.status_code  // 100 == 4`?

Yes. Do you prefer the `response.status_code  // 100 == 4` version? No particular reason I used one over the other</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769633</commentid>
    <comment_count>7</comment_count>
      <attachid>431385</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-14 17:14:32 -0700</bug_when>
    <thetext>Comment on attachment 431385
Patch

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

&gt;&gt; Tools/ChangeLog:10
&gt;&gt; +        (credentials): We should attempt to retrieve credentials, even if they
&gt; 
&gt; Why?

Because retrieving credentials is a cheap operation. If they aren&apos;t there, we won&apos;t prompt. But we should be retrieving them (or at least trying to) even if they aren&apos;t required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769636</commentid>
    <comment_count>8</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-14 17:18:43 -0700</bug_when>
    <thetext>(In reply to Stephanie Lewis from comment #4)
&gt; Does getting credentials prompt?  Because if so we should figure out a
&gt; better way to know their required than always fetching them

No, getting credentials does not, generally prompt. You might get a prompt for keychain if a particular credential is available, but not accessible to Python. That case should be pretty rare though, because in most cases, it&apos;s Python that put the credential there in the first place.

The only case where you will get a command line prompt is the one where we don&apos;t have a credential and we need one. Right now &quot;needing&quot; one means that Python specifically says &quot;hey, I need a credential to do this thing&quot;. After this patch, &quot;needing&quot; one means either Python specifically asked, or we got a 400 error on something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769641</commentid>
    <comment_count>9</comment_count>
      <attachid>431385</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-06-14 17:23:33 -0700</bug_when>
    <thetext>Comment on attachment 431385
Patch

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

&gt;&gt;&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:100
&gt;&gt;&gt; +        if authenticated is None and not auth and response.status_code - (response.status_code % 100) == 400:
&gt;&gt; 
&gt;&gt; Is `response.status_code - (response.status_code % 100) == 400` equivalent to `response.status_code  // 100 == 4`?
&gt; 
&gt; Yes. Do you prefer the `response.status_code  // 100 == 4` version? No particular reason I used one over the other

// looks cleaner to me. Is this script Python 3 only?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769645</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-14 17:29:01 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #9)
&gt; Comment on attachment 431385 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=431385&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:100
&gt; &gt;&gt;&gt; +        if authenticated is None and not auth and response.status_code - (response.status_code % 100) == 400:
&gt; &gt;&gt; 
&gt; &gt;&gt; Is `response.status_code - (response.status_code % 100) == 400` equivalent to `response.status_code  // 100 == 4`?
&gt; &gt; 
&gt; &gt; Yes. Do you prefer the `response.status_code  // 100 == 4` version? No particular reason I used one over the other
&gt; 
&gt; // looks cleaner to me. Is this script Python 3 only?

Not yet, buildbot still runs it as Python 2 in a few places</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769817</commentid>
    <comment_count>11</comment_count>
      <attachid>431442</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-15 08:56:58 -0700</bug_when>
    <thetext>Created attachment 431442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769863</commentid>
    <comment_count>12</comment_count>
      <attachid>431442</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-06-15 10:30:24 -0700</bug_when>
    <thetext>Comment on attachment 431442
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769864</commentid>
    <comment_count>13</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2021-06-15 10:30:47 -0700</bug_when>
    <thetext>I still don&apos;t understand why we need credentials if we say we don&apos;t need them.  And your commit log should probably explain that too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769868</commentid>
    <comment_count>14</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-15 10:45:53 -0700</bug_when>
    <thetext>(In reply to Stephanie Lewis from comment #13)
&gt; I still don&apos;t understand why we need credentials if we say we don&apos;t need
&gt; them.  And your commit log should probably explain that too

It&apos;s more in the case that we don&apos;t know if we need them.

Consider the case where we are grabbing a commit from a repository. We don&apos;t know in advance if that repository is private or public. If the repository is public, we don&apos;t need credentials. If it&apos;s private, we do. However, if we have credentials available (as in, we can access those credentials without prompting the user) it&apos;s better that we use the credentials. This is for two reasons: First, if we happen to be accessing a private repo, we saved ourselves a request. Second, though, is that if we&apos;re accessing a public repo with a credentialed request, that request does not count against the rate limit for your current IP address.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769886</commentid>
    <comment_count>15</comment_count>
      <attachid>431458</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-15 11:37:03 -0700</bug_when>
    <thetext>Created attachment 431458
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769902</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-15 12:05:39 -0700</bug_when>
    <thetext>Committed r278890 (238832@main): &lt;https://commits.webkit.org/238832@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431458.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431385</attachid>
            <date>2021-06-14 16:42:14 -0700</date>
            <delta_ts>2021-06-15 08:56:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226999-20210614164212.patch</filename>
            <type>text/plain</type>
            <size>2811</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3ODg1MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDIxLTA2LTE0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbZ2l0LXdlYmtpdF0gSGFuZGxlIGF1dGggZmFpbHVyZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjk5OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzkzMTM4NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0
Y29yZXB5L2NyZWRlbnRpYWxzLnB5OgorICAgICAgICAoY3JlZGVudGlhbHMpOiBXZSBzaG91bGQg
YXR0ZW1wdCB0byByZXRyaWV2ZSBjcmVkZW50aWFscywgZXZlbiBpZiB0aGV5CisgICAgICAgIGFy
ZSBub3QgcmVxdWVzdGVkLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L3JlbW90ZS9naXRfaHViLnB5OgorICAgICAgICAoR2l0SHViLnJlcXVlc3Qp
OiBJbiB0aGUgZXZlbiB3ZSBnZXQgYSA0MDAgZXJyb3IgZnJvbSB0aGUgR2l0SHViIEFQSSwKKyAg
ICAgICAgYXR0ZW1wdCBmb3JjaW5nIGF1dGhlbnRpY2F0aW9uIGJlZm9yZSByZXBvcnRpbmcgYW4g
ZXJyb3IuCisKIDIwMjEtMDYtMTQgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+
CiAKICAgICAgICAgQnJpbmcgdXAgYW4gQXBwbGUtQmlnU3VyLUFwcGxlU2lsaWNvbi1SZWxlYXNl
LVRlc3QyNjItVGVzdHMgcXVldWUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dGNvcmVweS93ZWJraXRjb3JlcHkvY3JlZGVudGlhbHMucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9jcmVkZW50aWFscy5w
eQkocmV2aXNpb24gMjc4ODQ4KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29y
ZXB5L3dlYmtpdGNvcmVweS9jcmVkZW50aWFscy5weQkod29ya2luZyBjb3B5KQpAQCAtNjcsMTQg
KzY3LDE0IEBAIGRlZiBjcmVkZW50aWFscyh1cmwsIHJlcXVpcmVkPVRydWUsIG5hbWUKICAgICAg
ICAgICAgIHVzZXJuYW1lID0gKGlucHV0IGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCkgZWxz
ZSByYXdfaW5wdXQpKCkKICAgICAgICAgICAgIHVzZXJuYW1lX3Byb21wdGVkID0gVHJ1ZQogCi0g
ICAgaWYgbm90IGtleSBhbmQgcmVxdWlyZWQ6CisgICAgaWYgbm90IGtleToKICAgICAgICAgdHJ5
OgogICAgICAgICAgICAgaWYga2V5cmluZzoKICAgICAgICAgICAgICAgICBrZXkgPSBrZXlyaW5n
LmdldF9wYXNzd29yZCh1cmwsIHVzZXJuYW1lKQogICAgICAgICBleGNlcHQgUnVudGltZUVycm9y
OgogICAgICAgICAgICAgcGFzcwogCi0gICAgICAgIGlmIG5vdCBrZXk6CisgICAgICAgIGlmIG5v
dCBrZXkgYW5kIHJlcXVpcmVkOgogICAgICAgICAgICAgaWYgbm90IHN5cy5zdGRlcnIuaXNhdHR5
KCkgb3Igbm90IHN5cy5zdGRpbi5pc2F0dHkoKToKICAgICAgICAgICAgICAgICByYWlzZSBPU0Vy
cm9yKCdObyB0dHkgdG8gcHJvbXB0IHVzZXIgZm9yIHVzZXJuYW1lJykKICAgICAgICAgICAgIGtl
eSA9IGdldHBhc3MuZ2V0cGFzcygne306ICcuZm9ybWF0KGtleV9uYW1lLmNhcGl0YWxpemUoKSkp
CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9y
ZW1vdGUvZ2l0X2h1Yi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvZ2l0X2h1Yi5weQkocmV2aXNpb24gMjc4ODQ4
KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcmVt
b3RlL2dpdF9odWIucHkJKHdvcmtpbmcgY29weSkKQEAgLTk3LDYgKzk3LDggQEAgY2xhc3MgR2l0
SHViKFNjbSk6CiAgICAgICAgICAgICBwYXRoPScve30nLmZvcm1hdChwYXRoKSBpZiBwYXRoIGVs
c2UgJycsCiAgICAgICAgICkKICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQodXJsLCBw
YXJhbXM9cGFyYW1zLCBoZWFkZXJzPWhlYWRlcnMsIGF1dGg9YXV0aCkKKyAgICAgICAgaWYgYXV0
aGVudGljYXRlZCBpcyBOb25lIGFuZCBub3QgYXV0aCBhbmQgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg
LSAocmVzcG9uc2Uuc3RhdHVzX2NvZGUgJSAxMDApID09IDQwMDoKKyAgICAgICAgICAgIHJldHVy
biBzZWxmLnJlcXVlc3QocGF0aD1wYXRoLCBwYXJhbXM9cGFyYW1zLCBoZWFkZXJzPWhlYWRlcnMs
IGF1dGhlbnRpY2F0ZWQ9VHJ1ZSwgcGFnaW5hdGU9cGFnaW5hdGUpCiAgICAgICAgIGlmIHJlc3Bv
bnNlLnN0YXR1c19jb2RlICE9IDIwMDoKICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIlJl
cXVlc3QgdG8gJ3t9JyByZXR1cm5lZCBzdGF0dXMgY29kZSAne30nXG4iLmZvcm1hdCh1cmwsIHJl
c3BvbnNlLnN0YXR1c19jb2RlKSkKICAgICAgICAgICAgIG1lc3NhZ2UgPSByZXNwb25zZS5qc29u
KCkuZ2V0KCdtZXNzYWdlJykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431442</attachid>
            <date>2021-06-15 08:56:58 -0700</date>
            <delta_ts>2021-06-15 11:37:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226999-20210615085657.patch</filename>
            <type>text/plain</type>
            <size>2754</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3ODg3NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDIxLTA2LTE0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbZ2l0LXdlYmtpdF0gSGFuZGxlIGF1dGggZmFpbHVyZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjk5OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzkzMTM4NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0
Y29yZXB5L2NyZWRlbnRpYWxzLnB5OgorICAgICAgICAoY3JlZGVudGlhbHMpOiBXZSBzaG91bGQg
YXR0ZW1wdCB0byByZXRyaWV2ZSBjcmVkZW50aWFscywgZXZlbiBpZiB0aGV5CisgICAgICAgIGFy
ZSBub3QgcmVxdWVzdGVkLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L3JlbW90ZS9naXRfaHViLnB5OgorICAgICAgICAoR2l0SHViLnJlcXVlc3Qp
OiBJbiB0aGUgZXZlbnQgd2UgZ2V0IGEgNDAwIGVycm9yIGZyb20gdGhlIEdpdEh1YiBBUEksCisg
ICAgICAgIGF0dGVtcHQgZm9yY2luZyBhdXRoZW50aWNhdGlvbiBiZWZvcmUgcmVwb3J0aW5nIGFu
IGVycm9yLgorCiAyMDIxLTA2LTE1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TIDE1XSBTdXBwb3J0IGJ1aWxkaW5nIFdlYktpdApJbmRleDogVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9jcmVkZW50aWFs
cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkv
d2Via2l0Y29yZXB5L2NyZWRlbnRpYWxzLnB5CShyZXZpc2lvbiAyNzg4NzQpCisrKyBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L2NyZWRlbnRpYWxzLnB5
CSh3b3JraW5nIGNvcHkpCkBAIC02NywxNCArNjcsMTQgQEAgZGVmIGNyZWRlbnRpYWxzKHVybCwg
cmVxdWlyZWQ9VHJ1ZSwgbmFtZQogICAgICAgICAgICAgdXNlcm5hbWUgPSAoaW5wdXQgaWYgc3lz
LnZlcnNpb25faW5mbyA+ICgzLCAwKSBlbHNlIHJhd19pbnB1dCkoKQogICAgICAgICAgICAgdXNl
cm5hbWVfcHJvbXB0ZWQgPSBUcnVlCiAKLSAgICBpZiBub3Qga2V5IGFuZCByZXF1aXJlZDoKKyAg
ICBpZiBub3Qga2V5OgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiBrZXlyaW5nOgogICAg
ICAgICAgICAgICAgIGtleSA9IGtleXJpbmcuZ2V0X3Bhc3N3b3JkKHVybCwgdXNlcm5hbWUpCiAg
ICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAKLSAgICAgICAg
aWYgbm90IGtleToKKyAgICAgICAgaWYgbm90IGtleSBhbmQgcmVxdWlyZWQ6CiAgICAgICAgICAg
ICBpZiBub3Qgc3lzLnN0ZGVyci5pc2F0dHkoKSBvciBub3Qgc3lzLnN0ZGluLmlzYXR0eSgpOgog
ICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoJ05vIHR0eSB0byBwcm9tcHQgdXNlciBmb3Ig
dXNlcm5hbWUnKQogICAgICAgICAgICAga2V5ID0gZ2V0cGFzcy5nZXRwYXNzKCd7fTogJy5mb3Jt
YXQoa2V5X25hbWUuY2FwaXRhbGl6ZSgpKSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9naXRfaHViLnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9n
aXRfaHViLnB5CShyZXZpc2lvbiAyNzg4NzQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvZ2l0X2h1Yi5weQkod29ya2luZyBjb3B5KQpA
QCAtOTcsNiArOTcsOCBAQCBjbGFzcyBHaXRIdWIoU2NtKToKICAgICAgICAgICAgIHBhdGg9Jy97
fScuZm9ybWF0KHBhdGgpIGlmIHBhdGggZWxzZSAnJywKICAgICAgICAgKQogICAgICAgICByZXNw
b25zZSA9IHJlcXVlc3RzLmdldCh1cmwsIHBhcmFtcz1wYXJhbXMsIGhlYWRlcnM9aGVhZGVycywg
YXV0aD1hdXRoKQorICAgICAgICBpZiBhdXRoZW50aWNhdGVkIGlzIE5vbmUgYW5kIG5vdCBhdXRo
IGFuZCByZXNwb25zZS5zdGF0dXNfY29kZSAvLyAxMDAgPT0gNDoKKyAgICAgICAgICAgIHJldHVy
biBzZWxmLnJlcXVlc3QocGF0aD1wYXRoLCBwYXJhbXM9cGFyYW1zLCBoZWFkZXJzPWhlYWRlcnMs
IGF1dGhlbnRpY2F0ZWQ9VHJ1ZSwgcGFnaW5hdGU9cGFnaW5hdGUpCiAgICAgICAgIGlmIHJlc3Bv
bnNlLnN0YXR1c19jb2RlICE9IDIwMDoKICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIlJl
cXVlc3QgdG8gJ3t9JyByZXR1cm5lZCBzdGF0dXMgY29kZSAne30nXG4iLmZvcm1hdCh1cmwsIHJl
c3BvbnNlLnN0YXR1c19jb2RlKSkKICAgICAgICAgICAgIG1lc3NhZ2UgPSByZXNwb25zZS5qc29u
KCkuZ2V0KCdtZXNzYWdlJykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431458</attachid>
            <date>2021-06-15 11:37:03 -0700</date>
            <delta_ts>2021-06-15 12:05:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226999-20210615113702.patch</filename>
            <type>text/plain</type>
            <size>5356</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3ODg4NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDIxLTA2LTE1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbZ2l0LXdlYmtpdF0gSGFuZGxlIGF1dGggZmFpbHVyZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjk5OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzkzMTM4NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV3ZWkgWmh1
LgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3NldHVwLnB5OiBC
dW1wIHZlcnNpb24uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dl
YmtpdGNvcmVweS9fX2luaXRfXy5weTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9jcmVkZW50aWFscy5weToKKyAgICAgICAgKGNy
ZWRlbnRpYWxzKTogV2Ugc2hvdWxkIGF0dGVtcHQgdG8gcmV0cmlldmUgY3JlZGVudGlhbHMsIGV2
ZW4gaWYgdGhleQorICAgICAgICBhcmUgbm90IHJlcXVlc3RlZCBiZWNhdXNlIHJldHJpZXZpbmcg
Y3JlZGVudGlhbHMgZG9lcyBub3QgcHJvbXB0IHRoZSB1c2VyLgorICAgICAgICAqIFNjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5OiBCdW1wIHZlcnNpb24uCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHk6IERp
dHRvLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L3JlbW90ZS9naXRfaHViLnB5OgorICAgICAgICAoR2l0SHViLnJlcXVlc3QpOiBJbiB0aGUgZXZl
bnQgd2UgZ2V0IGEgNDAwIGVycm9yIGZyb20gdGhlIEdpdEh1YiBBUEksCisgICAgICAgIGF0dGVt
cHQgZm9yY2luZyBhdXRoZW50aWNhdGlvbiBiZWZvcmUgcmVwb3J0aW5nIGFuIGVycm9yLgorCiAy
MDIxLTA2LTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQ2hlY2sgZm9yICJ4bi0tIiBpbiBhbnkgc3ViZG9tYWluIHdoZW4gcGFyc2luZyBV
UkwgaG9zdHMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9zZXR1
cC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkv
c2V0dXAucHkJKHJldmlzaW9uIDI3ODg4NykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdGNvcmVweS9zZXR1cC5weQkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBkZWYg
cmVhZG1lKCk6CiAKIHNldHVwKAogICAgIG5hbWU9J3dlYmtpdGNvcmVweScsCi0gICAgdmVyc2lv
bj0nMC41LjE3JywKKyAgICB2ZXJzaW9uPScwLjUuMTgnLAogICAgIGRlc2NyaXB0aW9uPSdMaWJy
YXJ5IGNvbnRhaW5pbmcgdmFyaW91cyBQeXRob24gc3VwcG9ydCBjbGFzc2VzIGFuZCBmdW5jdGlv
bnMuJywKICAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgpLAogICAgIGNsYXNzaWZpZXJzPVsK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkv
X19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQkocmV2aXNpb24gMjc4ODg3KQorKysgVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5w
eQkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBmcm9tIHdlYmtpdGNvcmVweS5vdXRw
dXRfY2FwdHVyZSBpbXBvcnQgCiBmcm9tIHdlYmtpdGNvcmVweS50YXNrX3Bvb2wgaW1wb3J0IFRh
c2tQb29sCiBmcm9tIHdlYmtpdGNvcmVweS5jcmVkZW50aWFscyBpbXBvcnQgY3JlZGVudGlhbHMK
IAotdmVyc2lvbiA9IFZlcnNpb24oMCwgNSwgMTcpCit2ZXJzaW9uID0gVmVyc2lvbigwLCA1LCAx
OCkKIAogZnJvbSB3ZWJraXRjb3JlcHkuYXV0b2luc3RhbGwgaW1wb3J0IFBhY2thZ2UsIEF1dG9J
bnN0YWxsCiBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApOgpJbmRleDogVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9jcmVkZW50aWFscy5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29y
ZXB5L2NyZWRlbnRpYWxzLnB5CShyZXZpc2lvbiAyNzg4ODcpCisrKyBUb29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L2NyZWRlbnRpYWxzLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC02NywxNCArNjcsMTQgQEAgZGVmIGNyZWRlbnRpYWxzKHVybCwgcmVxdWlyZWQ9
VHJ1ZSwgbmFtZQogICAgICAgICAgICAgdXNlcm5hbWUgPSAoaW5wdXQgaWYgc3lzLnZlcnNpb25f
aW5mbyA+ICgzLCAwKSBlbHNlIHJhd19pbnB1dCkoKQogICAgICAgICAgICAgdXNlcm5hbWVfcHJv
bXB0ZWQgPSBUcnVlCiAKLSAgICBpZiBub3Qga2V5IGFuZCByZXF1aXJlZDoKKyAgICBpZiBub3Qg
a2V5OgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiBrZXlyaW5nOgogICAgICAgICAgICAg
ICAgIGtleSA9IGtleXJpbmcuZ2V0X3Bhc3N3b3JkKHVybCwgdXNlcm5hbWUpCiAgICAgICAgIGV4
Y2VwdCBSdW50aW1lRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAKLSAgICAgICAgaWYgbm90IGtl
eToKKyAgICAgICAgaWYgbm90IGtleSBhbmQgcmVxdWlyZWQ6CiAgICAgICAgICAgICBpZiBub3Qg
c3lzLnN0ZGVyci5pc2F0dHkoKSBvciBub3Qgc3lzLnN0ZGluLmlzYXR0eSgpOgogICAgICAgICAg
ICAgICAgIHJhaXNlIE9TRXJyb3IoJ05vIHR0eSB0byBwcm9tcHQgdXNlciBmb3IgdXNlcm5hbWUn
KQogICAgICAgICAgICAga2V5ID0gZ2V0cGFzcy5nZXRwYXNzKCd7fTogJy5mb3JtYXQoa2V5X25h
bWUuY2FwaXRhbGl6ZSgpKSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3NldHVwLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3NldHVwLnB5CShyZXZpc2lvbiAyNzg4ODcpCisrKyBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS9zZXR1cC5weQkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBA
QCBkZWYgcmVhZG1lKCk6CiAKIHNldHVwKAogICAgIG5hbWU9J3dlYmtpdHNjbXB5JywKLSAgICB2
ZXJzaW9uPScwLjE0LjMnLAorICAgIHZlcnNpb249JzAuMTQuNCcsCiAgICAgZGVzY3JpcHRpb249
J0xpYnJhcnkgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBnaXQgYW5kIHN2biByZXBvc2l0b3Jp
ZXMuJywKICAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgpLAogICAgIGNsYXNzaWZpZXJzPVsK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19f
aW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNzg4ODcpCisrKyBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weQkod29y
a2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAg
ICJQbGVhc2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkgd2l0aCBgcGlwIGluc3RhbGwgd2Via2l0Y29y
ZXB5IC0tZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdlIGluZGV4IFVSTD5gIgogICAgICkKIAotdmVy
c2lvbiA9IFZlcnNpb24oMCwgMTQsIDMpCit2ZXJzaW9uID0gVmVyc2lvbigwLCAxNCwgNCkKIAog
QXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnZmFzdGVuZXJzJywgVmVyc2lvbigwLCAxNSwg
MCkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbW9ub3RvbmljJywgVmVyc2lvbigx
LCA1KSkpCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS9yZW1vdGUvZ2l0X2h1Yi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvZ2l0X2h1Yi5weQkocmV2aXNpb24g
Mjc4ODg3KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2Nt
cHkvcmVtb3RlL2dpdF9odWIucHkJKHdvcmtpbmcgY29weSkKQEAgLTk3LDYgKzk3LDggQEAgY2xh
c3MgR2l0SHViKFNjbSk6CiAgICAgICAgICAgICBwYXRoPScve30nLmZvcm1hdChwYXRoKSBpZiBw
YXRoIGVsc2UgJycsCiAgICAgICAgICkKICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQo
dXJsLCBwYXJhbXM9cGFyYW1zLCBoZWFkZXJzPWhlYWRlcnMsIGF1dGg9YXV0aCkKKyAgICAgICAg
aWYgYXV0aGVudGljYXRlZCBpcyBOb25lIGFuZCBub3QgYXV0aCBhbmQgcmVzcG9uc2Uuc3RhdHVz
X2NvZGUgLy8gMTAwID09IDQ6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXF1ZXN0KHBhdGg9
cGF0aCwgcGFyYW1zPXBhcmFtcywgaGVhZGVycz1oZWFkZXJzLCBhdXRoZW50aWNhdGVkPVRydWUs
IHBhZ2luYXRlPXBhZ2luYXRlKQogICAgICAgICBpZiByZXNwb25zZS5zdGF0dXNfY29kZSAhPSAy
MDA6CiAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJSZXF1ZXN0IHRvICd7fScgcmV0dXJu
ZWQgc3RhdHVzIGNvZGUgJ3t9J1xuIi5mb3JtYXQodXJsLCByZXNwb25zZS5zdGF0dXNfY29kZSkp
CiAgICAgICAgICAgICBtZXNzYWdlID0gcmVzcG9uc2UuanNvbigpLmdldCgnbWVzc2FnZScpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>