<?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>228665</bug_id>
          
          <creation_ts>2021-07-30 15:50:28 -0700</creation_ts>
          <short_desc>[GPU Process] REGRESSION: iCloud Photos Web app may crash WebProcess once the GPUProcess is relaunched</short_desc>
          <delta_ts>2021-08-10 14:27: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>Canvas</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=228969</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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>dino</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1780970</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-30 15:50:28 -0700</bug_when>
    <thetext>If the WebProcess has sent a RemoteRenderingBackend.ReleaseRemoteResource message but the GPUProcess was terminated an has just been relaunched. The new relaunched GPUProcess will process this message for a resource which it has not recached it yet. In this scenario, the WebProcess will be mistakenly terminated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780999</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-30 16:41:30 -0700</bug_when>
    <thetext>&lt;rdar://80857877&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781000</commentid>
    <comment_count>2</comment_count>
      <attachid>434673</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-30 16:42:54 -0700</bug_when>
    <thetext>Created attachment 434673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781151</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-08-01 10:51:09 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #0)
&gt; If the WebProcess has sent a RemoteRenderingBackend.ReleaseRemoteResource
&gt; message but the GPUProcess was terminated an has just been relaunched. The
&gt; new relaunched GPUProcess will process this message for a resource which it
&gt; has not recached it yet. In this scenario, the WebProcess will be mistakenly
&gt; terminated.

Why not just make the WebProcess not send the message in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781362</commentid>
    <comment_count>4</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-08-02 12:56:04 -0700</bug_when>
    <thetext>I put some logging and I tried it on iOS device by opening iCloud/Photos/Albums/Live Photos and I kept moving between scrolling the album and swiping the between the images after clicking on one of them and here is what I found:

com.apple.WebKit.GPU: (JavaScriptCore) shallawa: this = 0x106d5c030, in RemoteResourceCache::RemoteResourceCache()
...
com.apple.WebKit.WebContent: (JavaScriptCore) shallawa: this = 0x10109c4d0, in RemoteRenderingBackendProxy::cacheNativeImage() renderingResourceIdentifier = 1070
com.apple.WebKit.GPU: (JavaScriptCore) shallawa: this = 0x106d5c030, in RemoteResourceCache::cacheNativeImage() renderingResourceIdentifier = 1070
...
com.apple.WebKit.GPU: (JavaScriptCore) shallawa: this = 0x104944030, in RemoteResourceCache::RemoteResourceCache()
...
com.apple.WebKit.WebContent: (JavaScriptCore) shallawa: this = 0x10109c4d0, in RemoteRenderingBackendProxy::releaseRemoteResource() renderingResourceIdentifier = 1070
...
com.apple.WebKit.GPU: (JavaScriptCore) shallawa: this = 0x104944030, in RemoteResourceCache::releaseRemoteResource() resource was not found in m_resourceUseCounters renderingResourceIdentifier = 1070

And this is the explanation of these messages:

(message 1) (GPUProcess) Create a RemoteResourceCache (0x106d5c030)
(message 2) (WebProcess) Cache the NativeImage (1070) in RemoteRenderingBackendProxy (0x10109c4d0)
(message 3) (GPUProcess) Cache the NativeImage (1070) in RemoteResourceCache (0x106d5c030)
(message 4) (GPUProcess) Create a new RemoteResourceCache (0x104944030)
(message 5) (WebProcess) Release the NativeImage (1070) in RemoteRenderingBackendProxy (0x10109c4d0)
(message 6) (GPUProcess) The NativeImage (1070) could not be found in RemoteResourceCache (0x104944030)

It is clear from (message 1) and (message 4) the RemoteResourceCache (0x106d5c030) has crashed/terminated and a new one was created 0x104944030). (message 2) and (message 6) show that the NativeImage was cached in a RemoteResourceCache (0x106d5c030) but was requested to be released from another RemoteResourceCache (0x104944030). And this is why RemoteResourceCache::releaseRemoteResource() returns false in this case and terminates the WebProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781387</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-08-02 14:10:28 -0700</bug_when>
    <thetext>Seems like message 5 is the issue then? 

