<?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>221920</bug_id>
          
          <creation_ts>2021-02-15 13:24:56 -0800</creation_ts>
          <short_desc>[GPUP] Ignore an IPC message if the message receiver has been destroyed</short_desc>
          <delta_ts>2021-03-05 11:28:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=221310</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=222079</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="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1729329</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-15 13:24:56 -0800</bug_when>
    <thetext>[GPUP] Ignore an IPC message if the message receiver has been destroyed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729331</commentid>
    <comment_count>1</comment_count>
      <attachid>420358</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-15 13:27:09 -0800</bug_when>
    <thetext>Created attachment 420358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729363</commentid>
    <comment_count>2</comment_count>
      <attachid>420358</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-15 14:04:33 -0800</bug_when>
    <thetext>Comment on attachment 420358
Patch

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

&gt; Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:110
&gt; +Logger&amp; GPUProcessConnection::logger()
&gt; +{
&gt; +    if (!m_logger)
&gt; +        m_logger = Logger::create(this);
&gt; +
&gt; +    return *m_logger;
&gt; +}
&gt; +

It looks like this is unused, `RELEASE_LOG_ERROR` does not use a Logger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729379</commentid>
    <comment_count>3</comment_count>
      <attachid>420358</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-15 14:32:02 -0800</bug_when>
    <thetext>Comment on attachment 420358
Patch

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

&gt;&gt; Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:110
&gt;&gt; +
&gt; 
&gt; It looks like this is unused, `RELEASE_LOG_ERROR` does not use a Logger.

Right, will fix it. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729385</commentid>
    <comment_count>4</comment_count>
      <attachid>420374</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-15 14:36:53 -0800</bug_when>
    <thetext>Created attachment 420374
Revise the patch based on Eric&apos;s comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729437</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-15 15:49:07 -0800</bug_when>
    <thetext>Committed r272887: &lt;https://commits.webkit.org/r272887&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420374.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729438</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-15 15:50:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/74369181&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730368</commentid>
    <comment_count>7</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-02-17 10:37:04 -0800</bug_when>
    <thetext>We are still seeing these two tests crashing even after this change:
imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-origin.sub.html
http/tests/navigation/parsed-iframe-dynamic-form-back-entry.html

history:
https://results.webkit.org/?suite=layout-tests&amp;suite=layout-tests&amp;test=http%2Ftests%2Fnavigation%2Fparsed-iframe-dynamic-form-back-entry.html&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fhtml%2Fcanvas%2Felement%2Fimagebitmap%2FcreateImageBitmap-origin.sub.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730372</commentid>
    <comment_count>8</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-02-17 10:39:13 -0800</bug_when>
    <thetext>Crash log for imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-origin.sub.html

https://build.webkit.org/results/Apple-BigSur-Debug-WK2-Tests/r272998%20(200)/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-origin.sub-crash-log.txt


Crash log for http/tests/navigation/parsed-iframe-dynamic-form-back-entry.html

