<?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>201449</bug_id>
          
          <creation_ts>2019-09-03 23:25:37 -0700</creation_ts>
          <short_desc>Structure::storedPrototype() and storedPrototypeObject() should assert with isCompilationThread(), not !isMainThread().</short_desc>
          <delta_ts>2019-09-04 14:14:16 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=201281</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="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>1567663</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-03 23:25:37 -0700</bug_when>
    <thetext>This is a follow up to https://bugs.webkit.org/show_bug.cgi?id=201281.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567667</commentid>
    <comment_count>1</comment_count>
      <attachid>377959</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-03 23:32:42 -0700</bug_when>
    <thetext>Created attachment 377959
proposed patch.

Let&apos;s try this on the EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567695</commentid>
    <comment_count>2</comment_count>
      <attachid>377959</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-04 02:22:57 -0700</bug_when>
    <thetext>Comment on attachment 377959
proposed patch.

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

r=me

&gt; Source/JavaScriptCore/runtime/StructureInlines.h:111
&gt; +    ASSERT(isCompilationThread() || object-&gt;structure() == this);

Is it possible that the GC thread accesses to this functions? If so, we should allow GC thread too (I think we have an check like isCompilationThread). If not, this check is fine.

&gt; Source/JavaScriptCore/runtime/StructureInlines.h:119
&gt; +    ASSERT(isCompilationThread() || object-&gt;structure() == this);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567799</commentid>
    <comment_count>3</comment_count>
      <attachid>377959</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-04 11:25:31 -0700</bug_when>
    <thetext>Comment on attachment 377959
proposed patch.

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

&gt;&gt; Source/JavaScriptCore/runtime/StructureInlines.h:111
&gt;&gt; +    ASSERT(isCompilationThread() || object-&gt;structure() == this);
&gt; 
&gt; Is it possible that the GC thread accesses to this functions? If so, we should allow GC thread too (I think we have an check like isCompilationThread). If not, this check is fine.

AFAICT from grepping the code and from running tests, this is not called from GC threads.  However, there is a Thread::mayBeGCThread() available.  To better communicate our intent here, I&apos;ll add Thread::mayBeGCThread() to the assert clauses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567810</commentid>
    <comment_count>4</comment_count>
      <attachid>377993</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-04 11:47:38 -0700</bug_when>
    <thetext>Created attachment 377993
patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567864</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-04 14:13:28 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r249499: &lt;http://trac.webkit.org/r249499&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567865</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-04 14:14:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/55037141&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377959</attachid>
            <date>2019-09-03 23:32:42 -0700</date>
            <delta_ts>2019-09-04 02:22:57 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-201449.patch</filename>
            <type>text/plain</type>
            <size>2001</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ5NDU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDE5LTA5LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBT
dHJ1Y3R1cmU6OnN0b3JlZFByb3RvdHlwZSgpIGFuZCBzdG9yZWRQcm90b3R5cGVPYmplY3QoKSBz
aG91bGQgYXNzZXJ0IHdpdGggaXNDb21waWxhdGlvblRocmVhZCgpLCBub3QgIWlzTWFpblRocmVh
ZCgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAx
NDQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNp
bmcgIWlzTWFpblRocmVhZCgpIGluIHRoZSBhc3NlcnRpb24gYWxzbyBkaXNhYmxlcyB0aGUgYXNz
ZXJ0aW9uIGZvciB0aGUgbXV0YXRvcgorICAgICAgICBvZiB3b3JrZXIgdGhyZWFkcy4gIFRoaXMg
aXMgbm90IHdoYXQgd2UgaW50ZW5kZWQuCisKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUlu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpzdG9yZWRQcm90b3R5cGUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnN0b3JlZFByb3RvdHlwZU9iamVjdCBjb25zdCk6
CisKIDIwMTktMDktMDMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IEFzc2VydGlvbnMgaW4gSlNBcnJheUJ1ZmZlclZpZXc6OmJ5dGVPZmZzZXQoKSBhcmUgb25seSB2
YWxpZCBmb3IgdGhlIG11dGF0b3IgdGhyZWFkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAkocmV2aXNpb24gMjQ5NDU4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDgsNyArMTA4LDcgQEAgaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlOjpz
dG9yZWRQcm90bwogCiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgU3RydWN0dXJlOjpzdG9yZWRQcm90
b3R5cGUoY29uc3QgSlNPYmplY3QqIG9iamVjdCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpIHx8IG9iamVjdC0+c3RydWN0dXJlKCkgPT0gdGhpcyk7CisgICAgQVNTRVJUKGlz
Q29tcGlsYXRpb25UaHJlYWQoKSB8fCBvYmplY3QtPnN0cnVjdHVyZSgpID09IHRoaXMpOwogICAg
IGlmIChoYXNNb25vUHJvdG8oKSkKICAgICAgICAgcmV0dXJuIHN0b3JlZFByb3RvdHlwZSgpOwog
ICAgIHJldHVybiBvYmplY3QtPmdldERpcmVjdChrbm93blBvbHlQcm90b09mZnNldCk7CkBAIC0x
MTYsNyArMTE2LDcgQEAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIFN0cnVjdHVyZTo6c3RvcmVkUAog
CiBBTFdBWVNfSU5MSU5FIEpTT2JqZWN0KiBTdHJ1Y3R1cmU6OnN0b3JlZFByb3RvdHlwZU9iamVj
dChjb25zdCBKU09iamVjdCogb2JqZWN0KSBjb25zdAogewotICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkgfHwgb2JqZWN0LT5zdHJ1Y3R1cmUoKSA9PSB0aGlzKTsKKyAgICBBU1NFUlQoaXNDb21w
aWxhdGlvblRocmVhZCgpIHx8IG9iamVjdC0+c3RydWN0dXJlKCkgPT0gdGhpcyk7CiAgICAgaWYg
KGhhc01vbm9Qcm90bygpKQogICAgICAgICByZXR1cm4gc3RvcmVkUHJvdG90eXBlT2JqZWN0KCk7
CiAgICAgSlNWYWx1ZSBwcm90byA9IG9iamVjdC0+Z2V0RGlyZWN0KGtub3duUG9seVByb3RvT2Zm
c2V0KTsK
</data>
<flag name="review"
          id="393642"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377993</attachid>
            <date>2019-09-04 11:47:38 -0700</date>
            <delta_ts>2019-09-04 11:47:38 -0700</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-201449.patch</filename>
            <type>text/plain</type>
            <size>2213</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ5NDg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDE5LTA5LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBT
