<?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>150678</bug_id>
          
          <creation_ts>2015-10-29 10:35:49 -0700</creation_ts>
          <short_desc>storage/indexeddb/modern tests crashing frequently on mac-wk1</short_desc>
          <delta_ts>2015-10-29 23:21:50 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</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="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1137555</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2015-10-29 10:35:49 -0700</bug_when>
    <thetext>storage/indexeddb/modern tests crashing frequently on mac-wk1

storage/indexeddb/modern/createobjectstore-basic.html
&lt;http://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=storage%2Findexeddb%2Fmodern%2Fcreateobjectstore-basic.html&gt;

storage/indexeddb/modern/objectstore-attributes.html
&lt;http://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=storage%2Findexeddb%2Fmodern%2Fobjectstore-attributes.html&gt;

storage/indexeddb/modern/transaction-scheduler-1.html
&lt;https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=storage%2Findexeddb%2Fmodern%2Ftransaction-scheduler-1.html&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137558</commentid>
    <comment_count>1</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2015-10-29 10:44:30 -0700</bug_when>
    <thetext>Marked as flaky in &lt;http://trac.webkit.org/changeset/191733&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137562</commentid>
    <comment_count>2</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2015-10-29 10:47:42 -0700</bug_when>
    <thetext>*** Bug 150636 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137563</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2015-10-29 10:49:47 -0700</bug_when>
    <thetext>Same for storage/indexeddb/modern/aborted-put.html
&lt;http://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=storage%2Findexeddb%2Fmodern%2Faborted-put.html&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137798</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-29 22:05:49 -0700</bug_when>
    <thetext>I don&apos;t know how to navigate the &quot;flakiness dashboard&quot; to find an example of an actually test failure.

Combined with the fact that one of these URLs takes about a full minute to load... any chance I could see a URL direct to a failure instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137800</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-29 22:07:35 -0700</bug_when>
    <thetext>This tool is pretty much unusable to me. I&apos;m perfectly willing to just click around random links until I find what I&apos;m looking for, but not if even link takes ~20second or more to load.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137805</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-29 22:13:51 -0700</bug_when>
    <thetext>Managed to dig up stack traces using this tool.


stderr:
ASSERTION FAILED: rawTransaction
/Volumes/Data/slave/yosemite-debug/build/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp(120) : virtual WebCore::IDBError WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore(const WebCore::IDBResourceIdentifier &amp;, const WebCore::IDBObjectStoreInfo &amp;)
1   0x105cce7c0 WTFCrash
2   0x10b8beaf7 WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore(WebCore::IDBResourceIdentifier const&amp;, WebCore::IDBObjectStoreInfo const&amp;)
3   0x10c3502f7 WebCore::IDBServer::UniqueIDBDatabase::createObjectStore(WebCore::IDBServer::UniqueIDBDatabaseTransaction&amp;, WebCore::IDBObjectStoreInfo const&amp;, std::__1::function&lt;void (WebCore::IDBError const&amp;)&gt;)
4   0x10c37c6c6 WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore(WebCore::IDBRequestData const&amp;, WebCore::IDBObjectStoreInfo const&amp;)
5   0x10ae28746 WebCore::IDBServer::IDBServer::createObjectStore(WebCore::IDBRequestData const&amp;, WebCore::IDBObjectStoreInfo const&amp;)
6   0x10aeffb1e WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&amp;, WebCore::IDBObjectStoreInfo const&amp;)::$_11::operator()() const
7   0x10aeffabc std::__1::__function::__func&lt;WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&amp;, WebCore::IDBObjectStoreInfo const&amp;)::$_11, std::__1::allocator&lt;WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&amp;, WebCore::IDBObjectStoreInfo const&amp;)::$_11&gt;, void ()&gt;::operator()()
8   0x10575963a std::__1::function&lt;void ()&gt;::operator()() const
9   0x105d16d42 WTF::RunLoop::performWork()
10  0x105d174c4 WTF::RunLoop::performWork(void*)
11  0x7fff8b2b5a01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
12  0x7fff8b2a7b8d __CFRunLoopDoSources0
13  0x7fff8b2a71bf __CFRunLoopRun
14  0x7fff8b2a6bd8 CFRunLoopRunSpecific
15  0x104d8e115 runTest(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;)
16  0x104d8c83a runTestingServerLoop()
17  0x104d8bdb0 dumpRenderTree(int, char const**)
18  0x104d8ea1d DumpRenderTreeMain(int, char const**)
19  0x104de5702 main



and


Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x000000010a76d86a WTFCrash + 42 (Assertions.cpp:321)
1   com.apple.WebCore             	0x0000000110710277 WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore(WebCore::IDBResourceIdentifier const&amp;, WebCore::IDBObjectStoreInfo const&amp;) + 599 (MemoryIDBBackingStore.cpp:132)
2   com.apple.WebCore             	0x0000000111156db7 WebCore::IDBServer::UniqueIDBDatabase::createObjectStore(WebCore::IDBServer::UniqueIDBDatabaseTransaction&amp;, WebCore::IDBObjectStoreInfo const&amp;, std::__1::function&lt;void (WebCore::IDBError const&amp;)&gt;) + 439 (UniqueIDBDatabase.cpp:241)
3   com.apple.WebCore             	0x000000011118da5a WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore(WebCore::IDBRequestData const&amp;, WebCore::IDBObjectStoreInfo const&amp;) + 426 (UniqueIDBDatabaseTransaction.cpp:107)
4   com.apple.WebCore             	0x000000010fc7b396 WebCore::IDBServer::IDBServer::createObjectStore(WebCore::IDBRequestData const&amp;, WebCore::IDBObjectStoreInfo const&amp;) + 198 (IDBServer.cpp:169)
5   com.apple.WebCore             	0x000000010fd5b41e WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&amp;, WebCore::IDBObjectStoreInfo const&amp;)::$_11::operator()() const + 78 (InProcessIDBServer.cpp:167)
6   com.apple.WebCore             	0x000000010fd5b3bc std::__1::__function::__func&lt;WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&amp;, WebCore::IDBObjectStoreInfo const&amp;)::$_11, std::__1::allocator&lt;WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&amp;, WebCore::IDBObjectStoreInfo const&amp;)::$_11&gt;, void ()&gt;::operator()() + 60 (functional:1370)
7   com.apple.JavaScriptCore      	0x000000010a1cf7ba std::__1::function&lt;void ()&gt;::operator()() const + 26 (functional:1755)
8   com.apple.JavaScriptCore      	0x000000010a7b85e4 WTF::RunLoop::performWork() + 276 (RunLoop.cpp:105)
9   com.apple.JavaScriptCore      	0x000000010a7b8d54 WTF::RunLoop::performWork(void*) + 36 (RunLoopCF.cpp:38)


Note in these backtraces the main thread is doing backing store stuff directly.

That was a terrible and accidental oversight that was an obvious thread-safety issue, race-condition issue, and was just fixed in https://trac.webkit.org/changeset/191758/trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137818</commentid>
    <comment_count>7</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2015-10-29 23:21:50 -0700</bug_when>
    <thetext>Sorry about the slow flakiness dashboard. I&apos;ll provide direct links next time. Removed flaky expectations in r191780</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>