<?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>224677</bug_id>
          
          <creation_ts>2021-04-16 10:06:20 -0700</creation_ts>
          <short_desc>Before deleting a MarkedBlock we do not need to clear its m_directory pointer.</short_desc>
          <delta_ts>2021-04-16 14:48:45 -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>New Bugs</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="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1751119</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-04-16 10:06:20 -0700</bug_when>
    <thetext>Before deleting a MarkedBlock we do not need to clear its m_directory pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751128</commentid>
    <comment_count>1</comment_count>
      <attachid>426246</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-04-16 10:14:20 -0700</bug_when>
    <thetext>Created attachment 426246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751135</commentid>
    <comment_count>2</comment_count>
      <attachid>426246</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-16 10:31:04 -0700</bug_when>
    <thetext>Comment on attachment 426246
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        This patch adds prevents this uncessary store to hopefully reduce the number

/adds prevents/prevents/

&gt; Source/JavaScriptCore/heap/MarkedBlock.cpp:-79
&gt; -    removeFromDirectory();

Why is this ok?  Wouldn&apos;t this leave the directory in a stale state?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751137</commentid>
    <comment_count>3</comment_count>
      <attachid>426246</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-04-16 10:34:23 -0700</bug_when>
    <thetext>Comment on attachment 426246
Patch

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

&gt;&gt; Source/JavaScriptCore/heap/MarkedBlock.cpp:-79
&gt;&gt; -    removeFromDirectory();
&gt; 
&gt; Why is this ok?  Wouldn&apos;t this leave the directory in a stale state?

Well, it&apos;s unnecessary. The only place we destruct handles (MarkedSpace::freeBlock) already removes the MarkedBlock from the directory before calling delete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751138</commentid>
    <comment_count>4</comment_count>
      <attachid>426246</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-04-16 10:34:38 -0700</bug_when>
    <thetext>Comment on attachment 426246
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:11
&gt;&gt; +        This patch adds prevents this uncessary store to hopefully reduce the number
&gt; 
&gt; /adds prevents/prevents/

fixed.

&gt;&gt;&gt; Source/JavaScriptCore/heap/MarkedBlock.cpp:-79
&gt;&gt;&gt; -    removeFromDirectory();
&gt;&gt; 
&gt;&gt; Why is this ok?  Wouldn&apos;t this leave the directory in a stale state?
&gt; 
&gt; Well, it&apos;s unnecessary. The only place we destruct handles (MarkedSpace::freeBlock) already removes the MarkedBlock from the directory before calling delete.

Well, it&apos;s unnecessary. The only place we destruct handles (MarkedSpace::freeBlock) already removes the MarkedBlock from the directory before calling delete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751139</commentid>
    <comment_count>5</comment_count>
      <attachid>426246</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-04-16 10:34:56 -0700</bug_when>
    <thetext>Comment on attachment 426246
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        paging in the footer from disk, which some data we have seen shows is happening.

from disk or from the compressor

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        This patch adds prevents this uncessary store to hopefully reduce the number

adds prevents =&gt; prevents

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        of pageins caused by Safari web content on Mac.

compressor effect pertains to iOS too

&gt; Source/JavaScriptCore/heap/BlockDirectory.cpp:145
&gt; +    removeBlockForDeletion(block);

Surprising to say &quot;for deletion&quot; when we are not deleting.

How about instead adding an enum class WillDeleteBlock { Yes, No } parameter to removeBlock() that defaults to WillDeleteBlock::No? Then removeBlock() can call didRemoveFromDirectory if willDeleteBlock == WillDeleteBlock::YES.

&gt; Source/JavaScriptCore/heap/MarkedBlock.cpp:-79
&gt; -    removeFromDirectory();

