<?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>112976</bug_id>
          
          <creation_ts>2013-03-21 16:09:51 -0700</creation_ts>
          <short_desc>IndexedDB: Ensure script wrappers can be collected after context is stopped</short_desc>
          <delta_ts>2013-03-22 01:38:26 -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>New Bugs</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="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>abarth</cc>
    
    <cc>dgrogan</cc>
    
    <cc>haraken</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>860829</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-21 16:09:51 -0700</bug_when>
    <thetext>IndexedDB: Ensure script wrappers can be collected after context is stopped</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860835</commentid>
    <comment_count>1</comment_count>
      <attachid>194374</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-21 16:12:32 -0700</bug_when>
    <thetext>Created attachment 194374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860837</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-21 16:14:10 -0700</bug_when>
    <thetext>This could use some tests but I haven&apos;t thought about where to put them yet - trivial webkit_unit_tests might work just to avoid regressions.

haraken@, abarth@ - can you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860846</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-21 16:17:58 -0700</bug_when>
    <thetext>We don&apos;t have a good way to test these sorts of changes.  :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860883</commentid>
    <comment_count>4</comment_count>
      <attachid>194374</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 16:54:40 -0700</bug_when>
    <thetext>Comment on attachment 194374
Patch

Clearing flags on attachment: 194374

Committed r146540: &lt;http://trac.webkit.org/changeset/146540&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860884</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 16:54:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861107</commentid>
    <comment_count>6</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2013-03-21 22:38:24 -0700</bug_when>
    <thetext>IntVersion tests flaked after this was rolled into chromium.

http://build.chromium.org/p/chromium.linux/builders/Linux%20Tests%20(dbg)(1)/builds/24146/steps/content_browsertests/logs/IntVersionTests1

[7826:7826:0321/221757:1974942344:INFO:layout_browsertest.cc(157)] Navigating to URL file:///mnt/data/b/build/slave/Linux_Tests__dbg__1_/build/src/content/test/data/layout_tests/LayoutTests/storage/indexeddb/intversion-close-in-upgradeneeded.html and blocking.
ASSERTION FAILED: m_state == Finished
../../third_party/WebKit/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp(119) : virtual WebCore::IDBTransaction::~IDBTransaction()
1   0x7fabd2cf3a5b
2   0x7fabd2cf3bec
3   0x7fabd2c9f536
4   0x7fabd3a6082c
5   0x7fabd2dfe2e4
6   0x7fabd2e53e82
7   0x7fabd621f434
8   0x7fabd621da8b
9   0x7fabd6241d77
10  0x7fabd6240fe6
11  0x7fabd6198836
12  0x7fabd6353ce1
13  0x7fabd63dda23
14  0x7fabd63de277
15  0x1a99337062ee
[7826:7826:0321/221757:1975821025:INFO:layout_browsertest.cc(162)] Navigation completed.
../../content/test/layout_browsertest.cc:191: Failure
Value of: actual_text
Actual: &quot;#CRASHED - renderer (pid 7856)\n&quot;
Expected: expected_text
Which is: &quot;Test that when db.close is called in upgradeneeded, the db is cleaned up on refresh.\n\nOn success, you will see a series of \&quot;PASS\&quot; messages, followed by \&quot;TEST COMPLETE\&quot;.\n\n\nindexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;\n\ndbname = \&quot;intversion-close-in-upgradeneeded.html\&quot;\nindexedDB.deleteDatabase(dbname)\nrequest = indexedDB.open(dbname, 7)\n\n\nupgradeNeeded():\ndb = event.target.result\nPASS event.newVersion is 7\ntransaction = event.target.transaction\ndb.createObjectStore(&apos;os&apos;)\ndb.close()\n\ntransaction.oncomplete:\nsawTransactionComplete = true\n\nopenError():\nPASS sawTransactionComplete is true\nPASS event.target.error.name is &apos;AbortError&apos;\nPASS event.result is undefined\n\nVerify that the old connection is unchanged and was closed:\nPASS db is non-null.\nPASS db.version is 7\nExpecting exception from db.transaction(&apos;os&apos;)\nPASS Exception was thrown.\nPASS code is DOMException.INVALID_STATE_ERR\nPASS ename is &apos;InvalidStateError&apos;\nPASS successfullyParsed is true\n\nTEST COMPLETE\n\n&quot;
[7826:7826:0321/221757:1975822278:INFO:layout_browsertest.cc(157)] Navigating to URL file:///mnt/data/b/build/slave/Linux_Tests__dbg__1_/build/src/content/test/data/layout_tests/LayoutTests/storage/indexeddb/delete-in-upgradeneeded-close-in-open-success.html and blocking.
[7826:7826:0321/221758:1976465721:INFO:layout_browsertest.cc(162)] Navigation completed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861112</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-21 22:41:59 -0700</bug_when>
    <thetext>Thanks. It can be rolled out if necessary. It&apos;s likely that the state isn&apos;t driven to finished if the context is stopped before the final event comes in. We can probably tweak that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861226</commentid>
    <comment_count>8</comment_count>
      <attachid>194374</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-22 01:37:46 -0700</bug_when>
    <thetext>Comment on attachment 194374
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        No new tests - suggestions welcome.