https://build.webkit.org/results/Apple-BigSur-Debug-WK2-Tests/r272998%20(200)/http/tests/navigation/parsed-iframe-dynamic-form-back-entry-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730374</commentid>
    <comment_count>9</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-02-17 10:39:31 -0800</bug_when>
    <thetext>Reopening for continuing issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730399</commentid>
    <comment_count>10</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-17 11:04:52 -0800</bug_when>
    <thetext>(In reply to Truitt Savell from comment #8)
&gt; Crash log for
&gt; imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/
&gt; createImageBitmap-origin.sub.html
&gt; 
&gt; https://build.webkit.org/results/Apple-BigSur-Debug-WK2-Tests/
&gt; r272998%20(200)/imported/w3c/web-platform-tests/html/canvas/element/
&gt; imagebitmap/createImageBitmap-origin.sub-crash-log.txt
&gt; 
&gt; 
&gt; Crash log for
&gt; http/tests/navigation/parsed-iframe-dynamic-form-back-entry.html
&gt; 
&gt; https://build.webkit.org/results/Apple-BigSur-Debug-WK2-Tests/
&gt; r272998%20(200)/http/tests/navigation/parsed-iframe-dynamic-form-back-entry-
&gt; crash-log.txt

These are GPU Process crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730587</commentid>
    <comment_count>11</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-17 15:30:05 -0800</bug_when>
    <thetext>Filed bug 222079 to fix the crash of http/tests/navigation/parsed-iframe-dynamic-form-back-entry.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731808</commentid>
    <comment_count>12</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-20 10:28:41 -0800</bug_when>
    <thetext>Bug 221989 tracks the crash of imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-origin.sub.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731809</commentid>
    <comment_count>13</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-20 10:29:03 -0800</bug_when>
    <thetext>Let&apos;s close this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736255</commentid>
    <comment_count>14</comment_count>
      <attachid>420374</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-05 01:57:55 -0800</bug_when>
    <thetext>Comment on attachment 420374
Revise the patch based on Eric&apos;s comment

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

&gt; Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:181
&gt; +        RELEASE_LOG_ERROR(WebGL, &quot;The RemoteGraphicsContextGLProxy object has beed destroyed&quot;);

From WebGL perspective this is incorrect.
This is not an error. This is expected, the sender cannot know when the receiver decides to stop listening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736406</commentid>
    <comment_count>15</comment_count>
      <attachid>420374</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-03-05 10:26:16 -0800</bug_when>
    <thetext>Comment on attachment 420374
Revise the patch based on Eric&apos;s comment

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

&gt;&gt; Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:181
&gt;&gt; +        RELEASE_LOG_ERROR(WebGL, &quot;The RemoteGraphicsContextGLProxy object has beed destroyed&quot;);
&gt; 
&gt; From WebGL perspective this is incorrect.
&gt; This is not an error. This is expected, the sender cannot know when the receiver decides to stop listening.

Hmm, but this log message is from GPUProcessConnection&apos;s perspective?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736413</commentid>
    <comment_count>16</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-03-05 10:36:14 -0800</bug_when>
    <thetext>(In reply to Kimmo Kinnunen from comment #14)
&gt; Comment on attachment 420374 [details]
&gt; Revise the patch based on Eric&apos;s comment
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=420374&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:181
&gt; &gt; +        RELEASE_LOG_ERROR(WebGL, &quot;The RemoteGraphicsContextGLProxy object has beed destroyed&quot;);
&gt; 
&gt; From WebGL perspective this is incorrect.
&gt; This is not an error. This is expected, the sender cannot know when the
&gt; receiver decides to stop listening.

This is immaterial to whether the receiver is a WebGL object or not; this is a bug in our XPC implementation.  And it&apos;s not true that the sender cannot know when the receiver decides to stop listening. The receiver can send an async message to the remote process and wait for a response before stopping listening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736446</commentid>
    <comment_count>17</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-05 11:12:05 -0800</bug_when>
    <thetext>(In reply to Jer Noble from comment #16)
&gt; And it&apos;s not true that the sender cannot
&gt; know when the receiver decides to stop listening. The receiver can send an
&gt; async message to the remote process and wait for a response before stopping
&gt; listening.

Web process sends &quot;do something&quot;  for destination id 7.
GPU process receives &quot;do something&quot;.
GPU process sends &quot;something done&quot;.
Web process sends &quot;do something&quot; else for destination id 7.
Web process notices GPU process timed out.
Web process removes all references to anything related to id 7.
Web process receives &quot;something done&quot; for id 7.

In general, in asynchronous communication you cannot know if the other party will get the message you send.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736450</commentid>
    <comment_count>18</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-05 11:23:19 -0800</bug_when>
    <thetext>&gt; The receiver can send an
&gt; async message to the remote process and wait for a response before stopping
&gt; listening.

The destruction is not a sync operation. Would it be useful as as sync operation?

Here&apos;s a sequence that might trigger the error message

WebContent:
Send CreateRemoteGraphicsContextGL id 7
Send ReleaseRemoteGraphicsContextGL id 7

GPU Process:
Got CreateRemoteGraphicsContextGL id 7
Send WasCreated id 7
Got ReleaseRemoteGraphicsContextGL id 7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736454</commentid>
    <comment_count>19</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-05 11:28:46 -0800</bug_when>
    <thetext>(In reply to Kimmo Kinnunen from comment #18)
&gt; The destruction is not a sync operation. Would it be useful as as sync
&gt; operation?

Sync or async with a reply would fit here better -- does not matter. 

Destruction is not usually something you compute a result with.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420358</attachid>
            <date>2021-02-15 13:27:09 -0800</date>
            <delta_ts>2021-02-15 14:04:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221920-20210215132708.patch</filename>
            <type>text/plain</type>
            <size>5955</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExNGUyMmNhMDVhOWQ2ZTdm
MDhmN2JhMTQxNWIyMjFhNTUxOGI4MzIuLmI4MTBkOTNlM2QxMmRjYjZhNjVmYzc4YjNkMWY5NWIw
NGZlZDBkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDItMTUgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gSWdub3JlIGFuIElQQyBt
ZXNzYWdlIGlmIHRoZSBtZXNzYWdlIHJlY2VpdmVyIGhhcyBiZWVuIGRlc3Ryb3llZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxOTIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBm
aXhpbmcgdGVzdCBjcmFzaGVzIGR1ZSB0byBhc3NlcnRpb24gZmFpbHVyZXMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjpsb2dnZXIpOgorICAgICAgICAoV2ViS2l0OjpHUFVQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorCiAyMDIxLTAyLTE1ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTaGFyZSBtb3JlIGNvZGUgYmV0d2VlbiBS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlIGFuZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCmluZGV4IDQ0N2EyMWE0ZDU4MTlhYzhmZGNlZWQxZTgwODc2OTg0YTM4MzcxNjQuLjkx
MGM3MmUyYjliM2U2ZGRiOThmMTM0MmZhZWU3NzQ2NDIwNGI1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0z
MiwxNCArMzIsMTkgQEAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3MuaCIKICNpbmNsdWRlICJMaWJXZWJSVEND
b2RlY3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNlUHJpdmF0
ZVJlbW90ZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVy
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5o
IgogI2luY2x1ZGUgIlJlbW90ZUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVDRE1Qcm94
eS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1v
dGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVy
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNs
dWRlICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC05NSw2ICsxMDAsMTQgQEAgdm9p
ZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKICAgICAg
ICAgY2xpZW50LmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoKnRoaXMpOwogfQogCitMb2dn
ZXImIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpsb2dnZXIoKQoreworICAgIGlmICghbV9sb2dnZXIp
CisgICAgICAgIG1fbG9nZ2VyID0gTG9nZ2VyOjpjcmVhdGUodGhpcyk7CisKKyAgICByZXR1cm4g
Km1fbG9nZ2VyOworfQorCiB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFtZSkKIHsKIH0KQEAg
LTE2MCwxMiArMTczLDcgQEAgYm9vbCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWMKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQotI2lmIFVTRShBVURJT19TRVNTSU9OKQotICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQotI2VuZGlmCisKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVDRE1GYWN0b3J5PigpLT5kaWRSZWNlaXZlU2Vzc2lv
bk1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CkBAIC0xNzcsMTAgKzE4NSw0MSBAQCBib29s
IEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlYwogCiAgICAgLy8gU2tpcCBtZXNzYWdlcyBpbnRlbmRlZCBmb3Ig
YWxyZWFkeSByZW1vdmVkIG1lc3NhZ2VSZWNlaXZlck1hcCgpIGRlc3RpbmF0aW9ucy4KICNpZiBF
TkFCTEUoV0VCR0wpCi0gICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1l
c3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViR0wsICJUaGUgUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eSBvYmplY3QgaGFzIGJlZWQgZGVzdHJveWVkIik7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyNlbmRpZgorCisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YSwgIlRoZSBSZW1vdGVBdWRpb1Nlc3Npb24gb2JqZWN0IGhhcyBiZWVkIGRlc3Ryb3llZCIpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIlRoZSBNZWRpYVNvdXJjZVByaXZhdGVSZW1v
dGUgb2JqZWN0IGhhcyBiZWVkIGRlc3Ryb3llZCIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6
OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIlRoZSBTb3VyY2VCdWZmZXJQcml2YXRlUmVt
b3RlIG9iamVjdCBoYXMgYmVlZCBkZXN0cm95ZWQiKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorI2VuZGlmCisKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0g
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVGhlIFJlbW90ZUF1ZGlv
SGFyZHdhcmVMaXN0ZW5lciBvYmplY3QgaGFzIGJlZWQgZGVzdHJveWVkIik7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSA9PSBNZXNzYWdlczo6UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJUaGUgUmVtb3Rl
UmVtb3RlQ29tbWFuZExpc3RlbmVyIG9iamVjdCBoYXMgYmVlZCBkZXN0cm95ZWQiKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKaW5k
ZXggYjBhNDU1YWRlM2M2NzRmYzlmMzQwM2ZlNjQyYTRhNTIwYzk0MDkxMi4uOGQ5NjIyM2U3NTcx
Mjk1MzFlZTc2NzhkYjk4ZjFmYmFmNzc1OTg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNz
aW9uLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KQEAgLTUyLDYgKzUzLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBHUFVQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOwogICAgIH0KICAg
ICB+R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKworICAgIExvZ2dlciYgbG9nZ2VyKCk7CiAgICAg
CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9u
LmdldCgpOyB9CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAmIG1lc3NhZ2VSZWNlaXZlck1h
cCgpIHsgcmV0dXJuIG1fbWVzc2FnZVJlY2VpdmVyTWFwOyB9CkBAIC0xMDAsNiArMTAzLDggQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIpOwogCisgICAgUmVmUHRyPExvZ2dlcj4gbV9sb2dnZXI7CisKICAgICAv
LyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
</data>
<flag name="review"
          id="438842"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420374</attachid>
            <date>2021-02-15 14:36:53 -0800</date>
            <delta_ts>2021-02-15 15:49:08 -0800</delta_ts>
            <desc>Revise the patch based on Eric&apos;s comment</desc>
            <filename>bug-221920-20210215143652.patch</filename>
            <type>text/plain</type>
            <size>4275</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNjODYzMTMyOTViYjEzNTFh
OTdiY2Q1NzI1YWIwMzAyNTBkYzNlMzIuLjFlZjlmMzNiMzlkYjAwNmIwZWJkMjg3NTBhMzFmMmQ3
M2RiMDczMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTUgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gSWdub3JlIGFuIElQQyBt
ZXNzYWdlIGlmIHRoZSBtZXNzYWdlIHJlY2VpdmVyIGhhcyBiZWVuIGRlc3Ryb3llZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxOTIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgZml4
aW5nIHRlc3QgY3Jhc2hlcyBkdWUgdG8gYXNzZXJ0aW9uIGZhaWx1cmVzLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKToKKwogMjAyMS0wMi0xNSAg
TWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICBGaXgg
LVd1bnVzZWQtdmFyaWFibGUgd2FybmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA0NDdhMjFhNGQ1ODE5YWM4
ZmRjZWVkMWU4MDg3Njk4NGEzODM3MTY0Li40YWJiNmUzZGIwNjJjNTgxZTMwNzg4Mjc0NWIzNDI2
N2E2OTM0NTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzIsMTQgKzMyLDE5IEBACiAjaW5jbHVkZSAiR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDQ29k
ZWNzLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVDRE1GYWN0b3J5
LmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lD
RE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgorI2luY2x1ZGUg
IlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2
YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
ICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oIgpAQCAtMTYwLDEyICsxNjUsNyBAQCBib29sIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaXNw
YXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlYwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0jaWYgVVNFKEFVRElPX1NFU1NJT04pCi0gICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSkgewotICAgICAgICAvLyBGSVhNRQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9Ci0jZW5kaWYKKwogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAg
aWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFJlbW90ZUNETUZhY3Rvcnk+KCktPmRpZFJlY2Vp
dmVTZXNzaW9uTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKQEAgLTE3NywxMCArMTc3LDQx
IEBAIGJvb2wgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjCiAKICAgICAvLyBTa2lwIG1lc3NhZ2VzIGludGVu
ZGVkIGZvciBhbHJlYWR5IHJlbW92ZWQgbWVzc2FnZVJlY2VpdmVyTWFwKCkgZGVzdGluYXRpb25z
LgogI2lmIEVOQUJMRShXRUJHTCkKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVz
c2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJHTCwgIlRoZSBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5IG9iamVjdCBoYXMgYmVlZCBkZXN0cm95ZWQiKTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBp
ZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
U2Vzc2lvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhLCAiVGhlIFJlbW90ZUF1ZGlvU2Vzc2lvbiBvYmplY3QgaGFzIGJlZWQgZGVzdHJv
eWVkIik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgorCisjaWYgRU5BQkxF
KE1FRElBX1NPVVJDRSkKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0g
TWVzc2FnZXM6Ok1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVGhlIE1lZGlhU291cmNlUHJp
dmF0ZVJlbW90ZSBvYmplY3QgaGFzIGJlZWQgZGVzdHJveWVkIik7CiAgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBN
ZXNzYWdlczo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiVGhlIFNvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGUgb2JqZWN0IGhhcyBiZWVkIGRlc3Ryb3llZCIpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CiAjZW5kaWYKIAorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJUaGUgUmVt
b3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyIG9iamVjdCBoYXMgYmVlZCBkZXN0cm95ZWQiKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2Vp
dmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIlRo
ZSBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXIgb2JqZWN0IGhhcyBiZWVkIGRlc3Ryb3llZCIp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>