Is this OK? Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751141</commentid>
    <comment_count>6</comment_count>
      <attachid>426246</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-16 10:36:09 -0700</bug_when>
    <thetext>Comment on attachment 426246
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/JavaScriptCore/heap/MarkedBlock.cpp:-79
&gt;&gt;&gt;&gt;&gt; -    removeFromDirectory();
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Why is this ok?  Wouldn&apos;t this leave the directory in a stale state?
&gt;&gt;&gt; 
&gt;&gt;&gt; Well, it&apos;s unnecessary. The only place we destruct handles (MarkedSpace::freeBlock) already removes the MarkedBlock from the directory before calling delete.
&gt;&gt; 
&gt;&gt; Well, it&apos;s unnecessary. The only place we destruct handles (MarkedSpace::freeBlock) already removes the MarkedBlock from the directory before calling delete.
&gt; 
&gt; Is this OK? Why?

Only MarkedSpace::freeBlock calls this destructor, and it is calling removeBlockForDeletion.
So, this does nothing in practice. When calling it, m_directory was always nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751144</commentid>
    <comment_count>7</comment_count>
      <attachid>426246</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-04-16 10:45:19 -0700</bug_when>
    <thetext>Comment on attachment 426246
Patch

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

&gt;&gt; Source/JavaScriptCore/heap/BlockDirectory.cpp:145
&gt;&gt; +    removeBlockForDeletion(block);
&gt; 
&gt; Surprising to say &quot;for deletion&quot; when we are not deleting.
&gt; 
&gt; How about instead adding an enum class WillDeleteBlock { Yes, No } parameter to removeBlock() that defaults to WillDeleteBlock::No? Then removeBlock() can call didRemoveFromDirectory if willDeleteBlock == WillDeleteBlock::YES.

Sure, that&apos;s fine.

&gt;&gt;&gt;&gt;&gt;&gt; Source/JavaScriptCore/heap/MarkedBlock.cpp:-79
&gt;&gt;&gt;&gt;&gt;&gt; -    removeFromDirectory();
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; Why is this ok?  Wouldn&apos;t this leave the directory in a stale state?
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Well, it&apos;s unnecessary. The only place we destruct handles (MarkedSpace::freeBlock) already removes the MarkedBlock from the directory before calling delete.
&gt;&gt;&gt; 
&gt;&gt;&gt; Well, it&apos;s unnecessary. The only place we destruct handles (MarkedSpace::freeBlock) already removes the MarkedBlock from the directory before calling delete.
&gt;&gt; 
&gt;&gt; Is this OK? Why?
&gt; 
&gt; Only MarkedSpace::freeBlock calls this destructor, and it is calling removeBlockForDeletion.
&gt; So, this does nothing in practice. When calling it, m_directory was always nullptr.

I&apos;ll actually change this so we still call removeFromDirectory() here and remove the call from MarkedSpace::freeBlock. That way it&apos;s a bit more obvious what&apos;s going on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751146</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-04-16 10:46:10 -0700</bug_when>
    <thetext>&gt; How about instead adding an enum class WillDeleteBlock { Yes, No } parameter
&gt; to removeBlock() that defaults to WillDeleteBlock::No? Then removeBlock()
&gt; can call didRemoveFromDirectory if willDeleteBlock == WillDeleteBlock::YES.

I mean NO! :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751171</commentid>
    <comment_count>9</comment_count>
      <attachid>426252</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-04-16 11:30:58 -0700</bug_when>
    <thetext>Created attachment 426252
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751187</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-16 12:24:30 -0700</bug_when>
    <thetext>Committed r276155 (236646@main): &lt;https://commits.webkit.org/236646@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426252.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751266</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-04-16 14:48:45 -0700</bug_when>
    <thetext>rdar://76779547</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426246</attachid>
            <date>2021-04-16 10:14:20 -0700</date>
            <delta_ts>2021-04-16 11:30:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224677-20210416131419.patch</filename>
            <type>text/plain</type>
            <size>4291</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1OTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OWRjZjNkNGRjODkyYjcyNDhmOGExZDljNmRhZmQ3NmU1ZTAwOGM0Li41ZmUzZWRkZjA1MzkwY2Y0