When the GPU Process crashes, the resources all need to know they are no longer being used and therefore don&apos;t need to message for release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781816</commentid>
    <comment_count>6</comment_count>
      <attachid>434881</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-08-03 20:27:06 -0700</bug_when>
    <thetext>Created attachment 434881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781927</commentid>
    <comment_count>7</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-08-04 10:35:41 -0700</bug_when>
    <thetext>I think the failures on mac-AS bot are unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781932</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-04 10:43:23 -0700</bug_when>
    <thetext>Committed r280639 (240252@main): &lt;https://commits.webkit.org/240252@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434881.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434673</attachid>
            <date>2021-07-30 16:42:54 -0700</date>
            <delta_ts>2021-08-03 20:27:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228665-20210730164253.patch</filename>
            <type>text/plain</type>
            <size>7231</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk3YmE2ZDc5OWIxODI1NjZi
ZThjMDBjNmZjOWYxNzk0ZGZiN2NhNTEuLjliOGYzYTg5ZDcwMzEyNmJjMzkxOGRjOWM4MjAzZDFl
MDZmNGQyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDctMzAgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoKSBzaG91bGQgbm90IHRl
cm1pbmF0ZSBXZWJQcm9jZXNzIGlmIGl0IGNhbm5vdCBmaW5kIHRoZSByZXNvdXJjZSBpbiB0aGUg
Y2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
ODY2NQorICAgICAgICA8cmRhcjovLzgwODU3ODc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBtYWtlIGFsbCB0aGUgZWZmb3J0IHRv
IGtlZXAgV2ViUHJvY2VzcyBydW5uaW5nLiBJdCBzaG91bGQgYmUKKyAgICAgICAgdGVybWluYXRl
ZCBvbmx5IHdoZW4gdGhlcmUgaXMgYSBzZWN1cml0eSByaXNrIGluIGtlZXBpbmcgaXQgcnVubmlu
Zy4KKworICAgICAgICBUaGlzIHNjZW5hcmlvIGNhbiBoYXBwZW4gaWYgV2ViUHJvY2VzcyBjYWNo
ZWQgdGhlIHJlc291cmNlIHdpdGggYSBHUFVQcm9jZXNzCisgICAgICAgIGJ1dCB0aGlzIEdQVVBy
b2Nlc3Mgd2FzIHRlcm1pbmF0ZWQgYW5kIGFub3RoZXIgb25lIHdhcyBsYXVuY2hlZC4gVGhlIHBl
bmRpbmcKKyAgICAgICAgcmVsZWFzZVJlbW90ZVJlc291cmNlKCkgbWVzc2FnZXMgd2lsbCBiZSBy
b3V0ZWQgdG8gdGhpcyBuZXdseSBsYXVuY2hlZAorICAgICAgICBHUFVQcm9jZXNzIHdoaWNoIHNo
b3VsZCBqdXN0IGlnbm9yZSB0aGVtLgorCisgICAgICAgIFVuZm9ydHVuYXRlbHkgd2UgY2FuJ3Qg
ZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHRoaXMgY2FzZSBmcm9tIHRoZSBjYXNlIHdoZXJlCisgICAg
ICAgIEdQVVByb2Nlc3MgcmVjZWl2ZXMgYSByZWxlYXNlUmVtb3RlUmVzb3VyY2UgbWVzc2FnZSBm
b3IgYSByZXNvdXJjZSB3aGljaAorICAgICAgICBoYXMgbmV2ZXIgYmVlbiBjYWNoZWQuIEJ1dCB0
aGVyZSB3aWxsIGJlIG5vIGhhcm0gaWYgYSByZXNvdXJjZSB3b24ndCBiZQorICAgICAgICByZWxl
YXNlZCBpZiB0aGUgbWVzc2FnZSBpcyBpZ25vcmVkLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjptYXliZVJlbW92ZVJlc291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaDoKKwogMjAy
MS0wNy0yOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OIChyMjc4ODc3KSBbQ29jb2FdIFdlYkF1dGhuIHN0b3BwZWQgd29ya2lu
ZyBmb3Igbm9uLVNhZmFyaSBicm93c2VycyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBk
YzdhMjg3MzI0MDJkMWY5OWM4YzE0NjQzMDRjMzY1MWM0YjAyNTYzLi5hODE4MzI2MDI4OWZiZTIz
ZmFmYWJkMjg5ZDk0ZmVhYTk2Y2UyZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC01
MTQsOCArNTE0LDcgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWxldGVBbGxGb250
cygpCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCB1
aW50NjRfdCB1c2VDb3VudCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLSAg
ICBhdXRvIHN1Y2Nlc3MgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGUucmVsZWFzZVJlbW90ZVJlc291
cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgdXNlQ291bnQpOwotICAgIE1FU1NBR0Vf
Q0hFQ0soc3VjY2VzcywgIlJlc291cmNlIGlzIGJlaW5nIHJlbGVhc2VkIGJlZm9yZSBiZWluZyBj
YWNoZWQuIik7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLnJlbGVhc2VSZW1vdGVSZXNvdXJj
ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIHVzZUNvdW50KTsKICAgICB1cGRhdGVSZW5k
ZXJpbmdSZXNvdXJjZVJlcXVlc3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCmluZGV4IGI3NDMw
YjZhNmFjZTRlMzgxYmU1ODZmYzA5MGU1NGQ3MjgxMGJhMWEuLjViMGE4ZWFhMWUwNDM4ODZjYTc4
MTQ1M2FlOTFkZDFjNmQxMGViOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKQEAgLTc1LDExICs3NSwx
MSBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OmRlbGV0ZUFsbEZvbnRzKCkKICAgICBtX2Zv
bnRzLmNsZWFyKCk7CiB9CiAKLWJvb2wgUmVtb3RlUmVzb3VyY2VDYWNoZTo6bWF5YmVSZW1vdmVS
ZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLCBSZXNvdXJjZVVzZUNvdW50ZXJzTWFwOjppdGVyYXRvciYgaXRlcmF0b3IpCit2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGU6Om1heWJlUmVtb3ZlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VVc2VDb3Vu
dGVyc01hcDo6aXRlcmF0b3ImIGl0ZXJhdG9yKQogewogICAgIGF1dG8mIHZhbHVlID0gaXRlcmF0
b3ItPnZhbHVlOwogICAgIGlmICh2YWx1ZS5zdGF0ZSA9PSBSZXNvdXJjZVN0YXRlOjpBbGl2ZSB8
fCB2YWx1ZS51c2VPclBlbmRpbmdDb3VudCA8IDApCi0gICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAodmFsdWUudXNlT3JQZW5kaW5nQ291bnQpIHsKICAgICAg
ICAgLy8gVGhpcyBtZWFucyB3ZSd2ZSBoaXQgYSBzaXR1YXRpb24gdGhhdCdzIHNvbWV0aGluZyBs
aWtlIHRoZSBmb2xsb3dpbmc6CkBAIC0xMTEsMjAgKzExMSwxOSBAQCBib29sIFJlbW90ZVJlc291
cmNlQ2FjaGU6Om1heWJlUmVtb3ZlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IHJlbmRlcgogICAgICAgICAvLyB0aGUgdGhpbmcgaXQncyBzdXBwb3NlZCB0byBiZSBjYWNoaW5n
IGlzIGFscmVhZHkgaW4gdGhlIGNhY2hlLCBhbmQgd2lsbCBjb3JyZWN0bHkKICAgICAgICAgLy8g
ZG8gbm90aGluZy4KIAotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIG1fcmVzb3VyY2VVc2VDb3VudGVycy5yZW1vdmUoaXRlcmF0b3IpOwogCiAgICAg
aWYgKG1faW1hZ2VCdWZmZXJzLnJlbW92ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX25hdGl2ZUlt
YWdlcy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIHJldHVybjsKICAgICBpZiAobV9mb250cy5yZW1vdmUocmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVy
bjsKIAotICAgIC8vIENhY2hpbmcgdGhlIHJlbW90ZSByZXNvdXJjZSBzaG91bGQgaGF2ZSBoYXBw
ZW5lZCBiZWZvcmUgcmVsZWFzaW5nIGl0LgotICAgIHJldHVybiBmYWxzZTsKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJBIHJlc291cmNlIGNvdW50ZXIgZm9yIChpZCA9ICUi
IFBSSXU2NCAiKSB3YXMgZm91bmQgYnV0IHRoZSByZXNvdXJjZSBpdHNlbGYgd2FzIG5vdCBmb3Vu
ZC4iLCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQg
UmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVjb3JkUmVzb3VyY2VVc2UoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTEzOSwxNSArMTM4LDE4
IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVjb3JkUmVzb3VyY2VVc2UoUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluCiAgICAgbWF5YmVSZW1vdmVSZXNvdXJjZShyZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGl0ZXJhdG9yKTsKIH0KIAotYm9vbCBSZW1vdGVSZXNv
dXJjZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgdWludDY0X3QgdXNlQ291bnQpCit2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCB1aW50NjRfdCB1c2VD
b3VudCkKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9yZXNvdXJjZVVzZUNvdW50ZXJzLmZpbmQo
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICBpZiAoaXRlcmF0b3IgPT0gbV9yZXNv
dXJjZVVzZUNvdW50ZXJzLmVuZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGl0
ZXJhdG9yID09IG1fcmVzb3VyY2VVc2VDb3VudGVycy5lbmQoKSkgeworICAgICAgICAvLyBUaGlz
IHNjZW5hcmlvIGNhbiBoYXBwZW4gaWYgV2ViUHJvY2VzcyBjYWNoZWQgdGhlIHJlc291cmNlIHdp
dGggYSBHUFVQcm9jZXNzLAorICAgICAgICAvLyB3aGljaCB3YXMgdGVybWluYXRlZCBsYXRlciwg
YW5kIHJlbGVhc2UgaXQgd2l0aCBhIG5ldyByZXBsYWNpbmcgR1BVUHJvY2Vzcy4KKyAgICAgICAg
cmV0dXJuOworICAgIH0KICAgICBSZXNvdXJjZVVzZUNvdW50ZXImIHVzZUNvdW50ZXIgPSBpdGVy
YXRvci0+dmFsdWU7CiAgICAgdXNlQ291bnRlci5zdGF0ZSA9IFJlc291cmNlU3RhdGU6OlRvQmVE
ZWxldGVkOwogICAgIHVzZUNvdW50ZXIudXNlT3JQZW5kaW5nQ291bnQgLT0gdXNlQ291bnQ7Ci0g
ICAgcmV0dXJuIG1heWJlUmVtb3ZlUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
LCBpdGVyYXRvcik7CisgICAgbWF5YmVSZW1vdmVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIGl0ZXJhdG9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGUuaAppbmRleCBhMDhlNTkzZGI1ZDNmNTJiZWQ4MTViYWFjMjcwYWE1ZGI3NTI5MTUwLi5mNjMz
MTVhNDc1MTU1NDcxYWFhNjY4YTlkODIwZjNlYzRiMDVmOTJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKQEAg
LTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFnZShSZWY8V2Vi
Q29yZTo6TmF0aXZlSW1hZ2U+JiYpOwogICAgIHZvaWQgY2FjaGVGb250KFJlZjxXZWJDb3JlOjpG
b250PiYmKTsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7Ci0gICAgYm9vbCByZWxlYXNlUmVt
b3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCB1aW50NjRf
dCB1c2VDb3VudCk7CisgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCB1aW50NjRfdCB1c2VDb3VudCk7CiAgICAgdm9pZCBy
ZWNvcmRSZXNvdXJjZVVzZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwog
CiAgICAgY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXJIYXNoTWFwJiBpbWFnZUJ1ZmZlcnMoKSBj
b25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVyczsgfQpAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRl
OgogICAgIH07CiAgICAgdXNpbmcgUmVzb3VyY2VVc2VDb3VudGVyc01hcCA9IEhhc2hNYXA8V2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVVzZUNvdW50ZXI+Owog
Ci0gICAgYm9vbCBtYXliZVJlbW92ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciwgUmVzb3VyY2VVc2VDb3VudGVyc01hcDo6aXRlcmF0b3ImKTsKKyAgICB2b2lk
IG1heWJlUmVtb3ZlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
LCBSZXNvdXJjZVVzZUNvdW50ZXJzTWFwOjppdGVyYXRvciYpOwogICAgIHZvaWQgZW5zdXJlUmVz
b3VyY2VVc2VDb3VudGVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAK
ICAgICBXZWJDb3JlOjpJbWFnZUJ1ZmZlckhhc2hNYXAgbV9pbWFnZUJ1ZmZlcnM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434881</attachid>
            <date>2021-08-03 20:27:06 -0700</date>
            <delta_ts>2021-08-04 10:43:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228665-20210803202705.patch</filename>
            <type>text/plain</type>
            <size>3659</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0MjI0ZGRjODViYzNlOGNk