dHJ1Y3R1cmU6OnN0b3JlZFByb3RvdHlwZSgpIGFuZCBzdG9yZWRQcm90b3R5cGVPYmplY3QoKSBz
aG91bGQgYXNzZXJ0IHdpdGggaXNDb21waWxhdGlvblRocmVhZCgpLCBub3QgIWlzTWFpblRocmVh
ZCgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAx
NDQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICBVc2lu
ZyAhaXNNYWluVGhyZWFkKCkgaW4gdGhlIGFzc2VydGlvbiBhbHNvIGRpc2FibGVzIHRoZSBhc3Nl
cnRpb24gZm9yIHRoZSBtdXRhdG9yCisgICAgICAgIG9mIHdvcmtlciB0aHJlYWRzLiAgVGhpcyBp
cyBub3Qgd2hhdCB3ZSBpbnRlbmRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlSW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnN0b3JlZFByb3RvdHlwZSBjb25zdCk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6c3RvcmVkUHJvdG90eXBlT2JqZWN0IGNvbnN0KToK
KwogMjAxOS0wOS0wMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
QXNzZXJ0aW9ucyBpbiBKU0FycmF5QnVmZmVyVmlldzo6Ynl0ZU9mZnNldCgpIGFyZSBvbmx5IHZh
bGlkIGZvciB0aGUgbXV0YXRvciB0aHJlYWQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCShyZXZpc2lvbiAyNDk0ODkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRl
ICJTdHJ1Y3R1cmVDaGFpbi5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5o
IgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTEw
OCw3ICsxMDksNyBAQCBpbmxpbmUgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OnN0b3JlZFByb3RvCiAK
IEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBTdHJ1Y3R1cmU6OnN0b3JlZFByb3RvdHlwZShjb25zdCBK
U09iamVjdCogb2JqZWN0KSBjb25zdAogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkgfHwg
b2JqZWN0LT5zdHJ1Y3R1cmUoKSA9PSB0aGlzKTsKKyAgICBBU1NFUlQoaXNDb21waWxhdGlvblRo
cmVhZCgpIHx8IFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpIHx8IG9iamVjdC0+c3RydWN0dXJlKCkg
PT0gdGhpcyk7CiAgICAgaWYgKGhhc01vbm9Qcm90bygpKQogICAgICAgICByZXR1cm4gc3RvcmVk
UHJvdG90eXBlKCk7CiAgICAgcmV0dXJuIG9iamVjdC0+Z2V0RGlyZWN0KGtub3duUG9seVByb3Rv
T2Zmc2V0KTsKQEAgLTExNiw3ICsxMTcsNyBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgU3RydWN0
dXJlOjpzdG9yZWRQCiAKIEFMV0FZU19JTkxJTkUgSlNPYmplY3QqIFN0cnVjdHVyZTo6c3RvcmVk
UHJvdG90eXBlT2JqZWN0KGNvbnN0IEpTT2JqZWN0KiBvYmplY3QpIGNvbnN0CiB7Ci0gICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSB8fCBvYmplY3QtPnN0cnVjdHVyZSgpID09IHRoaXMpOworICAg
IEFTU0VSVChpc0NvbXBpbGF0aW9uVGhyZWFkKCkgfHwgVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkg
fHwgb2JqZWN0LT5zdHJ1Y3R1cmUoKSA9PSB0aGlzKTsKICAgICBpZiAoaGFzTW9ub1Byb3RvKCkp
CiAgICAgICAgIHJldHVybiBzdG9yZWRQcm90b3R5cGVPYmplY3QoKTsKICAgICBKU1ZhbHVlIHBy
b3RvID0gb2JqZWN0LT5nZXREaXJlY3Qoa25vd25Qb2x5UHJvdG9PZmZzZXQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>