<?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>239457</bug_id>
          
          <creation_ts>2022-04-18 11:53:32 -0700</creation_ts>
          <short_desc>The VMTraps signal handler should no return SignalAction::NotHandled on codeBlockSet lock contention.</short_desc>
          <delta_ts>2022-04-18 16:07:52 -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>JavaScriptCore</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</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>1862277</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-04-18 11:53:32 -0700</bug_when>
    <thetext>The signal handler is triggered by the mutator thread due to the installed halt instructions in JIT code (which we already confirmed higher up in the signal handler). Hence, the mutator cannot be in C++ code, and therefore, cannot be already holding the codeBlockSet lock.   The only time the codeBlockSet lock could be in contention is if the Sampling Profiler thread is holding it.  In that case, we&apos;ll simply wait till the Sampling Profiler is done with it.  There are no lock ordering issues w.r.t. the Sampling Profiler on this code path.

Note that it is not ok to return SignalAction::NotHandled here if we see contention.  Doing so will cause the fault to be handled by the default handler, which will crash.  It is also not productive to return SignalAction::Handled on contention.  Doing so will simply trigger this fault handler over and over again.  We might as well wait for the Sampling Profiler to release the lock, which is what we should do.

This issue was detected by the stress/get-array-length-concurrently-change-mode.js.ftl-no-cjit-validate-sampling-profiler test, resulting in intermittent crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862280</commentid>
    <comment_count>1</comment_count>
      <attachid>457813</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-04-18 11:59:05 -0700</bug_when>
    <thetext>Created attachment 457813
[fast-cq] proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862281</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-18 12:00:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/91908204&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862282</commentid>
    <comment_count>3</comment_count>
      <attachid>457813</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-18 12:01:45 -0700</bug_when>
    <thetext>Comment on attachment 457813
[fast-cq] proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862352</commentid>
    <comment_count>4</comment_count>
      <attachid>457813</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-04-18 16:05:19 -0700</bug_when>
    <thetext>Comment on attachment 457813
[fast-cq] proposed patch.

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862353</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-18 16:07:50 -0700</bug_when>
    <thetext>Committed r292978 (249741@main): &lt;https://commits.webkit.org/249741@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457813.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457813</attachid>
            <date>2022-04-18 11:59:05 -0700</date>
            <delta_ts>2022-04-18 16:07:51 -0700</delta_ts>
            <desc>[fast-cq] proposed patch.</desc>
            <filename>bug-239457.patch</filename>
            <type>text/plain</type>
            <size>4761</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjkyOTYyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDIyLTA0LTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBU
