<?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>218448</bug_id>
          
          <creation_ts>2020-11-02 08:56:52 -0800</creation_ts>
          <short_desc>Crash under ProcessThrottler::setAssertionType()</short_desc>
          <delta_ts>2020-11-02 11:02:02 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1703538</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-02 08:56:52 -0800</bug_when>
    <thetext>Crash under ProcessThrottler::setAssertionType():
Thread[0] EXC_BAD_ACCESS (SIGSEGV) (KERN_INVALID_ADDRESS at 0x0000000000000028)
[  0] 0x00000001b458201c WebKit`WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType) [inlined] std::__1::unique_ptr&lt;WTF::Detail::CallableWrapperBase&lt;void&gt;, std::__1::default_delete&lt;WTF::Detail::CallableWrapperBase&lt;void&gt; &gt; &gt;::reset(WTF::Detail::CallableWrapperBase&lt;void&gt;*) at memory:2620:28

     0x00000001b458200c:      add x16, x16, #0xb48     ; =0xb48 
     0x00000001b4582010:      add x16, x16, #0x10      ; =0x10 
     0x00000001b4582014:   pacdza x16
     0x00000001b4582018:      stp x16, x20, [x0]
 -&gt;  0x00000001b458201c:      ldr x0, [x21, #0x28]
     0x00000001b4582020:      str x8, [x21, #0x28]
     0x00000001b4582024:      cbz x0, 0x2e1038         ; &lt;+572&gt; at ProcessThrottler.cpp:142:5
     0x00000001b4582028:      ldr x8, [x0]
     0x00000001b458202c:    ldraa x9, [x8, #0x8]!

[  0] 0x00000001b458201c WebKit`WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType) [inlined] std::__1::unique_ptr&lt;WTF::Detail::CallableWrapperBase&lt;void&gt;, std::__1::default_delete&lt;WTF::Detail::CallableWrapperBase&lt;void&gt; &gt; &gt;::operator=(std::__1::unique_ptr&lt;WTF::Detail::CallableWrapperBase&lt;void&gt;, std::__1::default_delete&lt;WTF::Detail::CallableWrapperBase&lt;void&gt; &gt; &gt;&amp;&amp;) at memory:2542
[  0] 0x00000001b458201c WebKit`WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType) [inlined] WTF::Function&lt;void ()&gt;::operator=(WTF::Function&lt;void ()&gt;&amp;&amp;) at Function.h:59
[  0] 0x00000001b458201c WebKit`WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType) [inlined] WebKit::ProcessAssertion::setInvalidationHandler(WTF::Function&lt;void ()&gt;&amp;&amp;) at ProcessAssertion.h:64
       60  	public:
       61  	    ProcessAssertion(ProcessID, const String&amp; reason, ProcessAssertionType);
       62  	    virtual ~ProcessAssertion();
       63  	
    -&gt; 64  	    void setInvalidationHandler(Function&lt;void()&gt;&amp;&amp; handler) { m_invalidationHandler = WTFMove(handler); }
       65  	
       66  	    ProcessAssertionType type() const { return m_assertionType; }
       67  	    ProcessID pid() const { return m_pid; }
       68  	
    
