<?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>143126</bug_id>
          
          <creation_ts>2015-03-26 21:00:58 -0700</creation_ts>
          <short_desc>IndexedDB: index creation fails after multiple versionchange events</short_desc>
          <delta_ts>2016-06-01 15:21:51 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Taylor Buley">taylor.buley</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beidson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1080539</commentid>
    <comment_count>0</comment_count>
      <attachid>249548</attachid>
    <who name="Taylor Buley">taylor.buley</who>
    <bug_when>2015-03-26 21:00:58 -0700</bug_when>
    <thetext>Created attachment 249548
some IDB js to run in console

Background: I&apos;ve found it challenging to keep IDB database connections open for reuse and have instead come to adopt a pattern where every open connection is closed after a single transaction (such as creating an object store or index) has been committed and fired its `complete` event. This is somewhat unorthodox compared to common patterns of reuse seen on the web but my IDB library is very old and time has told me this is the sanest approach when dealing with multiple tabs, etc. As a result, my typical &quot;install code&quot; chains together a number of consecutive `versionchange` transactions, one to create the database and one for each store and index.

I&apos;ve been having trouble creating indexes in iOS8. The problem I see is that my indexes all create fine and and the transactions commit successfully as well but after all is said and done only the index for the last transaction to commit is available on the object store.

Attempting to create a test case for this, I&apos;ve managed to cobble together something that throws an interesting error in WKWebViews in iOS 8.2 after a couple `versionchange` events. The expected result, confirmed as successful in recent Chrome and Firefox builds, would be a database on version `3` with an object store and two indexes. Instead, in the WKWebView a `NotFoundError` is thrown: &quot;DOM IDBDatabase Exception 8: An operation failed because the requested database object could not be found.&quot;

The console.logs show this database as existing and on the correct version number prior to a failed opening after the second `versionchange`. I&apos;m not sure it&apos;s exactly the issue I was attempting to document, but it seems at least related as it also appears for me when creating indexes after multiple `versionchange` events.

https://gist.github.com/buley/eca47cda4979c74174c6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088590</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-04-25 14:59:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/20699776&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198306</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-01 15:21:51 -0700</bug_when>
    <thetext>This should be working fine with modern IDB.

Please try in a WebKit nightly or Safari Tech Preview.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>249548</attachid>
            <date>2015-03-26 21:00:58 -0700</date>
            <delta_ts>2015-03-26 21:00:58 -0700</delta_ts>
            <desc>some IDB js to run in console</desc>
            <filename>indextxtest.js</filename>
            <type>text/javascript</type>
            <size>2724</size>
            <attacher name="Taylor Buley">taylor.buley</attacher>
            
              <data encoding="base64">CnZhciBjdXJyZW50VGltZSA9IERhdGUubm93KCksCiAgICBkYk5hbWUgPSAiYnVndGVzdF8iICsg