aGUgVk1UcmFwcyBzaWduYWwgaGFuZGxlciBzaG91bGQgbm8gcmV0dXJuIFNpZ25hbEFjdGlvbjo6
Tm90SGFuZGxlZCBvbiBjb2RlQmxvY2tTZXQgbG9jayBjb250ZW50aW9uLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHNpZ25hbCBoYW5kbGVyIGlz
IHRyaWdnZXJlZCBieSB0aGUgbXV0YXRvciB0aHJlYWQgZHVlIHRvIHRoZSBpbnN0YWxsZWQgaGFs
dAorICAgICAgICBpbnN0cnVjdGlvbnMgaW4gSklUIGNvZGUgKHdoaWNoIHdlIGFscmVhZHkgY29u
ZmlybWVkIGhpZ2hlciB1cCBpbiB0aGUgc2lnbmFsIGhhbmRsZXIpLgorICAgICAgICBIZW5jZSwg
dGhlIG11dGF0b3IgY2Fubm90IGJlIGluIEMrKyBjb2RlLCBhbmQgdGhlcmVmb3JlLCBjYW5ub3Qg
YmUgYWxyZWFkeSBob2xkaW5nCisgICAgICAgIHRoZSBjb2RlQmxvY2tTZXQgbG9jay4gIFRoZSBv
bmx5IHRpbWUgdGhlIGNvZGVCbG9ja1NldCBsb2NrIGNvdWxkIGJlIGluIGNvbnRlbnRpb24KKyAg
ICAgICAgaXMgaWYgdGhlIFNhbXBsaW5nIFByb2ZpbGVyIHRocmVhZCBpcyBob2xkaW5nIGl0LiAg
SW4gdGhhdCBjYXNlLCB3ZSdsbCBzaW1wbHkgd2FpdAorICAgICAgICB0aWxsIHRoZSBTYW1wbGlu
ZyBQcm9maWxlciBpcyBkb25lIHdpdGggaXQuICBUaGVyZSBhcmUgbm8gbG9jayBvcmRlcmluZyBp
c3N1ZXMgdy5yLnQuCisgICAgICAgIHRoZSBTYW1wbGluZyBQcm9maWxlciBvbiB0aGlzIGNvZGUg
cGF0aC4KKworICAgICAgICBOb3RlIHRoYXQgaXQgaXMgbm90IG9rIHRvIHJldHVybiBTaWduYWxB
Y3Rpb246Ok5vdEhhbmRsZWQgaGVyZSBpZiB3ZSBzZWUgY29udGVudGlvbi4KKyAgICAgICAgRG9p
bmcgc28gd2lsbCBjYXVzZSB0aGUgZmF1bHQgdG8gYmUgaGFuZGxlZCBieSB0aGUgZGVmYXVsdCBo
YW5kbGVyLCB3aGljaCB3aWxsIGNyYXNoLgorICAgICAgICBJdCBpcyBhbHNvIG5vdCBwcm9kdWN0
aXZlIHRvIHJldHVybiBTaWduYWxBY3Rpb246OkhhbmRsZWQgb24gY29udGVudGlvbi4gIERvaW5n
IHNvCisgICAgICAgIHdpbGwgc2ltcGx5IHRyaWdnZXIgdGhpcyBmYXVsdCBoYW5kbGVyIG92ZXIg
YW5kIG92ZXIgYWdhaW4uICBXZSBtaWdodCBhcyB3ZWxsIHdhaXQKKyAgICAgICAgZm9yIHRoZSBT
YW1wbGluZyBQcm9maWxlciB0byByZWxlYXNlIHRoZSBsb2NrLCB3aGljaCBpcyB3aGF0IHdlIHNo
b3VsZCBkby4KKworICAgICAgICBUaGlzIGlzc3VlIHdhcyBkZXRlY3RlZCBieSB0aGUgc3RyZXNz
L2dldC1hcnJheS1sZW5ndGgtY29uY3VycmVudGx5LWNoYW5nZS1tb2RlLmpzLmZ0bC1uby1jaml0
LXZhbGlkYXRlLXNhbXBsaW5nLXByb2ZpbGVyCisgICAgICAgIHRlc3QsIHJlc3VsdGluZyBpbiBp
bnRlcm1pdHRlbnQgY3Jhc2hlcy4KKworICAgICAgICAqIHJ1bnRpbWUvVk1UcmFwcy5jcHA6CisK
IDIwMjItMDQtMTggIEVsbGlvdHQgV2lsbGlhbXMgIDxlbXdAYXBwbGUuY29tPgogCiAgICAgICAg
IFtYQ0J1aWxkXSBVc2UgWENCdWlsZCBmb3IgYWxsIGNvbW1hbmQtbGluZSBhbmQgcHJvamVjdCBi
dWlsZHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCShy
ZXZpc2lvbiAyOTI5NTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTctMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIyNSwxNiArMjI1LDE5IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgICAgICBBU1NFUlQoY3VycmVudENvZGVCbG9jay0+aGFzSW5zdGFsbGVkVk1UcmFwQnJl
YWtwb2ludHMoKSk7CiAgICAgICAgICAgICAgICAgVk0mIHZtID0gY3VycmVudENvZGVCbG9jay0+
dm0oKTsKIAotICAgICAgICAgICAgICAgIC8vIEV2ZW4gdGhvdWdoIHdlIGtub3cgdGhlIG11dGF0
b3IgdGhyZWFkIGlzIG5vdCBpbiBDKysgY29kZSBhbmQgdGhlcmVmb3JlLCBub3QgaG9sZGluZwot
ICAgICAgICAgICAgICAgIC8vIHRoaXMgbG9jaywgdGhlIHNhbXBsaW5nIHByb2ZpbGVyIG1heSBo
YXZlIGFjcXVpcmVkIHRoaXMgbG9jayBiZWZvcmUgYWNxdWlyaW5nCi0gICAgICAgICAgICAgICAg
Ly8gVGhyZWFkU3VzcGVuZExvY2tlciBhbmQgc3VzcGVuZGluZyB0aGUgbXV0YXRvci4gU2luY2Ug
Vk1UcmFwcyBhY3F1aXJlcyB0aGUKLSAgICAgICAgICAgICAgICAvLyBUaHJlYWRTdXNwZW5kTG9j
a2VyIGZpcnN0LCB3ZSBjYW4gZGVhZGxvY2sgd2l0aCB0aGUgU2FtcGxpbmcgUHJvZmlsZXIgdGhy
ZWFkLCBhbmQKLSAgICAgICAgICAgICAgICAvLyBsZWF2ZSB0aGUgbXV0YXRvciBpbiBhIHN1c3Bl
bmRlZCBzdGF0ZSwgb3IgZm9yZXZlciBibG9ja2VkIG9uIHRoZSBjb2RlQmxvY2tTZXQgbG9jay4K
LSAgICAgICAgICAgICAgICBMb2NrJiBjb2RlQmxvY2tTZXRMb2NrID0gdm0uaGVhcC5jb2RlQmxv
Y2tTZXQoKS5nZXRMb2NrKCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFjb2RlQmxvY2tTZXRMb2Nr
LnRyeUxvY2soKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Tm90
SGFuZGxlZDsKLQotICAgICAgICAgICAgICAgIExvY2tlciBjb2RlQmxvY2tTZXRMb2NrZXIgeyBB
ZG9wdExvY2ssIGNvZGVCbG9ja1NldExvY2sgfTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHNp
Z25hbCBoYW5kbGVyIGlzIHRyaWdnZXJlZCBieSB0aGUgbXV0YXRvciB0aHJlYWQgZHVlIHRvIHRo
ZSBpbnN0YWxsZWQgaGFsdCBpbnN0cnVjdGlvbnMKKyAgICAgICAgICAgICAgICAvLyBpbiBKSVQg
Y29kZSAod2hpY2ggd2UgYWxyZWFkeSBjb25maXJtZWQgYWJvdmUpLiBIZW5jZSwgdGhlIGN1cnJl
bnQgdGhyZWFkICh0aGUgbXV0YXRvcikKKyAgICAgICAgICAgICAgICAvLyBjYW5ub3QgYmUgaW4g
QysrIGNvZGUsIGFuZCB0aGVyZWZvcmUsIGNhbm5vdCBiZSBhbHJlYWR5IGhvbGRpbmcgdGhlIGNv
ZGVCbG9ja1NldCBsb2NrLgorICAgICAgICAgICAgICAgIC8vIFRoZSBvbmx5IHRpbWUgdGhlIGNv
ZGVCbG9ja1NldCBsb2NrIGNvdWxkIGJlIGluIGNvbnRlbnRpb24gaXMgaWYgdGhlIFNhbXBsaW5n
IFByb2ZpbGVyIHRocmVhZAorICAgICAgICAgICAgICAgIC8vIGlzIGhvbGRpbmcgaXQuIEluIHRo
YXQgY2FzZSwgd2UnbGwgc2ltcGx5IHdhaXQgdGlsbCB0aGUgU2FtcGxpbmcgUHJvZmlsZXIgaXMg
ZG9uZSB3aXRoIGl0LgorICAgICAgICAgICAgICAgIC8vIFRoZXJlIGFyZSBubyBsb2NrIG9yZGVy
aW5nIGlzc3VlcyB3LnIudC4gdGhlIFNhbXBsaW5nIFByb2ZpbGVyIG9uIHRoaXMgY29kZSBwYXRo
LgorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgLy8gTm90ZSB0aGF0IGl0IGlz
IG5vdCBvayB0byByZXR1cm4gU2lnbmFsQWN0aW9uOjpOb3RIYW5kbGVkIGhlcmUgaWYgd2Ugc2Vl
IGNvbnRlbnRpb24uIERvaW5nCisgICAgICAgICAgICAgICAgLy8gc28gd2lsbCBjYXVzZSB0aGUg
ZmF1bHQgdG8gYmUgaGFuZGxlZCBieSB0aGUgZGVmYXVsdCBoYW5kbGVyLCB3aGljaCB3aWxsIGNy
YXNoLiBJdCBpcyBhbHNvIG5vdAorICAgICAgICAgICAgICAgIC8vIHByb2R1Y3RpdmUgdG8gcmV0
dXJuIFNpZ25hbEFjdGlvbjo6SGFuZGxlZCBvbiBjb250ZW50aW9uLiBEb2luZyBzbyB3aWxsIHNp
bXBseSB0cmlnZ2VyIHRoaXMKKyAgICAgICAgICAgICAgICAvLyBmYXVsdCBoYW5kbGVyIG92ZXIg
YW5kIG92ZXIgYWdhaW4uIFdlIG1pZ2h0IGFzIHdlbGwgd2FpdCBmb3IgdGhlIFNhbXBsaW5nIFBy
b2ZpbGVyIHRvIHJlbGVhc2UKKyAgICAgICAgICAgICAgICAvLyB0aGUgbG9jaywgd2hpY2ggaXMg
d2hhdCB3ZSBkbyBoZXJlLgorICAgICAgICAgICAgICAgIExvY2tlciBjb2RlQmxvY2tTZXRMb2Nr
ZXIgeyB2bS5oZWFwLmNvZGVCbG9ja1NldCgpLmdldExvY2soKSB9OwogCiAgICAgICAgICAgICAg
ICAgYm9vbCBzYXdDdXJyZW50Q29kZUJsb2NrID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgdm0u
aGVhcC5mb3JFYWNoQ29kZUJsb2NrSWdub3JpbmdKSVRQbGFucyhjb2RlQmxvY2tTZXRMb2NrZXIs
IFsmXSAoQ29kZUJsb2NrKiBjb2RlQmxvY2spIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>