<?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>78004</bug_id>
          
          <creation_ts>2012-02-07 11:04:50 -0800</creation_ts>
          <short_desc>IndexedDB: Layout Test storage/indexeddb/open-close-version.html is flaky</short_desc>
          <delta_ts>2012-02-13 17:16:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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>
          <dependson>78167</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>dgrogan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>551138</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-02-07 11:04:50 -0800</bug_when>
    <thetext>storage/indexeddb/open-close-version.html is flaky on all platforms

This test uses setTimeout() calls to try and keep transactions alive, which is not supported in the spec and probably entering a race condition with timers.

The test should be reworked to use IDB correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551326</commentid>
    <comment_count>1</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-02-07 13:42:46 -0800</bug_when>
    <thetext>Dashboard link:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=storage%2Findexeddb%2Fopen-close-version.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551347</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-02-07 13:56:46 -0800</bug_when>
    <thetext>Looking at the flake output, it doesn&apos;t appear that the setTimeout is at fault. (And the usage appears correct, contrary to my recollection). Here are three examples:

===========================================
Example 1:
===========================================
...
TEST: open and setVersion blocked if a VERSION_CHANGE transaction is running - close when blocked
window.dbname = &apos;test3&apos;; window.ver = 1; window.steps = []
&apos;h1.open&apos;
&apos;h1.open.onsuccess&apos;
&apos;h2.open&apos;
&apos;h2.open.onsuccess&apos;
&apos;h1.setVersion&apos;
&apos;h2.setVersion&apos;
&lt;TIMEOUT&gt;
===========================================

===========================================
Example 2:
===========================================
...
TEST: two setVersions from the same connection
window.dbname = &apos;test6&apos;; window.ver = 1; window.steps = []
&apos;h1.open&apos;
&apos;h1.open.onsuccess&apos;
&apos;h1.setVersion&apos;
&apos;h1.setVersion&apos;
&apos;h1.setVersion.onsuccess&apos;
&apos;h1.setVersion.transaction-complete&apos;
half done
&lt;TIMEOUT&gt;
===========================================

===========================================
Example 3:
===========================================
...
TEST: two setVersions from the same connection
window.dbname = &apos;test6&apos;; window.ver = 1; window.steps = []
&apos;h1.open&apos;
&apos;h1.open.onsuccess&apos;
&apos;h1.setVersion&apos;
&apos;h1.setVersion&apos;&lt;TIMEOUT&gt;
===========================================


Analysis: All three of these point to setVersion calls getting wedged, so that either no events go out (so one handle can close) or the call is never processed. 

This looks very similar to http://crbug.com/80111 but without the tab closure issue - all of these are occurring within the same renderer process.


===========================================
Example :
===========================================
...
&lt;TIMEOUT&gt;
===========================================
Analysis:
===========================================</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555791</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-02-13 17:16:59 -0800</bug_when>
    <thetext>This has been happy since http://webkit.org/b/78167 landed in http://trac.webkit.org/changeset/107278 so declaring victory</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>