Y3VycmVudFRpbWUsCiAgICBpbmRleGVzID0gWwogICAgICB7CiAgICAgICAgbmFtZTogImJ5X3Rp
dGxlIiwKICAgICAgICBwYXRoOiAidGl0bGUiLAogICAgICAgIHVuaXF1ZTogZmFsc2UKICAgICAg
fSwKICAgICAgewogICAgICAgIG5hbWU6ICJieV9hdXRob3IiLAogICAgICAgIHBhdGg6ICJhdXRo
b3IiLAogICAgICAgIHVuaXF1ZTogZmFsc2UKICAgICAgfQogICAgXSwKICAgIGNyZWF0ZUluZGV4
ID0gZnVuY3Rpb24oZGIsIHN0b3JlLCBpZHgpIHsKICAgICAgY29uc29sZS5sb2coJ2NyZWF0aW5n
IGluZGV4JyxzdG9yZSwgZGIpOwogICAgICAgIHJldHVybiBbIHN0b3JlLCBzdG9yZS5jcmVhdGVJ
bmRleChjdXJyZW50VGltZSArICJfIiArIGlkeC5uYW1lLCBpZHgucGF0aCwgewogICAgICAgICAg
dW5pcXVlOiBpZHgudW5pcXVlIHx8IGZhbHNlCiAgICAgICAgfSkgXTsKICAgIH0sCiAgICBnZXRT
dG9yZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgdmFyIHN0b3JlID0gKGV2ZW50LnRyYW5z
YWN0aW9uIHx8IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbikub2JqZWN0U3RvcmUoY3VycmVudFRp
bWUgKyAiXyIgKyAiYm9va3MiLCB7CiAgICAgICAgICAgIGtleVBhdGg6ICJpc2JuIgogICAgICAg
IH0pOwogICAgICAgIGNvbnNvbGUubG9nKCJnb3Qgc3RvcmUiLCBzdG9yZSk7CiAgICAgICAgcmV0
dXJuIHN0b3JlOwogICAgfSwKICAgIGNyZWF0ZVN0b3JlID0gZnVuY3Rpb24oZGIpIHsKICAgICAg
ICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShjdXJyZW50VGltZSArICJfIiArICJi
b29rcyIsIHsKICAgICAgICAgICAga2V5UGF0aDogImlzYm4iCiAgICAgICAgfSk7CiAgICAgICAg
Y29uc29sZS5sb2coImNyZWF0ZWQgc3RvcmUiLCBzdG9yZSk7CiAgICAgICAgcmV0dXJuIHN0b3Jl
OwogICAgfSwKICAgIHByb2Nlc3NJbmRleGVzID0gZnVuY3Rpb24oZGIsIHN0b3JlTmFtZSkgewog
ICAgICAgIHZhciBuZXh0X3JlcXVlc3QsIGlkeCA9IGluZGV4ZXMucG9wKCksIHN0b3JlLCBpbmRl
eDsKICAgICAgICBjb25zb2xlLmxvZygicHJvY2Vzc2luZyBuZXh0IGluZGV4IixpZHgpOwogICAg
ICAgIGlmIChpZHgpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKCJvcGVuaW5nIGRhdGFiYXNlIixk
Yk5hbWUsIGRiLnZlcnNpb24gKyAxKTsKICAgICAgICAgIG5leHRfcmVxdWVzdCA9IGluZGV4ZWRE
Qi5vcGVuKGRiTmFtZSwgZGIudmVyc2lvbiArIDEpOwogICAgICAgICAgbmV4dF9yZXF1ZXN0LmFk
ZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgICBj
b25zb2xlLmxvZygiTmV4dCByZXF1ZXN0IGVycm9ycyIsIHN0b3JlTmFtZSwgZXZlbnQpOwogICAg
ICAgICAgfSk7CiAgICAgICAgICBuZXh0X3JlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigndXBncmFk
ZW5lZWRlZCcsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgICAgc3RvcmUgPSBldmVudC50
YXJnZXQudHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoc3RvcmVOYW1lKTsKICAgICAgICAgICAgICB0
dXBsZSA9IGNyZWF0ZUluZGV4KGV2ZW50LnRhcmdldC5yZXN1bHQsIHN0b3JlLCBpZHgpOwogICAg
ICAgICAgICAgIHN0b3JlLnRyYW5zYWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbXBsZXRlJyxm
dW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJJTkRFWCBDUkVBVEUgQ09N
UExFVEUiKQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIGNvbnNvbGUubG9nKCduZXh0
IHJlcXVlc3QgZmluaXNoZWQnLGV2ZW50LnRhcmdldC5yZXN1bHQsIHR1cGxlWzBdLHR1cGxlWzFd
KTsKICAgICAgICAgICAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24uZGIuY2xvc2UoKTsKICAg
ICAgICAgICAgICBwcm9jZXNzSW5kZXhlcyhldmVudC50YXJnZXQucmVzdWx0LCBzdG9yZU5hbWUp
OwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnNvbGUubG9nKCJE
b25lIGNyZWF0aW5nIGluZGV4ZXMiKTsKICAgICAgICB9CiAgICB9LAogICAgZmlyc3RfcmVxdWVz
dCA9IGluZGV4ZWREQi5vcGVuKGRiTmFtZSksCiAgICB3YXNfdXBncmFkZWQgPSBmYWxzZTsKCmZp
cnN0X3JlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIGZ1bmN0aW9uKGV2ZW50KSB7
CiAgICBjb25zb2xlLmxvZygic3VjY2VzcyIpOwogICAgdmFyIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdCwKICAgICAgc3RvcmU7CiAgICBpZiAoIXdhc191cGdyYWRlZCkgewogICAgICBzdG9yZSA9
IGdldFN0b3JlKGV2ZW50LnRyYW5zY2F0aW9uKTsKICAgICAgZGIuY2xvc2UoKTsKICAgICAgcHJv
Y2Vzc0luZGV4ZXMoIGRiLCBzdG9yZS5uYW1lICk7CiAgICB9IGVsc2UgewogICAgICB3YXNfdXBn
cmFkZWQgPSBmYWxzZTsKICAgIH0KfSk7CgpmaXJzdF9yZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIo
J3VwZ3JhZGVuZWVkZWQnLCBmdW5jdGlvbihldmVudCkgewogICAgY29uc29sZS5sb2coInVwZ3Jh
ZGVuZWVkZWQiKTsKICAgIHZhciBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQsCiAgICAgIHN0b3Jl
ID0gY3JlYXRlU3RvcmUoZGIpOwogICAgd2FzX3VwZ3JhZGVkID0gdHJ1ZTsKICAgIHByb2Nlc3NJ
bmRleGVzKCBkYiwgc3RvcmUubmFtZSApOwogICAgZGIuY2xvc2UoKTsKfSk7
</data>

          </attachment>
      

    </bug>

</bugzilla>