[  0] 0x00000001b458201c WebKit`WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType) + 544 at ProcessThrottler.cpp:139
       135 	        m_assertion = WTFMove(assertion);
       136 	    } else
       137 	        m_assertion = makeUnique&lt;ProcessAssertion&gt;(m_processIdentifier, assertionName(newType), newType);
       138 	
    -&gt; 139 	    m_assertion-&gt;setInvalidationHandler([this] {
       140 	        assertionWasInvalidated();
       141 	    });
       142 	    m_process.didSetAssertionType(newType);
       143 	}
    
[  1] 0x00000001b4582003 WebKit`WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType) [inlined] WTF::Detail::CallableWrapperBase&lt;void&gt;::operator new(unsigned long) + 7 at Function.h:37:5
[  1] 0x00000001b4581ffc WebKit`WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType) [inlined] std::__1::__unique_if&lt;WTF::Detail::CallableWrapper&lt;WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType)::$_2, void&gt; &gt;::__unique_single std::__1::make_unique&lt;WTF::Detail::CallableWrapper&lt;WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType)::$_2, void&gt;, WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType)::$_2&gt;(WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType)::$_2&amp;&amp;) at memory:3033
[  1] 0x00000001b4581ffc WebKit`WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType) [inlined] decltype(auto) WTF::makeUnique&lt;WTF::Detail::CallableWrapper&lt;WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType)::$_2, void&gt;, WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType)::$_2&gt;(WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType)::$_2&amp;&amp;) at StdLibExtras.h:510
[  1] 0x00000001b4581ffc WebKit`WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType) [inlined] WTF::Function&lt;void ()&gt;::Function&lt;WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType)::$_2, void&gt;(WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType)::$_2&amp;&amp;) at Function.h:74
[  1] 0x00000001b4581ffc WebKit`WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType) [inlined] WTF::Function&lt;void ()&gt;::Function&lt;WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType)::$_2, void&gt;(WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType)::$_2&amp;&amp;) at Function.h:74
[  1] 0x00000001b4581ffc WebKit`WebKit::ProcessThrottler::setAssertionType(WebKit::ProcessAssertionType) + 512 at ProcessThrottler.cpp:139
[  2] 0x00000001b4587903 WebKit`WTF::Detail::CallableWrapper&lt;WebKit::ProcessThrottler::sendPrepareToSuspendIPC(WebKit::IsSuspensionImminent)::$_3, void&gt;::call() [inlined] WebKit::ProcessThrottler::processReadyToSuspend() + 131 at ProcessThrottler.cpp:198:9
[  2] 0x00000001b4587880 WebKit`WTF::Detail::CallableWrapper&lt;WebKit::ProcessThrottler::sendPrepareToSuspendIPC(WebKit::IsSuspensionImminent)::$_3, void&gt;::call() [inlined] WebKit::ProcessThrottler::sendPrepareToSuspendIPC(WebKit::IsSuspensionImminent)::$_3::operator()() + 44 at ProcessThrottler.cpp:219
[  2] 0x00000001b4587854 WebKit`WTF::Detail::CallableWrapper&lt;WebKit::ProcessThrottler::sendPrepareToSuspendIPC(WebKit::IsSuspensionImminent)::$_3, void&gt;::call() + 36 at Function.h:52</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703540</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-02 08:57:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/67419221&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703550</commentid>
    <comment_count>2</comment_count>
      <attachid>412929</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-02 09:08:51 -0800</bug_when>
    <thetext>Created attachment 412929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703574</commentid>
    <comment_count>3</comment_count>
      <attachid>412929</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-11-02 10:18:17 -0800</bug_when>
    <thetext>Comment on attachment 412929
Patch

r=me

I see that some unrelated improvements are possible in this file: (1) rename computesEmpty to computeIsEmpty; (2) Use RunLoop::dispatch() instead of libdispatch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703603</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-02 11:02:00 -0800</bug_when>
    <thetext>Committed r269256: &lt;https://trac.webkit.org/changeset/269256&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412929.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412929</attachid>
            <date>2020-11-02 09:08:51 -0800</date>
            <delta_ts>2020-11-02 11:02:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218448-20201102090850.patch</filename>
            <type>text/plain</type>
            <size>3891</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3OTE3NWQ2MDVkZjY2ZDFj