MjMzYTE2Y2U2ZjVmYmZhY2Q5NmE2MTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0wNC0xNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBCZWZvcmUgZGVsZXRpbmcgYSBNYXJrZWRCbG9jayB3ZSBkbyBub3Qg
bmVlZCB0byBjbGVhciBpdHMgbV9kaXJlY3RvcnkgcG9pbnRlci4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDY3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpZ2h0IG5vdyB3aGVuIHdlIGFyZSBhYm91
dCB0byBmcmVlIGEgTWFya2VkQmxvY2sgd2UgY2xlYXIgdGhlIG1fZGlyZWN0b3J5IHBvaW50ZXIK
KyAgICAgICAgaW4gdGhlIE1hcmtlZEJsb2NrJ3MgSGFuZGxlLiBUaGlzIGhhcyB0aGUgZG93bnNp
ZGUsIGhvd2V2ZXIsIG9mIHBvdGVudGlhbGx5CisgICAgICAgIHBhZ2luZyBpbiB0aGUgZm9vdGVy
IGZyb20gZGlzaywgd2hpY2ggc29tZSBkYXRhIHdlIGhhdmUgc2VlbiBzaG93cyBpcyBoYXBwZW5p
bmcuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBwcmV2ZW50cyB0aGlzIHVuY2Vzc2FyeSBzdG9y
ZSB0byBob3BlZnVsbHkgcmVkdWNlIHRoZSBudW1iZXIKKyAgICAgICAgb2YgcGFnZWlucyBjYXVz
ZWQgYnkgU2FmYXJpIHdlYiBjb250ZW50IG9uIE1hYy4KKworICAgICAgICAqIGhlYXAvQmxvY2tE
aXJlY3RvcnkuY3BwOgorICAgICAgICAoSlNDOjpCbG9ja0RpcmVjdG9yeTo6cmVtb3ZlQmxvY2sp
OgorICAgICAgICAoSlNDOjpCbG9ja0RpcmVjdG9yeTo6cmVtb3ZlQmxvY2tGb3JEZWxldGlvbik6
CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5oOgorICAgICAgICAqIGhlYXAvTWFya2Vk
QmxvY2suY3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6SGFuZGxlOjp+SGFuZGxlKToK
KyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2VkU3Bh
Y2U6OmZyZWVCbG9jayk6CisKIDIwMjEtMDQtMTMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFRoZSB3YXRjaGRvZyBzaG91bGQgbm90IGZpcmUgd2hlbiBpdCdzIG5v
dCBhY3RpdmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0Rp
cmVjdG9yeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5j
cHAKaW5kZXggOGQyYjkzZDM2NjE4ODFkODQxNTk5NmE5NWYwMGVhMDkxOTJlZGUyOC4uYTI5N2Zi
MDA0YTc4MTU1ZDBlODNhNWZkYTg3ZTlhZTVmY2Q1NGY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmNwcApAQCAtMTQxLDYgKzE0MSwxMiBAQCB2b2lk
IEJsb2NrRGlyZWN0b3J5OjphZGRCbG9jayhNYXJrZWRCbG9jazo6SGFuZGxlKiBibG9jaykKIH0K
IAogdm9pZCBCbG9ja0RpcmVjdG9yeTo6cmVtb3ZlQmxvY2soTWFya2VkQmxvY2s6OkhhbmRsZSog
YmxvY2spCit7CisgICAgcmVtb3ZlQmxvY2tGb3JEZWxldGlvbihibG9jayk7CisgICAgYmxvY2st
PmRpZFJlbW92ZUZyb21EaXJlY3RvcnkoKTsKK30KKwordm9pZCBCbG9ja0RpcmVjdG9yeTo6cmVt
b3ZlQmxvY2tGb3JEZWxldGlvbihNYXJrZWRCbG9jazo6SGFuZGxlKiBibG9jaykKIHsKICAgICBB
U1NFUlQoYmxvY2stPmRpcmVjdG9yeSgpID09IHRoaXMpOwogICAgIEFTU0VSVChtX2Jsb2Nrc1ti
bG9jay0+aW5kZXgoKV0gPT0gYmxvY2spOwpAQCAtMTU1LDggKzE2MSw2IEBAIHZvaWQgQmxvY2tE
aXJlY3Rvcnk6OnJlbW92ZUJsb2NrKE1hcmtlZEJsb2NrOjpIYW5kbGUqIGJsb2NrKQogICAgICAg
ICBbJl0oYXV0byB2ZWN0b3JSZWYpIHsKICAgICAgICAgICAgIHZlY3RvclJlZltibG9jay0+aW5k
ZXgoKV0gPSBmYWxzZTsKICAgICAgICAgfSk7Ci0gICAgCi0gICAgYmxvY2stPmRpZFJlbW92ZUZy
b21EaXJlY3RvcnkoKTsKIH0KIAogdm9pZCBCbG9ja0RpcmVjdG9yeTo6c3RvcEFsbG9jYXRpbmco
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3Rvcnku
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmgKaW5kZXggNjc0
MmMzMTU4Yjk2MTY1MjRhMmIwYTY4Y2FkNDAxNjI0NDdlZWE0MS4uZDA0MDU3NTdhNWUyNzQ2ODY4
MDUxZGI2MDQzMmU0ZjhjYmUyYWY5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvQmxvY2tEaXJlY3RvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9C
bG9ja0RpcmVjdG9yeS5oCkBAIC04NSw2ICs4NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEJs
b2NrKE1hcmtlZEJsb2NrOjpIYW5kbGUqKTsKICAgICB2b2lkIHJlbW92ZUJsb2NrKE1hcmtlZEJs
b2NrOjpIYW5kbGUqKTsKIAorICAgIC8vIExlYXZlcyB0aGUgYmxvY2sgaW4gYW4gaW52YWxpZCBz
dGF0ZSBidXQgd2UgZG8gdGhpcyB0byBhdm9pZCBwb3RlbnRpYWxseSBwYWdpbmcgaW4gb2xkIGJs
b2NrcyB0byB1cGRhdGUgdGhlaXIgZm9vdGVyIGJlZm9yZSBmcmVlaW5nIHRoZW0uCisgICAgdm9p
ZCByZW1vdmVCbG9ja0ZvckRlbGV0aW9uKE1hcmtlZEJsb2NrOjpIYW5kbGUqKTsKKwogICAgIGJv
b2wgaXNQYWdlZE91dChNb25vdG9uaWNUaW1lIGRlYWRsaW5lKTsKICAgICAKICAgICBMb2NrJiBi
aXR2ZWN0b3JMb2NrKCkgeyByZXR1cm4gbV9iaXR2ZWN0b3JMb2NrOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKaW5kZXggMTkzYTUzYjM2NGJlYmQ3YmU0YWE3
ZTZmYzhmOTFlYWIyMzc4OTVkYS4uNmEwZGYwYmJkYmViN2UzMDM5ZTliMjUxZjRlNzkzOWQ1Yjc1
YzExYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcApAQCAt
NzYsNyArNzYsNiBAQCBNYXJrZWRCbG9jazo6SGFuZGxlOjp+SGFuZGxlKCkKICAgICAgICAgaWYg
KCEoYmFsYW5jZSAlIDEwKSkKICAgICAgICAgICAgIGRhdGFMb2coIk1hcmtlZEJsb2NrIEJhbGFu
Y2U6ICIsIGJhbGFuY2UsICJcbiIpOwogICAgIH0KLSAgICByZW1vdmVGcm9tRGlyZWN0b3J5KCk7
CiAgICAgbV9ibG9jay0+fk1hcmtlZEJsb2NrKCk7CiAgICAgbV9hbGlnbmVkTWVtb3J5QWxsb2Nh
dG9yLT5mcmVlQWxpZ25lZE1lbW9yeShtX2Jsb2NrKTsKICAgICBoZWFwLmRpZEZyZWVCbG9jayhi
bG9ja1NpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2Vk
U3BhY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCmlu
ZGV4IDI3Y2UyZWY1NTI2YmVkNjhhYzA4YTc2MzRhOTk2M2EzMTBiODYwMGUuLjU4YjUyMzFlYTcw
MzY0NjQwMDEyNTA2OTdjNTNkNjBhN2NlZTM4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrZWRTcGFjZS5jcHAKQEAgLTM3NSw3ICszNzUsNyBAQCBib29sIE1hcmtlZFNwYWNl
Ojppc1BhZ2VkT3V0KE1vbm90b25pY1RpbWUgZGVhZGxpbmUpCiAKIHZvaWQgTWFya2VkU3BhY2U6
OmZyZWVCbG9jayhNYXJrZWRCbG9jazo6SGFuZGxlKiBibG9jaykKIHsKLSAgICBibG9jay0+ZGly
ZWN0b3J5KCktPnJlbW92ZUJsb2NrKGJsb2NrKTsKKyAgICBibG9jay0+ZGlyZWN0b3J5KCktPnJl
bW92ZUJsb2NrRm9yRGVsZXRpb24oYmxvY2spOwogICAgIG1fY2FwYWNpdHkgLT0gTWFya2VkQmxv
Y2s6OmJsb2NrU2l6ZTsKICAgICBtX2Jsb2Nrcy5yZW1vdmUoJmJsb2NrLT5ibG9jaygpKTsKICAg
ICBkZWxldGUgYmxvY2s7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426252</attachid>
            <date>2021-04-16 11:30:58 -0700</date>
            <delta_ts>2021-04-16 12:24:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224677-20210416143057.patch</filename>
            <type>text/plain</type>
            <size>4584</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1OTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OWRjZjNkNGRjODkyYjcyNDhmOGExZDljNmRhZmQ3NmU1ZTAwOGM0Li41YjI4OTViMGViNzIxMmFj
