<?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>220482</bug_id>
          
          <creation_ts>2021-01-08 14:24:31 -0800</creation_ts>
          <short_desc>Crash at SOAuthorizationSession::dismissViewController</short_desc>
          <delta_ts>2021-01-13 15:19:29 -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>WebKit Misc.</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="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>darin</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1718442</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-08 14:24:31 -0800</bug_when>
    <thetext>Crash at SOAuthorizationSession::dismissViewController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718443</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-08 14:24:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/72375494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718448</commentid>
    <comment_count>2</comment_count>
      <attachid>417304</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-08 14:37:31 -0800</bug_when>
    <thetext>Created attachment 417304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718655</commentid>
    <comment_count>3</comment_count>
      <attachid>417304</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-11 04:33:05 -0800</bug_when>
    <thetext>Comment on attachment 417304
Patch

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

&gt; Source/WebKit/ChangeLog:16
&gt; +        chooses the latter.

Or SOAuthorizationSession::dismissViewController() is called from a background thread.

&gt; Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:305
&gt; +            m_presentingWindowDidDeminiaturizeObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSWindowDidDeminiaturizeNotification object:presentingWindow queue:nil usingBlock:[weakThis = makeRefPtr(this), this] (NSNotification *) {

Should be weakThis = makeWeakPtr(this) probably.

&gt; Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:321
&gt; +        m_applicationDidUnhideObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSApplicationDidUnhideNotification object:NSApp queue:nil usingBlock:[weakThis = makeRefPtr(this), this] (NSNotification *) {

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718782</commentid>
    <comment_count>4</comment_count>
      <attachid>417304</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-11 12:37:35 -0800</bug_when>
    <thetext>Comment on attachment 417304
Patch

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

Thanks Youenn for r+ this patch. Actually, I just realized that the object needs to be kept alive during the process. Therefore, I made another patch that utilized ThreadSafeRefCounted.

&gt;&gt; Source/WebKit/ChangeLog:16
&gt;&gt; +        chooses the latter.
&gt; 
&gt; Or SOAuthorizationSession::dismissViewController() is called from a background thread.

No, it&apos;s not. It&apos;s called from the main thread.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:305
&gt;&gt; +            m_presentingWindowDidDeminiaturizeObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSWindowDidDeminiaturizeNotification object:presentingWindow queue:nil usingBlock:[weakThis = makeRefPtr(this), this] (NSNotification *) {
&gt; 
&gt; Should be weakThis = makeWeakPtr(this) probably.

Oops.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:321
&gt;&gt; +        m_applicationDidUnhideObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSApplicationDidUnhideNotification object:NSApp queue:nil usingBlock:[weakThis = makeRefPtr(this), this] (NSNotification *) {
&gt; 
&gt; Ditto

Oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718783</commentid>
    <comment_count>5</comment_count>
      <attachid>417401</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-11 12:39:57 -0800</bug_when>
    <thetext>Created attachment 417401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718787</commentid>
    <comment_count>6</comment_count>
      <attachid>417401</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-11 12:51:11 -0800</bug_when>
    <thetext>Comment on attachment 417401
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h:54
&gt; +class SOAuthorizationSession : public ThreadSafeRefCounted&lt;SOAuthorizationSession&gt;, public CanMakeWeakPtr&lt;SOAuthorizationSession&gt; {

You probably should mark it as DestructionThread::MainRunLoop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718860</commentid>
    <comment_count>7</comment_count>
      <attachid>417419</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-11 16:17:31 -0800</bug_when>
    <thetext>Created attachment 417419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718861</commentid>
    <comment_count>8</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-11 16:17:41 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #6)
&gt; Comment on attachment 417401 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=417401&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h:54
&gt; &gt; +class SOAuthorizationSession : public ThreadSafeRefCounted&lt;SOAuthorizationSession&gt;, public CanMakeWeakPtr&lt;SOAuthorizationSession&gt; {
&gt; 
&gt; You probably should mark it as DestructionThread::MainRunLoop.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719381</commentid>
    <comment_count>9</comment_count>
      <attachid>417419</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-13 12:06:26 -0800</bug_when>
    <thetext>Comment on attachment 417419
Patch

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

&gt; Source/WebKit/ChangeLog:15
&gt; +        One of the possible explanations is that the RefPtr is somehow over-released within NSNotificationCenter since
&gt; +        it&apos;s not thread-safe. To fix that, the RefPtr can be made thread-safe.

This is a *highly* likely explanation. I wish the change log wasn&apos;t so obliquely worded; it’s good to be humble that we aren’t sure, but maybe this is too tentative.

Generally speaking, it’s *not* safe to have RefPtr fields inside Objective-C objects since Objective-C retain/release and deallocation are thread-safe and it’s common for them to happen on a non-main thread. Even an object that is normally only *used* on the main thread can often be *deallocated* on a non-main thread. WebCoreObjCScheduleDeallocateOnMainThread was created as one solution for this issue that does not require changes to the reference counting of the C++ objects.

We should look for other examples of this mistake in WebKit, starting with RefPtr fields in Objective-C objects as well as code manipulating C++ reference-counted objects in dealloc methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719448</commentid>
    <comment_count>10</comment_count>
      <attachid>417419</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-01-13 15:11:49 -0800</bug_when>
    <thetext>Comment on attachment 417419
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:15
&gt;&gt; +        it&apos;s not thread-safe. To fix that, the RefPtr can be made thread-safe.
&gt; 
&gt; This is a *highly* likely explanation. I wish the change log wasn&apos;t so obliquely worded; it’s good to be humble that we aren’t sure, but maybe this is too tentative.
&gt; 
&gt; Generally speaking, it’s *not* safe to have RefPtr fields inside Objective-C objects since Objective-C retain/release and deallocation are thread-safe and it’s common for them to happen on a non-main thread. Even an object that is normally only *used* on the main thread can often be *deallocated* on a non-main thread. WebCoreObjCScheduleDeallocateOnMainThread was created as one solution for this issue that does not require changes to the reference counting of the C++ objects.
&gt; 
&gt; We should look for other examples of this mistake in WebKit, starting with RefPtr fields in Objective-C objects as well as code manipulating C++ reference-counted objects in dealloc methods.

Thanks Darin for r+ this patch. Right, I think it is a good approach to have some sort of helper classes and coding style rules to reduce the chance of making this kind of mistakes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719455</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-13 15:19:28 -0800</bug_when>
    <thetext>Committed r271467: &lt;https://trac.webkit.org/changeset/271467&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417419.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417304</attachid>
            <date>2021-01-08 14:37:31 -0800</date>
            <delta_ts>2021-01-11 12:39:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220482-20210108143730.patch</filename>
            <type>text/plain</type>
            <size>3885</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI0MWZmN2EwOThmMjg5Nzlm
YTZhYjk0ODViMGRmMzE4MjI1ZGJhMzguLjc2ZGIyNzNiYmU3MDJlZTliMzI4ZmEzNGI4NWMyYWIx
OGJkNzZkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDEtMDggIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCBhdCBTT0F1dGhvcml6
YXRpb25TZXNzaW9uOjpkaXNtaXNzVmlld0NvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDQ4MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzIzNzU0OTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQSBjcmFzaCByZXBvcnQgc3VnZ2VzdHMgdGhhdCBTT0F1dGhvcml6YXRpb25TZXNzaW9u
OjpkaXNtaXNzVmlld0NvbnRyb2xsZXIgY291bGQgY3Jhc2ggYXQgZXZhbHVhdGluZyBtX3BhZ2Uu
CisgICAgICAgIFRoaXMgY291bGQgb25seSBoYXBwZW4gaWYgdGhlIFNPQXV0aG9yaXphdGlvblNl
c3Npb24gb2JqZWN0IGlzIGZyZWVkLiBUaGUgc3RhY2sgdHJhY2Ugc3RhcnRzIHdpdGggY2FsbGJh
Y2tzCisgICAgICAgIGZyb20gTlNOb3RpZmljYXRpb25DZW50ZXIsIHdoaWNoIGNhcHR1cmUgYSBS
ZWZQdHIgb2YgdGhlIFNPQXV0aG9yaXphdGlvblNlc3Npb24gb2JqZWN0IGFuZCBzaG91bGQgZ3Vh
cmFudGVlCisgICAgICAgIHRoZSBsaWZldGltZSBvZiB0aGUgb2JqZWN0LiBTbyBpdCBjb250cmFk
aWN0cyB0aGUgY3Jhc2ggcmVwb3J0LgorCisgICAgICAgIE9uZSBvZiB0aGUgcG9zc2libGUgZXhw
bGFuYXRpb25zIGlzIHRoYXQgdGhlIFJlZlB0ciBpcyBzb21laG93IG92ZXItcmVsZWFzZWQgd2l0
aGluIE5TTm90aWZpY2F0aW9uQ2VudGVyIHNpbmNlCisgICAgICAgIGl0J3Mgbm90IHRocmVhZC1z
YWZlLiBUbyBmaXggdGhhdCwgdGhlIFJlZlB0ciBjYW4gYmUgbWFkZSB0aHJlYWQtc2FmZSBvciB3
ZSB1c2UgYSBXZWFrUHRyIGluc3RlYWQuIFRoZSBwYXRjaAorICAgICAgICBjaG9vc2VzIHRoZSBs
YXR0ZXIuCisKKyAgICAgICAgTm8gdGVzdHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
U09BdXRob3JpemF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW06CisgICAgICAgIChXZWJL
aXQ6OlNPQXV0aG9yaXphdGlvblNlc3Npb246OmRpc21pc3NWaWV3Q29udHJvbGxlcik6CisKIDIw
MjEtMDEtMDcgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNd
IFByZXBlbmQgIk1lZGlhIiB0byBGb3JtYXRSZWFkZXIsIFNhbXBsZUN1cnNvciwgYW5kIFRyYWNr
UmVhZGVyIGNsYXNzIG5hbWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9TT0F1dGhvcml6YXRpb24vU09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25TZXNz
aW9uLm1tCmluZGV4IGMwNDM4YmRkYzFmZDAzMDgzYTQyZTkzODYxOWI0OWNlNjg1ZWE1OGQuLmMy
NGMyYzNlNGY5NDRiMDgxYTQ0YmNmYjVhODE3MmE4ZjI2NGJiMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25T
ZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXph
dGlvbi9TT0F1dGhvcml6YXRpb25TZXNzaW9uLm1tCkBAIC0zMDIsNyArMzAyLDExIEBAIHZvaWQg
U09BdXRob3JpemF0aW9uU2Vzc2lvbjo6ZGlzbWlzc1ZpZXdDb250cm9sbGVyKCkKICAgICAgICAg
aWYgKHByZXNlbnRpbmdXaW5kb3cubWluaWF0dXJpemVkKSB7CiAgICAgICAgICAgICBpZiAobV9w
cmVzZW50aW5nV2luZG93RGlkRGVtaW5pYXR1cml6ZU9ic2VydmVyKQogICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIG1fcHJlc2VudGluZ1dpbmRvd0RpZERlbWluaWF0dXJpemVP
YnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2
ZXJGb3JOYW1lOk5TV2luZG93RGlkRGVtaW5pYXR1cml6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6cHJl
c2VudGluZ1dpbmRvdyBxdWV1ZTpuaWwgdXNpbmdCbG9jazpbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWZQdHIodGhpcyksIHRoaXNdIChOU05vdGlmaWNhdGlvbiAqKSB7CisgICAgICAgICAgICBtX3By
ZXNlbnRpbmdXaW5kb3dEaWREZW1pbmlhdHVyaXplT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU1dpbmRvd0RpZERlbWlu
aWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OnByZXNlbnRpbmdXaW5kb3cgcXVldWU6bmlsIHVz
aW5nQmxvY2s6W3dlYWtUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10gKE5TTm90aWZpY2F0
aW9uICopIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAg
ICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KwogICAgICAgICAgICAgICAgIGRpc21pc3NWaWV3Q29udHJvbGxlcigpOwogICAgICAgICAgICAg
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6
bV9wcmVzZW50aW5nV2luZG93RGlkRGVtaW5pYXR1cml6ZU9ic2VydmVyLmdldCgpXTsKICAgICAg
ICAgICAgICAgICBtX3ByZXNlbnRpbmdXaW5kb3dEaWREZW1pbmlhdHVyaXplT2JzZXJ2ZXIgPSBu
dWxscHRyOwpAQCAtMzE0LDcgKzMxOCwxMSBAQCB2b2lkIFNPQXV0aG9yaXphdGlvblNlc3Npb246
OmRpc21pc3NWaWV3Q29udHJvbGxlcigpCiAgICAgaWYgKE5TQXBwLmhpZGRlbikgewogICAgICAg
ICBpZiAobV9hcHBsaWNhdGlvbkRpZFVuaGlkZU9ic2VydmVyKQogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBtX2FwcGxpY2F0aW9uRGlkVW5oaWRlT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0aW9u
RGlkVW5oaWRlTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwgdXNpbmdCbG9jazpb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXNdIChOU05vdGlmaWNhdGlvbiAq
KSB7CisgICAgICAgIG1fYXBwbGljYXRpb25EaWRVbmhpZGVPYnNlcnZlciA9IFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRp
b25EaWRVbmhpZGVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbCB1c2luZ0Jsb2Nr
Olt3ZWFrVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXNdIChOU05vdGlmaWNhdGlvbiAqKSB7
CisgICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgICAgIGRpc21p
c3NWaWV3Q29udHJvbGxlcigpOwogICAgICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2FwcGxpY2F0aW9uRGlkVW5oaWRlT2JzZXJ2
ZXIuZ2V0KCldOwogICAgICAgICAgICAgbV9hcHBsaWNhdGlvbkRpZFVuaGlkZU9ic2VydmVyID0g
bnVsbHB0cjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417401</attachid>
            <date>2021-01-11 12:39:57 -0800</date>
            <delta_ts>2021-01-11 16:17:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220482-20210111123956.patch</filename>
            <type>text/plain</type>
            <size>2539</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI0MWZmN2EwOThmMjg5Nzlm
YTZhYjk0ODViMGRmMzE4MjI1ZGJhMzguLmUyN2M3NDdlNWRhOWY1NjA5NTc1YTVkNjAxY2RmZmIz
NDBhMDVhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDEtMDggIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCBhdCBTT0F1dGhvcml6
YXRpb25TZXNzaW9uOjpkaXNtaXNzVmlld0NvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDQ4MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzIzNzU0OTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQSBjcmFzaCByZXBvcnQgc3VnZ2VzdHMgdGhhdCBTT0F1dGhvcml6YXRpb25TZXNzaW9u
OjpkaXNtaXNzVmlld0NvbnRyb2xsZXIgY291bGQgY3Jhc2ggYXQgZXZhbHVhdGluZyBtX3BhZ2Uu
CisgICAgICAgIFRoaXMgY291bGQgb25seSBoYXBwZW4gaWYgdGhlIFNPQXV0aG9yaXphdGlvblNl
c3Npb24gb2JqZWN0IGlzIGZyZWVkLiBUaGUgc3RhY2sgdHJhY2Ugc3RhcnRzIHdpdGggY2FsbGJh
Y2tzCisgICAgICAgIGZyb20gTlNOb3RpZmljYXRpb25DZW50ZXIsIHdoaWNoIGNhcHR1cmUgYSBS
ZWZQdHIgb2YgdGhlIFNPQXV0aG9yaXphdGlvblNlc3Npb24gb2JqZWN0IGFuZCBzaG91bGQgZ3Vh
cmFudGVlCisgICAgICAgIHRoZSBsaWZldGltZSBvZiB0aGUgb2JqZWN0LiBTbyBpdCBjb250cmFk
aWN0cyB0aGUgY3Jhc2ggcmVwb3J0LgorCisgICAgICAgIE9uZSBvZiB0aGUgcG9zc2libGUgZXhw
bGFuYXRpb25zIGlzIHRoYXQgdGhlIFJlZlB0ciBpcyBzb21laG93IG92ZXItcmVsZWFzZWQgd2l0
aGluIE5TTm90aWZpY2F0aW9uQ2VudGVyIHNpbmNlCisgICAgICAgIGl0J3Mgbm90IHRocmVhZC1z
YWZlLiBUbyBmaXggdGhhdCwgdGhlIFJlZlB0ciBjYW4gYmUgbWFkZSB0aHJlYWQtc2FmZS4KKwor
ICAgICAgICBObyB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6
YXRpb24vU09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKFdlYktpdDo6U09BdXRo
b3JpemF0aW9uU2Vzc2lvbjo6ZGlzbWlzc1ZpZXdDb250cm9sbGVyKToKKwogMjAyMS0wMS0wNyAg
QW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gUHJlcGVuZCAi
TWVkaWEiIHRvIEZvcm1hdFJlYWRlciwgU2FtcGxlQ3Vyc29yLCBhbmQgVHJhY2tSZWFkZXIgY2xh
c3MgbmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0
aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oCmluZGV4
IGM2YmE3ZTJhNjhhZTYyZjYzZDgzN2Q5YWExZGU1Y2I3ODgzOTJhMmUuLjRkOWI5MjkzNmQ3NWQ3
MWM3YTI2N2EwZmFhMDhlMTY0NmQ4MzllOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25TZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NPQXV0aG9y
aXphdGlvblNlc3Npb24uaApAQCAtMjksOCArMjksOCBAQAogCiAjaW5jbHVkZSA8cGFsL3NwaS9j
b2NvYS9BcHBTU09TUEkuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrT2JqQ1B0ci5oPgog
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgV2ViUGFn
ZVByb3h5OwogZW51bSBjbGFzcyBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5IDogdWludDhfdDsK
IAogLy8gQSBzZXNzaW9uIHdpbGwgb25seSBiZSBleGVjdXRlZCBvbmNlLgotY2xhc3MgU09BdXRo
b3JpemF0aW9uU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNPQXV0aG9yaXphdGlvblNlc3Np
b24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U09BdXRob3JpemF0aW9uU2Vzc2lvbj4geworY2xh
c3MgU09BdXRob3JpemF0aW9uU2Vzc2lvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxT
T0F1dGhvcml6YXRpb25TZXNzaW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNPQXV0aG9yaXph
dGlvblNlc3Npb24+IHsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIEluaXRpYXRpbmdBY3Rpb24g
OiB1aW50OF90IHsKICAgICAgICAgUmVkaXJlY3QsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417419</attachid>
            <date>2021-01-11 16:17:31 -0800</date>
            <delta_ts>2021-01-13 15:19:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220482-20210111161730.patch</filename>
            <type>text/plain</type>
            <size>2576</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI0MWZmN2EwOThmMjg5Nzlm
YTZhYjk0ODViMGRmMzE4MjI1ZGJhMzguLmUyN2M3NDdlNWRhOWY1NjA5NTc1YTVkNjAxY2RmZmIz
NDBhMDVhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDEtMDggIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCBhdCBTT0F1dGhvcml6
YXRpb25TZXNzaW9uOjpkaXNtaXNzVmlld0NvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDQ4MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzIzNzU0OTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQSBjcmFzaCByZXBvcnQgc3VnZ2VzdHMgdGhhdCBTT0F1dGhvcml6YXRpb25TZXNzaW9u
OjpkaXNtaXNzVmlld0NvbnRyb2xsZXIgY291bGQgY3Jhc2ggYXQgZXZhbHVhdGluZyBtX3BhZ2Uu
CisgICAgICAgIFRoaXMgY291bGQgb25seSBoYXBwZW4gaWYgdGhlIFNPQXV0aG9yaXphdGlvblNl
c3Npb24gb2JqZWN0IGlzIGZyZWVkLiBUaGUgc3RhY2sgdHJhY2Ugc3RhcnRzIHdpdGggY2FsbGJh
Y2tzCisgICAgICAgIGZyb20gTlNOb3RpZmljYXRpb25DZW50ZXIsIHdoaWNoIGNhcHR1cmUgYSBS
ZWZQdHIgb2YgdGhlIFNPQXV0aG9yaXphdGlvblNlc3Npb24gb2JqZWN0IGFuZCBzaG91bGQgZ3Vh
cmFudGVlCisgICAgICAgIHRoZSBsaWZldGltZSBvZiB0aGUgb2JqZWN0LiBTbyBpdCBjb250cmFk
aWN0cyB0aGUgY3Jhc2ggcmVwb3J0LgorCisgICAgICAgIE9uZSBvZiB0aGUgcG9zc2libGUgZXhw
bGFuYXRpb25zIGlzIHRoYXQgdGhlIFJlZlB0ciBpcyBzb21laG93IG92ZXItcmVsZWFzZWQgd2l0
aGluIE5TTm90aWZpY2F0aW9uQ2VudGVyIHNpbmNlCisgICAgICAgIGl0J3Mgbm90IHRocmVhZC1z
YWZlLiBUbyBmaXggdGhhdCwgdGhlIFJlZlB0ciBjYW4gYmUgbWFkZSB0aHJlYWQtc2FmZS4KKwor
ICAgICAgICBObyB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6
YXRpb24vU09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKFdlYktpdDo6U09BdXRo
b3JpemF0aW9uU2Vzc2lvbjo6ZGlzbWlzc1ZpZXdDb250cm9sbGVyKToKKwogMjAyMS0wMS0wNyAg
QW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gUHJlcGVuZCAi
TWVkaWEiIHRvIEZvcm1hdFJlYWRlciwgU2FtcGxlQ3Vyc29yLCBhbmQgVHJhY2tSZWFkZXIgY2xh
c3MgbmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0
aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oCmluZGV4
IGM2YmE3ZTJhNjhhZTYyZjYzZDgzN2Q5YWExZGU1Y2I3ODgzOTJhMmUuLjk5MmI1ZjMzNzNlZjgy
NzBhY2UwNDE5YjgzYmQwZDI1YmE0NDRlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TT0F1dGhvcml6YXRpb25TZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NPQXV0aG9y
aXphdGlvblNlc3Npb24uaApAQCAtMjksOCArMjksOCBAQAogCiAjaW5jbHVkZSA8cGFsL3NwaS9j
b2NvYS9BcHBTU09TUEkuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrT2JqQ1B0ci5oPgog
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgV2ViUGFn
ZVByb3h5OwogZW51bSBjbGFzcyBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5IDogdWludDhfdDsK
IAogLy8gQSBzZXNzaW9uIHdpbGwgb25seSBiZSBleGVjdXRlZCBvbmNlLgotY2xhc3MgU09BdXRo
b3JpemF0aW9uU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNPQXV0aG9yaXphdGlvblNlc3Np
b24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U09BdXRob3JpemF0aW9uU2Vzc2lvbj4geworY2xh
c3MgU09BdXRob3JpemF0aW9uU2Vzc2lvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxT
T0F1dGhvcml6YXRpb25TZXNzaW9uLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVuTG9v
cD4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTT0F1dGhvcml6YXRpb25TZXNzaW9uPiB7CiBwdWJs
aWM6CiAgICAgZW51bSBjbGFzcyBJbml0aWF0aW5nQWN0aW9uIDogdWludDhfdCB7CiAgICAgICAg
IFJlZGlyZWN0LAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>