<?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>116074</bug_id>
          
          <creation_ts>2013-05-13 16:30:47 -0700</creation_ts>
          <short_desc>Objective-C API: scanExternalObjectGraph should not create new JSVirtualMachine wrappers</short_desc>
          <delta_ts>2013-05-13 19:48:59 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>888573</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-05-13 16:30:47 -0700</bug_when>
    <thetext>If it does, when the scanExternalObjectGraph call finishes and the autorelease pool is drained, we will dealloc the JSVirtualMachine which will cause us to try to take the API lock for the corresponding VM. If this happens on a GC thread other than the &quot;main&quot; thread, we will deadlock. The solution is to just check the VM cache, and if there is no JSVirtualMachine wrapper, return early.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888621</commentid>
    <comment_count>1</comment_count>
      <attachid>201659</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-05-13 18:17:28 -0700</bug_when>
    <thetext>Created attachment 201659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888622</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-05-13 18:18:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/13877067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888664</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-05-13 19:48:59 -0700</bug_when>
    <thetext>Committed r150050: &lt;http://trac.webkit.org/changeset/150050&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201659</attachid>
            <date>2013-05-13 18:17:28 -0700</date>
            <delta_ts>2013-05-13 18:21:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116074-20130513181724.patch</filename>
            <type>text/plain</type>
            <size>2008</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwMDQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEzLTA1LTEzICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgT2JqZWN0aXZlLUMgQVBJOiBzY2FuRXh0ZXJuYWxPYmplY3RHcmFwaCBzaG91bGQg
bm90IGNyZWF0ZSBuZXcgSlNWaXJ0dWFsTWFjaGluZSB3cmFwcGVycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2MDc0CisKKyAgICAgICAgSWYgc2Nh
bkV4dGVybmFsT2JqZWN0R3JhcGggY3JlYXRlcyBhIG5ldyBKU1ZpcnR1YWxNYWNoaW5lIHdyYXBw
ZXIgZHVyaW5nIGNvbGxlY3Rpb24sIHdoZW4gdGhlIAorICAgICAgICBzY2FuRXh0ZXJuYWxPYmpl
Y3RHcmFwaCBjYWxsIGZpbmlzaGVzIGFuZCB0aGUgYXV0b3JlbGVhc2UgcG9vbCBpcyBkcmFpbmVk
LCB3ZSB3aWxsIGRlYWxsb2MgdGhlIAorICAgICAgICBKU1ZpcnR1YWxNYWNoaW5lIHdoaWNoIHdp
bGwgY2F1c2UgdXMgdG8gdHJ5IHRvIHRha2UgdGhlIEFQSSBsb2NrIGZvciB0aGUgY29ycmVzcG9u
ZGluZyBWTS4gCisgICAgICAgIElmIHRoaXMgaGFwcGVucyBvbiBhIEdDIHRocmVhZCBvdGhlciB0
aGFuIHRoZSAibWFpbiIgdGhyZWFkLCB3ZSB3aWxsIGRlYWRsb2NrLiBUaGUgc29sdXRpb24gCisg
ICAgICAgIGlzIHRvIGp1c3QgY2hlY2sgdGhlIFZNIGNhY2hlLCBhbmQgaWYgdGhlcmUgaXMgbm8g
SlNWaXJ0dWFsTWFjaGluZSB3cmFwcGVyLCByZXR1cm4gZWFybHkuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNWaXJ0dWFsTWFjaGluZS5t
bToKKyAgICAgICAgKHNjYW5FeHRlcm5hbE9iamVjdEdyYXBoKToKKwogMjAxMy0wNS0xMyAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW1wcm92ZSBz
dHJpbmdQcm90b0Z1bmNMYXN0SW5kZXhPZiBmb3IgdGhlIHByZWZpeCBjYXNlCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCShyZXZpc2lvbiAx
NTAwNDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0J
KHdvcmtpbmcgY29weSkKQEAgLTIyNyw3ICsyMjcsOSBAQCAtIChOU01hcFRhYmxlICopZXh0ZXJu
YWxPYmplY3RHcmFwaAogdm9pZCBzY2FuRXh0ZXJuYWxPYmplY3RHcmFwaChKU0M6OlZNJiB2bSwg
SlNDOjpTbG90VmlzaXRvciYgdmlzaXRvciwgdm9pZCogcm9vdCkKIHsKICAgICBAYXV0b3JlbGVh
c2Vwb29sIHsKLSAgICAgICAgSlNWaXJ0dWFsTWFjaGluZSAqdmlydHVhbE1hY2hpbmUgPSBbSlNW
aXJ0dWFsTWFjaGluZSB2aXJ0dWFsTWFjaGluZVdpdGhDb250ZXh0R3JvdXBSZWY6dG9SZWYoJnZt
KV07CisgICAgICAgIEpTVmlydHVhbE1hY2hpbmUgKnZpcnR1YWxNYWNoaW5lID0gW0pTVk1XcmFw
cGVyQ2FjaGUgd3JhcHBlckZvckpTQ29udGV4dEdyb3VwUmVmOnRvUmVmKCZ2bSldOworICAgICAg
ICBpZiAoIXZpcnR1YWxNYWNoaW5lKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBOU01h
cFRhYmxlICpleHRlcm5hbE9iamVjdEdyYXBoID0gW3ZpcnR1YWxNYWNoaW5lIGV4dGVybmFsT2Jq
ZWN0R3JhcGhdOwogICAgICAgICBWZWN0b3I8dm9pZCo+IHN0YWNrOwogICAgICAgICBzdGFjay5h
cHBlbmQocm9vdCk7Cg==
</data>
<flag name="review"
          id="223000"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>