How about repeating scenario described in https://code.google.com/p/chromium/issues/detail?id=222678 ? You could take heap snapshot before and after reload and check that number of say Window objects or IDBDatabases didn&apos;t grow.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194374</attachid>
            <date>2013-03-21 16:12:32 -0700</date>
            <delta_ts>2013-03-22 01:37:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112976-20130321160820.patch</filename>
            <type>text/plain</type>
            <size>4288</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU5YzY3MmIwNWM0OTc1
YjY2NjI1YmRjYjUyYzE1YzZmNjZjZGQ1Yi4uMjI5NmJmMDEwNmNiMjEyMzQ3OGYxZWM3MGE2NmI3
NGRjYjQyMGRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAzLTIxICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBFbnN1
cmUgc2NyaXB0IHdyYXBwZXJzIGNhbiBiZSBjb2xsZWN0ZWQgYWZ0ZXIgY29udGV4dCBpcyBzdG9w
cGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI5
NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBY3Rp
dmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSBpcyBjYWxsZWQgdG8gc2VlIGlmIHNjcmlw
dCB3cmFwcGVycworICAgICAgICBjYW4gYmUgZGlzcG9zZWQgb2YuIE9uY2UgdGhlIHNjcmlwdCBl
eGVjdXRpb24gY29udGV4dCBoYXMgc3RvcHBlZCB0aGV5CisgICAgICAgIHNob3VsZCBiZSBmcmVl
IHRvIGdvIC0gaW5jbHVkZSB0aGlzIGluIHRoZSBjaGVja3MuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIC0gc3VnZ2VzdGlvbnMgd2VsY29tZS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpoYXNQZW5k
aW5nQWN0aXZpdHkpOiBSZXR1cm4gZmFsc2UgaWYgc3RvcHBlZC4KKyAgICAgICAgKFdlYkNvcmU6
OklEQkRhdGFiYXNlOjpzdG9wKTogRG9uJ3QgYm90aGVyIGNhbGxpbmcgZW1wdHkgc3VwZXIgaW1w
bC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQlJlcXVlc3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSk6IFJldHVybiBmYWxzZSBp
ZiBzdG9wcGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6c3RvcCk6IERvbid0IGJv
dGhlciBjYWxsaW5nIGVtcHR5IHN1cGVyIGltcGwuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246
Omhhc1BlbmRpbmdBY3Rpdml0eSk6IFJldHVybiBmYWxzZSBpZiBzdG9wcGVkLgorICAgICAgICAo
V2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnN0b3ApOiBEb24ndCBib3RoZXIgY2FsbGluZyBlbXB0
eSBzdXBlciBpbXBsLgorCiAyMDEzLTAzLTIxICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgRHJvcCBmdWxsIFVSTHMgZnJvbSBjcm9zcy1vcmlnaW4gYWNjZXNzIGVy
cm9ycyBjYXVzZWQgYnkgcHJvdG9jb2wgbWlzbWF0Y2hlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCBlZDg1ZjkwYTJmYTU3MTNm
Mjg1ODkyYWVlODE3ZmMzYWM1ZTIwM2Q5Li40YjFmY2ZmNjhlM2FkZGQ3N2IwNTE3ZWM3NDFhMzUx
ZDhkYTI0YzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuY3BwCkBAIC0zNDcsMTIgKzM0NywxMSBAQCBib29sIElEQkRhdGFiYXNlOjpoYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewogICAgIC8vIFRoZSBzY3JpcHQgd3JhcHBlciBtdXN0
IG5vdCBiZSBjb2xsZWN0ZWQgYmVmb3JlIHRoZSBvYmplY3QgaXMgY2xvc2VkIG9yCiAgICAgLy8g
d2UgY2FuJ3QgZmlyZSBhICJ2ZXJzaW9uY2hhbmdlIiBldmVudCB0byBsZXQgc2NyaXB0IG1hbnVh
bGx5IGNsb3NlIHRoZSBjb25uZWN0aW9uLgotICAgIHJldHVybiAhbV9jbG9zZVBlbmRpbmcgJiYg
IW1fZXZlbnRUYXJnZXREYXRhLmV2ZW50TGlzdGVuZXJNYXAuaXNFbXB0eSgpOworICAgIHJldHVy
biAhbV9jbG9zZVBlbmRpbmcgJiYgIW1fZXZlbnRUYXJnZXREYXRhLmV2ZW50TGlzdGVuZXJNYXAu
aXNFbXB0eSgpICYmICFtX2NvbnRleHRTdG9wcGVkOwogfQogCiB2b2lkIElEQkRhdGFiYXNlOjpz
dG9wKCkKIHsKLSAgICBBY3RpdmVET01PYmplY3Q6OnN0b3AoKTsKICAgICAvLyBTdG9wIGZpcmVz
IGF0IGEgZGV0ZXJtaW5pc3RpYyB0aW1lLCBzbyB3ZSBuZWVkIHRvIGNhbGwgY2xvc2UgaW4gaXQu
CiAgICAgY2xvc2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcAppbmRleCBjMjA3Y2FkODg4ZDAzMTliYzlkYWE0ODY3NjMyYjc4N2Y3ZDFj
NTUyLi4yOGRjZTM1NTgwOWIwNzYzMTZkMzAxNTBmZGMwY2MwYTUxMmVhYTE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNDIwLDEy
ICs0MjAsMTEgQEAgYm9vbCBJREJSZXF1ZXN0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAog
ICAgIC8vIEZJWE1FOiBJbiBhbiBpZGVhbCB3b3JsZCwgd2Ugc2hvdWxkIHJldHVybiB0cnVlIGFz
IGxvbmcgYXMgYW55b25lIGhhcyBhIG9yIGNhbgogICAgIC8vICAgICAgICBnZXQgYSBoYW5kbGUg
dG8gdXMgYW5kIHdlIGhhdmUgZXZlbnQgbGlzdGVuZXJzLiBUaGlzIGlzIG9yZGVyIHRvIGhhbmRs
ZQogICAgIC8vICAgICAgICB1c2VyIGdlbmVyYXRlZCBldmVudHMgcHJvcGVybHkuCi0gICAgcmV0
dXJuIG1faGFzUGVuZGluZ0FjdGl2aXR5OworICAgIHJldHVybiBtX2hhc1BlbmRpbmdBY3Rpdml0
eSAmJiAhbV9jb250ZXh0U3RvcHBlZDsKIH0KIAogdm9pZCBJREJSZXF1ZXN0OjpzdG9wKCkKIHsK
LSAgICBBY3RpdmVET01PYmplY3Q6OnN0b3AoKTsKICAgICBpZiAobV9jb250ZXh0U3RvcHBlZCkK
ICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggZjU1NTk0M2Q4MDMzZDg4MDk1ODM1NjM4MjVh
ZGYwYTUxNjRiZDI0Mi4uMzNjYzM4ZTc4NjZmMGVjNjM4YTA2MGVlZjZlNDk2Yjc3YTc0ODk3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uLmNwcApAQCAtMzMzLDcgKzMzMyw3IEBAIGJvb2wgSURCVHJhbnNhY3Rpb246Omhhc1BlbmRp
bmdBY3Rpdml0eSgpIGNvbnN0CiAgICAgLy8gRklYTUU6IEluIGFuIGlkZWFsIHdvcmxkLCB3ZSBz
aG91bGQgcmV0dXJuIHRydWUgYXMgbG9uZyBhcyBhbnlvbmUgaGFzIGEgb3IgY2FuCiAgICAgLy8g
ICAgICAgIGdldCBhIGhhbmRsZSB0byB1cyBvciBhbnkgY2hpbGQgcmVxdWVzdCBvYmplY3QgYW5k
IGFueSBvZiB0aG9zZSBoYXZlCiAgICAgLy8gICAgICAgIGV2ZW50IGxpc3RlbmVycy4gVGhpcyBp
cyAgaW4gb3JkZXIgdG8gaGFuZGxlIHVzZXIgZ2VuZXJhdGVkIGV2ZW50cyBwcm9wZXJseS4KLSAg
ICByZXR1cm4gbV9oYXNQZW5kaW5nQWN0aXZpdHk7CisgICAgcmV0dXJuIG1faGFzUGVuZGluZ0Fj
dGl2aXR5ICYmICFtX2NvbnRleHRTdG9wcGVkOwogfQogCiBJbmRleGVkREI6OlRyYW5zYWN0aW9u
TW9kZSBJREJUcmFuc2FjdGlvbjo6c3RyaW5nVG9Nb2RlKGNvbnN0IFN0cmluZyYgbW9kZVN0cmlu
ZywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBA
IC00MjIsNyArNDIyLDYgQEAgYm9vbCBJREJUcmFuc2FjdGlvbjo6Y2FuU3VzcGVuZCgpIGNvbnN0
CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OnN0b3AoKQogewotICAgIEFjdGl2ZURPTU9iamVjdDo6
c3RvcCgpOwogICAgIG1fY29udGV4dFN0b3BwZWQgPSB0cnVlOwogCiAgICAgYWJvcnQoSUdOT1JF
X0VYQ0VQVElPTik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>