MzJkMGQ1YmY1NjU5ZTg4ZDhmM2E2YzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMS0wNC0xNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBCZWZvcmUgZGVsZXRpbmcgYSBNYXJrZWRCbG9jayB3ZSBkbyBub3Qg
bmVlZCB0byBjbGVhciBpdHMgbV9kaXJlY3RvcnkgcG9pbnRlci4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDY3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgUmlnaHQgbm93IHdoZW4gd2UgYXJlIGFib3V0
IHRvIGZyZWUgYSBNYXJrZWRCbG9jayB3ZSBjbGVhciB0aGUKKyAgICAgICAgbV9kaXJlY3Rvcnkg
cG9pbnRlciBpbiB0aGUgTWFya2VkQmxvY2sncyBIYW5kbGUuIFRoaXMgaGFzIHRoZQorICAgICAg
ICBkb3duc2lkZSwgaG93ZXZlciwgb2YgcG90ZW50aWFsbHkgcGFnaW5nIGluIHRoZSBmb290ZXIg
ZnJvbSBkaXNrIC8KKyAgICAgICAgdGhlIGNvbXByZXNzb3IsIHdoaWNoIHNvbWUgZGF0YSB3ZSBo
YXZlIHNlZW4gc2hvd3MgaXMgaGFwcGVuaW5nLgorICAgICAgICBUaGlzIHBhdGNoIHByZXZlbnRz
IHRoaXMgdW5jZXNzYXJ5IHN0b3JlIHRvIGhvcGVmdWxseSByZWR1Y2UgdGhlCisgICAgICAgIG51
bWJlciBvZiBwYWdlaW5zL2RlY29tcHJlc3Npb25zIGNhdXNlZCBieSBTYWZhcmkgd2ViIGNvbnRl
bnQuCisKKyAgICAgICAgKiBoZWFwL0Jsb2NrRGlyZWN0b3J5LmNwcDoKKyAgICAgICAgKEpTQzo6
QmxvY2tEaXJlY3Rvcnk6OnJlbW92ZUJsb2NrKToKKyAgICAgICAgKEpTQzo6QmxvY2tEaXJlY3Rv
cnk6OnJlbW92ZUJsb2NrRm9yRGVsZXRpb24pOgorICAgICAgICAqIGhlYXAvQmxvY2tEaXJlY3Rv
cnkuaDoKKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6TWFy
a2VkQmxvY2s6OkhhbmRsZTo6fkhhbmRsZSk6CisgICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5j
cHA6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpmcmVlQmxvY2spOgorCiAyMDIxLTA0LTEz
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgd2F0Y2hkb2cg
c2hvdWxkIG5vdCBmaXJlIHdoZW4gaXQncyBub3QgYWN0aXZlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwCmluZGV4IDhkMmI5M2QzNjYxODgxZDg0MTU5
OTZhOTVmMDBlYTA5MTkyZWRlMjguLmRhZGMyZDUxMTM5NmEzNjg5YmQ1N2Y3ODAyMzRmOTNlYjRj
NGQxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0
b3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5j
cHAKQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIEJsb2NrRGlyZWN0b3J5OjphZGRCbG9jayhNYXJr
ZWRCbG9jazo6SGFuZGxlKiBibG9jaykKICAgICBzZXRJc0VtcHR5KE5vTG9ja2luZ05lY2Vzc2Fy
eSwgaW5kZXgsIHRydWUpOwogfQogCi12b2lkIEJsb2NrRGlyZWN0b3J5OjpyZW1vdmVCbG9jayhN
YXJrZWRCbG9jazo6SGFuZGxlKiBibG9jaykKK3ZvaWQgQmxvY2tEaXJlY3Rvcnk6OnJlbW92ZUJs
b2NrKE1hcmtlZEJsb2NrOjpIYW5kbGUqIGJsb2NrLCBXaWxsRGVsZXRlQmxvY2sgd2lsbERlbGV0
ZSkKIHsKICAgICBBU1NFUlQoYmxvY2stPmRpcmVjdG9yeSgpID09IHRoaXMpOwogICAgIEFTU0VS
VChtX2Jsb2Nrc1tibG9jay0+aW5kZXgoKV0gPT0gYmxvY2spOwpAQCAtMTU1LDggKzE1NSw5IEBA
IHZvaWQgQmxvY2tEaXJlY3Rvcnk6OnJlbW92ZUJsb2NrKE1hcmtlZEJsb2NrOjpIYW5kbGUqIGJs
b2NrKQogICAgICAgICBbJl0oYXV0byB2ZWN0b3JSZWYpIHsKICAgICAgICAgICAgIHZlY3RvclJl
ZltibG9jay0+aW5kZXgoKV0gPSBmYWxzZTsKICAgICAgICAgfSk7Ci0gICAgCi0gICAgYmxvY2st
PmRpZFJlbW92ZUZyb21EaXJlY3RvcnkoKTsKKworICAgIGlmICh3aWxsRGVsZXRlID09IFdpbGxE
ZWxldGVCbG9jazo6Tm8pCisgICAgICAgIGJsb2NrLT5kaWRSZW1vdmVGcm9tRGlyZWN0b3J5KCk7
CiB9CiAKIHZvaWQgQmxvY2tEaXJlY3Rvcnk6OnN0b3BBbGxvY2F0aW5nKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5oCmluZGV4IDY3NDJjMzE1OGI5NjE2NTI0
YTJiMGE2OGNhZDQwMTYyNDQ3ZWVhNDEuLmZlNGI0MjJkNTQ0N2Q0NjdmMzlhYmI3YmEzYmM5MzZh
NjRjZWUxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGly
ZWN0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3Rvcnku
aApAQCAtODMsNyArODMsOSBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFNoYXJlZFRhc2s8TWFya2Vk
QmxvY2s6OkhhbmRsZSooKT4+IHBhcmFsbGVsTm90RW1wdHlCbG9ja1NvdXJjZSgpOwogICAgIAog
ICAgIHZvaWQgYWRkQmxvY2soTWFya2VkQmxvY2s6OkhhbmRsZSopOwotICAgIHZvaWQgcmVtb3Zl
QmxvY2soTWFya2VkQmxvY2s6OkhhbmRsZSopOworICAgIGVudW0gY2xhc3MgV2lsbERlbGV0ZUJs
b2NrIHsgTm8sIFllcyB9OworICAgIC8vIElmIFdpbGxEZWxldGVCbG9jazo6WWVzIGlzIHBhc3Nl
ZCB0aGVuIHRoZSBibG9jayB3aWxsIGJlIGxlZnQgaW4gYW4gaW52YWxpZCBzdGF0ZS4gV2UgZG8g
dGhpcywgaG93ZXZlciwgdG8gYXZvaWQgcG90ZW50aWFsbHkgcGFnaW5nIGluIC8gZGVjb21wcmVz
c2luZyBvbGQgYmxvY2tzIHRvIHVwZGF0ZSB0aGVpciBoYW5kbGUganVzdCBiZWZvcmUgZnJlZWlu
ZyB0aGVtLgorICAgIHZvaWQgcmVtb3ZlQmxvY2soTWFya2VkQmxvY2s6OkhhbmRsZSosIFdpbGxE
ZWxldGVCbG9jayA9IFdpbGxEZWxldGVCbG9jazo6Tm8pOwogCiAgICAgYm9vbCBpc1BhZ2VkT3V0
KE1vbm90b25pY1RpbWUgZGVhZGxpbmUpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFya2VkQmxvY2suY3BwCmluZGV4IDE5M2E1M2IzNjRiZWJkN2JlNGFhN2U2ZmM4ZjkxZWFi
MjM3ODk1ZGEuLmEwZjYxNDJjZWVhYzA5NzU1MGU0YjA5MjU5OTdkODZhYTIwMDk4ZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKQEAgLTc2LDcgKzc2LDcg
QEAgTWFya2VkQmxvY2s6OkhhbmRsZTo6fkhhbmRsZSgpCiAgICAgICAgIGlmICghKGJhbGFuY2Ug
JSAxMCkpCiAgICAgICAgICAgICBkYXRhTG9nKCJNYXJrZWRCbG9jayBCYWxhbmNlOiAiLCBiYWxh
bmNlLCAiXG4iKTsKICAgICB9Ci0gICAgcmVtb3ZlRnJvbURpcmVjdG9yeSgpOworICAgIG1fZGly
ZWN0b3J5LT5yZW1vdmVCbG9jayh0aGlzLCBCbG9ja0RpcmVjdG9yeTo6V2lsbERlbGV0ZUJsb2Nr
OjpZZXMpOwogICAgIG1fYmxvY2stPn5NYXJrZWRCbG9jaygpOwogICAgIG1fYWxpZ25lZE1lbW9y
eUFsbG9jYXRvci0+ZnJlZUFsaWduZWRNZW1vcnkobV9ibG9jayk7CiAgICAgaGVhcC5kaWRGcmVl
QmxvY2soYmxvY2tTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L01hcmtlZFNwYWNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNl
LmNwcAppbmRleCAyN2NlMmVmNTUyNmJlZDY4YWMwOGE3NjM0YTk5NjNhMzEwYjg2MDBlLi44MWRj
Njk3ZjMwMmVhOTIzNDI1ZGEyZmZmMmVkMDVjNjFhNzA5NWVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCkBAIC0zNzUsNyArMzc1LDYgQEAgYm9vbCBNYXJr
ZWRTcGFjZTo6aXNQYWdlZE91dChNb25vdG9uaWNUaW1lIGRlYWRsaW5lKQogCiB2b2lkIE1hcmtl
ZFNwYWNlOjpmcmVlQmxvY2soTWFya2VkQmxvY2s6OkhhbmRsZSogYmxvY2spCiB7Ci0gICAgYmxv
Y2stPmRpcmVjdG9yeSgpLT5yZW1vdmVCbG9jayhibG9jayk7CiAgICAgbV9jYXBhY2l0eSAtPSBN
YXJrZWRCbG9jazo6YmxvY2tTaXplOwogICAgIG1fYmxvY2tzLnJlbW92ZSgmYmxvY2stPmJsb2Nr
KCkpOwogICAgIGRlbGV0ZSBibG9jazsK
</data>

          </attachment>
      

    </bug>

</bugzilla>