NDdkM2MyMTFjZDc0ZTRlMDliNjgxMWIuLmRiNDQ5MjVmMTcwMjY2MjczMDZmMzE1ZWVmMjkyNjE0
N2Q5OTZjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMDgtMDMgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSRUdS
RVNTSU9OOiBpQ2xvdWQgUGhvdG9zIFdlYiBhcHAgbWF5IGNyYXNoIFdlYlByb2Nlc3Mgb25jZSB0
aGUgR1BVUHJvY2VzcyBpcyByZWxhdW5jaGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg2NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZSBHUFVQcm9jZXNzIGlzIHJlbGF1bmNoZWQsIGVu
c3VyZSBOYXRpdmVJbWFnZSBpcyBkZXRhY2hlZCBmcm9tCisgICAgICAgIHRoZSBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkgb25jZSBpdCBpcyByZW1vdmVkIGZyb20gaXRzIG1fbmF0aXZlSW1hZ2Vz
LgorCisgICAgICAgIE90aGVyd2lzZSB0aGUgTmF0aXZlSW1hZ2UgbGF0ZXIgd2lsbCBhc2sgUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5IHRvIAorICAgICAgICByZWxlYXNlIGl0cyBjb3JyZXNwb25k
aW5nIE5hdGl2ZUltYWdlIGZyb20gUmVtb3RlUmVzb3VyY2VDYWNoZSBldmVuCisgICAgICAgIHRo
b3VnaCBpdCB3YXMgZGVzdHJveWVkIHdoZW4gdGhlIEdQVVByb2Nlc3Mgd2FzIHJlbGF1bmNoZWQu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6On5S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmNsZWFyTmF0aXZlSW1hZ2VNYXApOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbW90ZVJlc291cmNlQ2FjaGVXYXNEZXN0cm95ZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5oOgorCiAyMDIxLTA4LTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBdHRyaWJ1dGUgbncgY29ubmVjdGlvbnMgdG8gdGhlIHBhZ2UgYnVuZGxlIGlkZW50
aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAppbmRleCAzODQ2NjY4YWMx
Yjk4MmUwOGEwZGYzYTdkZGNlODVhOGFiNzhhZjVkLi4yMGFkNDg0N2M2NjczYTk0NWY3NWQwOTk1
MDc4ZTE1MDViYjgyN2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCkBA
IC00MSw4ICs0MSw3IEBAIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYKIAogUmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5Ojp+UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkKIHsKLSAgICBmb3IgKGF1dG8m
IG5hdGl2ZUltYWdlU3RhdGUgOiBtX25hdGl2ZUltYWdlcy52YWx1ZXMoKSkKLSAgICAgICAgbmF0
aXZlSW1hZ2VTdGF0ZS5pbWFnZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIGNsZWFyTmF0
aXZlSW1hZ2VNYXAoKTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hl
SW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQpAQCAtMTUzLDYg
KzE1MiwxMyBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZU5hdGl2ZUlt
YWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZQogICAgIG1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIsIHVzZUNvdW50KTsKIH0KIAordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNs
ZWFyTmF0aXZlSW1hZ2VNYXAoKQoreworICAgIGZvciAoYXV0byYgbmF0aXZlSW1hZ2VTdGF0ZSA6
IG1fbmF0aXZlSW1hZ2VzLnZhbHVlcygpKQorICAgICAgICBuYXRpdmVJbWFnZVN0YXRlLmltYWdl
LT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgbV9uYXRpdmVJbWFnZXMuY2xlYXIoKTsKK30K
Kwogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnByZXBhcmVGb3JOZXh0UmVuZGVyaW5n
VXBkYXRlKCkKIHsKICAgICBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBk
YXRlID0gMDsKQEAgLTIwNCw3ICsyMTAsNyBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eTo6cmVtb3RlUmVzb3VyY2VDYWNoZVdhc0Rlc3Ryb3llZCgpCiAgICAgICAgIGl0ZW0udXNlQ291
bnQgPSAwOwogICAgICAgICBpdGVtLmltYWdlQnVmZmVyLT5jbGVhckJhY2tlbmQoKTsKICAgICB9
Ci0gICAgbV9uYXRpdmVJbWFnZXMuY2xlYXIoKTsKKyAgICBjbGVhck5hdGl2ZUltYWdlTWFwKCk7
CiAgICAgY2xlYXJGb250TWFwKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5o
CmluZGV4IDcyYzdhNjA5NWQ0ZWJkN2MwODZjMDJkZmExZWNhMDAxYzYwN2U1ZDMuLjRlMWJhY2E3
MDViYWVkNWU4YzI1YmZjNDNlNjQxMWZiYmYyMzgzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkuaApAQCAtNzksNiArNzksOCBAQCBwcml2YXRlOgogICAgIHVzaW5nIEZvbnRIYXNo
TWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIEZvbnRT
dGF0ZT47CiAgICAgCiAgICAgdm9pZCByZWxlYXNlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyTmF0aXZlSW1h
Z2VNYXAoKTsKKwogICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cygpOwog
ICAgIHZvaWQgcHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKTsKICAgICB2b2lkIGNsZWFy
Rm9udE1hcCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>