<?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>115299</bug_id>
          
          <creation_ts>2013-04-26 23:19:07 -0700</creation_ts>
          <short_desc>fourthTier: WatchpointSet should make racy uses easier to reason about</short_desc>
          <delta_ts>2013-04-27 12:21:10 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>112839</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>882140</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-26 23:19:07 -0700</bug_when>
    <thetext>The compiler often does things like:

1c) Observe something that would imply that a WatchpointSet ought to be invalid

2c) Check that it is invalid

The main thread often does things like:

1m) Fire the watchpoint set

2m) Do some other thing that would cause the compiler to assume that the WatchpointSet ought to be invalid

An example is structure transitions.

This is totally fine, except that (1c) and (2c), and (1m) and (2m) could be reordered.

We already have some idioms to put load-load and store-store fences in the right places.  But we should just make WatchpointSet take care of this for us, to reduce the chances of us getting this wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882142</commentid>
    <comment_count>1</comment_count>
      <attachid>199893</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-26 23:23:54 -0700</bug_when>
    <thetext>Created attachment 199893
the ptach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882195</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-27 11:22:56 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/149239</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882199</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-27 12:21:10 -0700</bug_when>
    <thetext>I like this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199893</attachid>
            <date>2013-04-26 23:23:54 -0700</date>
            <delta_ts>2013-04-27 11:19:48 -0700</delta_ts>
            <desc>the ptach</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>6001</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ5MjMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBA
CisyMDEzLTA0LTI2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogV2F0Y2hwb2ludFNldCBzaG91bGQgbWFrZSByYWN5IHVzZXMgZWFzaWVyIHRv
IHJlYXNvbiBhYm91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE1Mjk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBUaGUgY29tcGlsZXIgb2Z0ZW4gZG9lcyB0aGluZ3MgbGlrZToKKworICAg
ICAgICAxYykgT2JzZXJ2ZSBzb21ldGhpbmcgdGhhdCB3b3VsZCBpbXBseSB0aGF0IGEgV2F0Y2hw
b2ludFNldCBvdWdodCB0byBiZSBpbnZhbGlkCisKKyAgICAgICAgMmMpIENoZWNrIHRoYXQgaXQg
aXMgaW52YWxpZAorCisgICAgICAgIFRoZSBtYWluIHRocmVhZCBvZnRlbiBkb2VzIHRoaW5ncyBs
aWtlOgorCisgICAgICAgIDFtKSBGaXJlIHRoZSB3YXRjaHBvaW50IHNldAorCisgICAgICAgIDJt
KSBEbyBzb21lIG90aGVyIHRoaW5nIHRoYXQgd291bGQgY2F1c2UgdGhlIGNvbXBpbGVyIHRvIGFz
c3VtZSB0aGF0IHRoZSBXYXRjaHBvaW50U2V0CisgICAgICAgIG91Z2h0IHRvIGJlIGludmFsaWQK
KworICAgICAgICBBbiBleGFtcGxlIGlzIHN0cnVjdHVyZSB0cmFuc2l0aW9ucywgd2hlcmUgKDFj
KSBpcyB0aGUgY29tcGlsZXIgbm90aWNpbmcgdGhhdCBhCisgICAgICAgIHB1dF9ieV9pZCBpbmxp
bmUgY2FjaGUgaXMgaW4gYSB0cmFuc2l0aW9uIHN0YXRlLCB3aXRoIHRoZSBzb3VyY2Ugc3RydWN0
dXJlIGJlaW5nIFM7CisgICAgICAgICgyYykgaXMgdGhlIGNvbXBpbGVyIGFzc2VydGluZyB0aGF0
IFMncyB3YXRjaHBvaW50IHNldCBpcyBpbnZhbGlkOyAoMW0pIGlzIHRoZSBtYWluCisgICAgICAg
IHRocmVhZCBmaXJpbmcgUydzIHdhdGNocG9pbnQgc2V0IGJlZm9yZSBpdCBkb2VzIHRoZSBmaXJz
dCB0cmFuc2l0aW9uIGF3YXkgZnJvbSBTOyBhbmQKKyAgICAgICAgKDJtKSBpcyB0aGUgbWFpbiB0
aHJlYWQgY2FjaGluZyB0aGUgcHV0X2J5X2lkIHRyYW5zaXRpb24gYXdheSBmcm9tIFMuCisKKyAg
ICAgICAgVGhpcyBpcyB0b3RhbGx5IGZpbmUsIGV4Y2VwdCB0aGF0ICgxYykgYW5kICgyYyksIGFu
ZCAoMW0pIGFuZCAoMm0pIGNvdWxkIGJlIHJlb3JkZXJlZC4KKyAgICAgICAgUHJvYmFibHksIGlu
IG1vc3QgY2FzZXMsIHRoaXMgb3VnaHQgdG8gZG8gZW5vdWdoIHRoaW5ncyB0aGF0IHRoZSBtYWlu
IHRocmVhZCBwcm9iYWJseQorICAgICAgICBhbHJlYWR5IGhhcyBzb21lIGZlbmNpbmcuIEJ1dCB0
aGUgY29tcGlsZXIgdGhyZWFkIGRlZmluaXRlbHkgZG9lc24ndCBoYXZlIGZlbmNpbmcuIEluCisg
ICAgICAgIGFueSBjYXNlLCB3ZSBzaG91bGQgcGxheSBpdCBzYWZlIGFuZCBqdXN0IGhhdmUgYWRk
aXRpb25hbCBmZW5jaW5nIGluIGFsbCBvZiB0aGUKKyAgICAgICAgcmVsZXZhbnQgcGxhY2VzLgor
CisgICAgICAgIFdlIGFscmVhZHkgaGF2ZSBzb21lIGlkaW9tcyB0byBwdXQgbG9hZC1sb2FkIGFu
ZCBzdG9yZS1zdG9yZSBmZW5jZXMgaW4gdGhlIHJpZ2h0CisgICAgICAgIHBsYWNlcy4gQnV0IHRo
aXMgY2hhbmdlIGp1c3QgbWFrZXMgV2F0Y2hwb2ludFNldCB0YWtlIGNhcmUgb2YgdGhpcyBmb3Ig
dXMsIHRodXMKKyAgICAgICAgcmVkdWNpbmcgdGhlIGNoYW5jZXMgb2YgdXMgZ2V0dGluZyB0aGlz
IHdyb25nLgorCisgICAgICAgICogYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHA6CisgICAgICAgIChK
U0M6OldhdGNocG9pbnRTZXQ6Om5vdGlmeVdyaXRlU2xvdyk6CisgICAgICAgICogYnl0ZWNvZGUv
V2F0Y2hwb2ludC5oOgorICAgICAgICAoV2F0Y2hwb2ludFNldCk6CisgICAgICAgIChKU0M6Oldh
dGNocG9pbnRTZXQ6OmlzU3RpbGxWYWxpZCk6CisgICAgICAgIChKU0M6OldhdGNocG9pbnRTZXQ6
Omhhc0JlZW5JbnZhbGlkYXRlZCk6CisgICAgICAgIChKU0M6OklubGluZVdhdGNocG9pbnRTZXQ6
Omhhc0JlZW5JbnZhbGlkYXRlZCk6CisgICAgICAgIChKU0M6OklubGluZVdhdGNocG9pbnRTZXQ6
Om5vdGlmeVdyaXRlKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKiBk
ZmcvREZHRGVzaXJlZFdhdGNocG9pbnRzLmg6CisgICAgICAgIChKU0M6OkRGRzo6R2VuZXJpY0Rl
c2lyZWRXYXRjaHBvaW50czo6c2hvdWxkQXNzdW1lTWl4ZWRTdGF0ZSk6CisKIDIwMTMtMDQtMjYg
IEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBmb3VydGhUaWVyOiBD
RkEgc2hvdWxkIGRlZmVuZCBhZ2FpbnN0IHJlc3VsdHMgc2VlbWluZyBpbmNvbnNpc3RlbnQgZHVl
IHRvIGEgd2F0Y2hwb2ludCBmaXJpbmcgZHVyaW5nIGNvbXBpbGF0aW9uCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuY3BwCShyZXZpc2lvbiAxNDky
MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDcgQEAgdm9pZCBXYXRjaHBvaW50U2V0Ojpub3RpZnlX
cml0ZVNsb3coKQogICAgIGZpcmVBbGxXYXRjaHBvaW50cygpOwogICAgIG1faXNXYXRjaGVkID0g
ZmFsc2U7CiAgICAgbV9pc0ludmFsaWRhdGVkID0gdHJ1ZTsKKyAgICBXVEY6OnN0b3JlU3RvcmVG
ZW5jZSgpOwogfQogCiB2b2lkIFdhdGNocG9pbnRTZXQ6OmZpcmVBbGxXYXRjaHBvaW50cygpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmgJKHJldmlz
aW9uIDE0OTIzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDEwICs1NiwxNyBAQCBwdWJsaWM6CiAgICAgCiAgICAg
Ly8gSXQgaXMgc2FmZSB0byBjYWxsIHRoaXMgZnJvbSBhbm90aGVyIHRocmVhZC4gIEl0IG1heSBy
ZXR1cm4gdHJ1ZQogICAgIC8vIGV2ZW4gaWYgdGhlIHNldCBhY3R1YWxseSBoYWQgYmVlbiBpbnZh
bGlkYXRlZCwgYnV0IHRoYXQgb3VnaHQgdG8gaGFwcGVuCi0gICAgLy8gb25seSBpbiB0aGUgY2Fz
ZSBvZiByYWNlcywgYW5kIHNob3VsZCBiZSByYXJlLgotICAgIGJvb2wgaXNTdGlsbFZhbGlkKCkg
Y29uc3QgeyByZXR1cm4gIW1faXNJbnZhbGlkYXRlZDsgfQorICAgIC8vIG9ubHkgaW4gdGhlIGNh
c2Ugb2YgcmFjZXMsIGFuZCBzaG91bGQgYmUgcmFyZS4gR3VhcmFudGVlcyB0aGF0IGlmIHlvdQor
ICAgIC8vIGNhbGwgdGhpcyBhZnRlciBvYnNlcnZpbmcgc29tZXRoaW5nIHRoYXQgbXVzdCBpbXBs
eSB0aGF0IHRoZSBzZXQgaXMKKyAgICAvLyBpbnZhbGlkYXRlZCwgdGhlbiB5b3Ugd2lsbCBzZWUg
dGhpcyByZXR1cm4gZmFsc2UuIFRoaXMgaXMgZW5zdXJlZCBieQorICAgIC8vIGlzc3VpbmcgYSBs
b2FkLWxvYWQgZmVuY2UgcHJpb3IgdG8gcXVlcnlpbmcgdGhlIHN0YXRlLgorICAgIGJvb2wgaXNT
dGlsbFZhbGlkKCkgY29uc3QKKyAgICB7CisgICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwor
ICAgICAgICByZXR1cm4gIW1faXNJbnZhbGlkYXRlZDsKKyAgICB9CiAgICAgLy8gTGlrZSBpc1N0
aWxsVmFsaWQoKSwgbWF5IGJlIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkLgotICAgIGJvb2wg
aGFzQmVlbkludmFsaWRhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ludmFsaWRhdGVkOyB9Cisg
ICAgYm9vbCBoYXNCZWVuSW52YWxpZGF0ZWQoKSBjb25zdCB7IHJldHVybiAhaXNTdGlsbFZhbGlk
KCk7IH0KICAgICAKICAgICAvLyBBcyBhIGNvbnZlbmllbmNlLCB0aGlzIHdpbGwgaWdub3JlIDAu
IFRoYXQncyBiZWNhdXNlIGNvZGUgcGF0aHMgaW4gdGhlIERGRwogICAgIC8vIHRoYXQgY3JlYXRl
IHNwZWN1bGF0aW9uIHdhdGNocG9pbnRzIG1heSBjaG9vc2UgdG8gYmFpbCBvdXQgaWYgc3BlY3Vs
YXRpb24KQEAgLTEzMyw2ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgLy8gb25seSBpbiB0aGUgY2Fz
ZSBvZiByYWNlcywgYW5kIHNob3VsZCBiZSByYXJlLgogICAgIGJvb2wgaGFzQmVlbkludmFsaWRh
dGVkKCkgY29uc3QKICAgICB7CisgICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwogICAgICAg
ICB1aW50cHRyX3QgZGF0YSA9IG1fZGF0YTsKICAgICAgICAgaWYgKGlzRmF0KGRhdGEpKSB7CiAg
ICAgICAgICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKQEAgLTE2Nyw2ICsxNzUsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmICghKG1fZGF0YSAmIElzV2F0Y2hlZEZsYWcpKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICBtX2RhdGEgfD0gSXNJbnZhbGlkYXRlZEZsYWc7CisgICAgICAgIFdU
Rjo6c3RvcmVTdG9yZUZlbmNlKCk7CiAgICAgfQogICAgIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lv
biAxNDkyMzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY0OSw3ICsyNjQ5LDYgQEAgYm9vbCBCeXRlQ29kZVBh
cnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAgICAgICAgICAgICAgYWRkU3Ry
dWN0dXJlVHJhbnNpdGlvbkNoZWNrKHByb3RvdHlwZS5hc0NlbGwoKSk7CiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgV1RGOjpsb2FkTG9h
ZEZlbmNlKCk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHB1dEJ5SWRTdGF0dXMub2xkU3RydWN0
dXJlKCktPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SGFzQmVlbkludmFsaWRhdGVkKCkpOwogICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIE5vZGUqIHByb3BlcnR5U3RvcmFnZTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdhdGNocG9pbnRzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkV2F0Y2hwb2lu
dHMuaAkocmV2aXNpb24gMTQ5MjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
ZXNpcmVkV2F0Y2hwb2ludHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDcgKzExNiw2IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGl0ZXIgPT0gbV9maXJzdEtub3duU3RhdGUuZW5kKCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAotICAgICAgICBXVEY6OmxvYWRMb2FkRmVu
Y2UoKTsKICAgICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlICE9IHNldC0+aXNTdGlsbFZhbGlkKCk7
CiAgICAgfQogI2VuZGlmCg==
</data>
<flag name="review"
          id="221396"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>