ZThlNGUxYTBmMjgzMTI5MWIwZjFjNzEuLmNjNmMyZGU0YWUzMWE5ODlmNGQ3NGFlMDc3ODYzMDA0
OTQwOGQyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMTEtMDIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCB1bmRlciBQcm9jZXNzVGhy
b3R0bGVyOjpzZXRBc3NlcnRpb25UeXBlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxODQ0OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjc0MTky
MjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBQ
cm9jZXNzVGhyb3R0bGVyIG9iamVjdCBpcyBvd25lZCBieSBpdHMgYXNzb2NpYXRlZCBBdXhpbGlh
cnlQcm9jZXNzUHJveHkuIFRoZSBjcmFzaCB3YXMgaGFwcGVuaW5nCisgICAgICAgIGluIFByb2Nl
c3NUaHJvdHRsZXI6OnNldEFzc2VydGlvblR5cGUoKSwgd2Ugd291bGQgcmVwbGFjZSBtX2Fzc2Vy
dGlvbiB3aXRoIGEgbmV3ICJTdXNwZW5kZWQiCisgICAgICAgIGFzc2VydGlvbiBhbmQgdGhlbiBj
cmFzaCBvbiB0aGUgbmV4dCBsaW5lIHdoZW4gdXNpbmcgbV9hc3NlcnRpb24uIFRoZSByZWFzb24g
d2UgY3Jhc2ggaXMgdGhhdAorICAgICAgICB3aGVuIHdlIHJlcGxhY2VkIG1fYXNzZXJ0aW9uIHdp
dGggYSBuZXcgYXNzZXJ0aW9uLCB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIHByZXZpb3VzIGFzc2Vy
dGlvbgorICAgICAgICBjYXVzZWQgdGhlIFVJUHJvY2VzcydzIGJhY2tncm91bmQgdGFzayB0byBn
ZXQgcmVsZWFzZWQgKGJlY2F1c2UgdGhpcyB3YXMgdGhlIGxhc3Qgbm9uLXN1c3BlbmRlZAorICAg
ICAgICBwcm9jZXNzIGFzc2VydGlvbikuIFdoZW4gd2UgcmVsZWFzZSB0aGUgVUlQcm9jZXNzJyBi
YWNrZ3JvdW5kIHRhc2ssIHdlIGNhbGwKKyAgICAgICAgV2ViUHJvY2Vzc1Bvb2w6Om5vdGlmeVBy
b2Nlc3NQb29sc0FwcGxpY2F0aW9uSXNBYm91dFRvU3VzcGVuZCgpLCB3aGljaCBkZXN0cm95cyBu
b24tY3JpdGljYWwKKyAgICAgICAgV2ViUHJvY2Vzc2VzIChlLmcuIFdlYlByb2Nlc3NlcyBpbiB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlKSwgd2hpY2ggaW4gdHVybnMgZGVzdHJveSB0aGVpcgorICAg
ICAgICBQcm9jZXNzVGhyb3R0bGVyLiBBcyBhIHJlc3VsdCwgd2hlbiByZXBsYWNpbmcgbV9hc3Nl
cnRpb24sIHRoZSBQcm9jZXNzQXNzZXJ0aW9uIG1heSBnZXQKKyAgICAgICAgZGVzdHJveWVkLCB3
aGljaCBpcyB3aHkgd2Ugd291bGQgY3Jhc2ggb24gdGhlIG5leHQgbGluZSB3aGVuIHRyeWluZyB0
byB1c2UgbV9hc3NlcnRpb24uCisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGUgaXNzdWUsIHdlIG5v
dyByZWxlYXNlIHRoZSBVSVByb2Nlc3MncyBiYWNrZ3JvdW5kIHRhc2sgYXN5bmNocm9ub3VzbHkg
d2hlbgorICAgICAgICByZWxlYXNpbmcgdGhlIGxhc3Qgbm9uLXN1c3BlbmRlZCBQcm9jZXNzQXNz
ZXJ0aW9uLCBtYWtpbmcgc3VyZSB3ZSBzdGlsbCBuZWVkIHRvIHJlbGVhc2UKKyAgICAgICAgdGhl
IGFzc2VydGlvbiBiZWZvcmVoYW5kLiBUaGlzIGhhcyAyIGJlbmVmaXRzOgorICAgICAgICAtIFRo
ZSBQcm9jZXNzVGhyb3R0bGVyIGNhbiBubyBsb25nZXIgZ2V0IGRlc3Ryb3llZCBzeW5jaHJvbm91
c2x5IHdoZW4gcmVsZWFzaW5nIGl0cworICAgICAgICAgIFByb2Nlc3NBc3NlcnRpb24uCisgICAg
ICAgIC0gSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIFByb2Nlc3NUaHJvdHRsZXIgcmVwbGFjZXMgYSBm
b3JlZ3JvdW5kIGFzc2VydGlvbiB3aXRoIGEgYmFja2dyb3VuZAorICAgICAgICAgIGFzc2VydGlv
biAob3IgdmljZS12ZXJzYSkgYW5kIHRoaXMgaXMgdGhlIGxhc3Qgbm9uLXN1c3BlbmRlZCBhc3Nl
cnRpb24sIHRoaXMgYXZvaWRzCisgICAgICAgICAgdW5uZWNlc3NhcmlseSByZWxlYXNpbmcgYW5k
IHJldGFraW5nIHRoZSBVSVByb2Nlc3MncyBiYWNrZ3JvdW5kIHRhc2suIFRoaXMgYWxzbyBhdm9p
ZHMKKyAgICAgICAgICBraWxsaW5nIG5vbi1jcml0aWNhbCBwcm9jZXNzZXMgdW5uZWNlc3Nhcmls
eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbToKKyAg
ICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIF91cGRhdGVC
YWNrZ3JvdW5kVGFza10pOgorCiAyMDIwLTExLTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBTdG9wIHNlbmRpbmcgb3JpZ2lucyBmcm9tIFdlYlByb2Nlc3Mg
dG8gVUlQcm9jZXNzIGZvciBnZXRVc2VyTWVkaWEgcmVxdWVzdHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KaW5kZXggMDUzNGU1NzAw
Yjg5YWRhODM5YjhiNTlmMGYxZDA1YzFhOWVhYzE3NS4uZGI4YWNiNzUyMGZhYjU4M2ZmMWY5Nzkx
YmQ5NjFiNWFmYzkyNTI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KQEAgLTE3OSw4ICsxNzksMTQgQEAgLSAodm9pZClfdXBk
YXRlQmFja2dyb3VuZFRhc2sKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NT
dXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBGYWls
ZWQgdG8gYWNxdWlyZSBGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSBhc3NlcnRpb24gZm9yIG93biBw
cm9jZXNzLCBlcnJvcjogJXtwdWJsaWN9QCIsIGFjcXVpc2l0aW9uRXJyb3IpOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIldLUHJvY2Vz
c0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogU3VjY2Vzc2Z1bGx5IHRvb2sgYSBGaW5p
c2hUYXNrSW50ZXJydXB0YWJsZSBhc3NlcnRpb24gZm9yIG93biBwcm9jZXNzIik7Ci0gICAgfSBl
bHNlIGlmIChfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5jb21wdXRlc0VtcHR5KCkp
Ci0gICAgICAgIFtzZWxmIF9yZWxlYXNlQmFja2dyb3VuZFRhc2tdOworICAgIH0gZWxzZSBpZiAo
X2Fzc2VydGlvbnNOZWVkaW5nQmFja2dyb3VuZFRhc2suY29tcHV0ZXNFbXB0eSgpKSB7CisgICAg
ICAgIC8vIFJlbGVhc2UgdGhlIGJhY2tncm91bmQgdGFzayBhc3luY2hyb25vdXNseSBiZWNhdXNl
IHJlbGVhc2luZyB0aGUgYmFja2dyb3VuZCB0YXNrIG1heSBkZXN0cm95IHRoZSBQcm9jZXNzVGhy
b3R0bGVyIGFuZCB3ZSBkb24ndAorICAgICAgICAvLyB3YW50IGl0IHRvIGdldCBkZXN0cm95ZWQg
d2hpbGUgaW4gdGhlIG1pZGRsZSBvZiB1cGRhdGluZyBpdHMgYXNzZXJ0aW9uLgorICAgICAgICBk
aXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeeworICAgICAgICAgICAg
aWYgKF9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmNvbXB1dGVzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBbc2VsZiBfcmVsZWFzZUJhY2tncm91bmRUYXNrXTsKKyAgICAgICAgfSk7
CisgICAgfQogfQogCiAtICh2b2lkKWFzc2VydGlvbldpbGxJbnZhbGlkYXRlOihSQlNBc3NlcnRp
b24gKilhc3NlcnRpb24K
</data>

          </attachment>
      

    </bug>

</bugzilla>