Bug 150678 - storage/indexeddb/modern tests crashing frequently on mac-wk1
Summary: storage/indexeddb/modern tests crashing frequently on mac-wk1
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: WebKit Nightly Build
Hardware: Mac Unspecified
: P2 Normal
Assignee: Brady Eidson
URL:
Keywords:
: 150636 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-10-29 10:35 PDT by Ryan Haddad
Modified: 2015-10-29 23:21 PDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Comment 1 Ryan Haddad 2015-10-29 10:44:30 PDT
Marked as flaky in <http://trac.webkit.org/changeset/191733>
Comment 2 Ryan Haddad 2015-10-29 10:47:42 PDT
*** Bug 150636 has been marked as a duplicate of this bug. ***
Comment 4 Brady Eidson 2015-10-29 22:05:49 PDT
I don't know how to navigate the "flakiness dashboard" 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?
Comment 5 Brady Eidson 2015-10-29 22:07:35 PDT
This tool is pretty much unusable to me. I'm perfectly willing to just click around random links until I find what I'm looking for, but not if even link takes ~20second or more to load.
Comment 6 Brady Eidson 2015-10-29 22:13:51 PDT
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 &, const WebCore::IDBObjectStoreInfo &)
1   0x105cce7c0 WTFCrash
2   0x10b8beaf7 WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore(WebCore::IDBResourceIdentifier const&, WebCore::IDBObjectStoreInfo const&)
3   0x10c3502f7 WebCore::IDBServer::UniqueIDBDatabase::createObjectStore(WebCore::IDBServer::UniqueIDBDatabaseTransaction&, WebCore::IDBObjectStoreInfo const&, std::__1::function<void (WebCore::IDBError const&)>)
4   0x10c37c6c6 WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore(WebCore::IDBRequestData const&, WebCore::IDBObjectStoreInfo const&)
5   0x10ae28746 WebCore::IDBServer::IDBServer::createObjectStore(WebCore::IDBRequestData const&, WebCore::IDBObjectStoreInfo const&)
6   0x10aeffb1e WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&, WebCore::IDBObjectStoreInfo const&)::$_11::operator()() const
7   0x10aeffabc std::__1::__function::__func<WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&, WebCore::IDBObjectStoreInfo const&)::$_11, std::__1::allocator<WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&, WebCore::IDBObjectStoreInfo const&)::$_11>, void ()>::operator()()
8   0x10575963a std::__1::function<void ()>::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<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
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&, WebCore::IDBObjectStoreInfo const&) + 599 (MemoryIDBBackingStore.cpp:132)
2   com.apple.WebCore             	0x0000000111156db7 WebCore::IDBServer::UniqueIDBDatabase::createObjectStore(WebCore::IDBServer::UniqueIDBDatabaseTransaction&, WebCore::IDBObjectStoreInfo const&, std::__1::function<void (WebCore::IDBError const&)>) + 439 (UniqueIDBDatabase.cpp:241)
3   com.apple.WebCore             	0x000000011118da5a WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore(WebCore::IDBRequestData const&, WebCore::IDBObjectStoreInfo const&) + 426 (UniqueIDBDatabaseTransaction.cpp:107)
4   com.apple.WebCore             	0x000000010fc7b396 WebCore::IDBServer::IDBServer::createObjectStore(WebCore::IDBRequestData const&, WebCore::IDBObjectStoreInfo const&) + 198 (IDBServer.cpp:169)
5   com.apple.WebCore             	0x000000010fd5b41e WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&, WebCore::IDBObjectStoreInfo const&)::$_11::operator()() const + 78 (InProcessIDBServer.cpp:167)
6   com.apple.WebCore             	0x000000010fd5b3bc std::__1::__function::__func<WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&, WebCore::IDBObjectStoreInfo const&)::$_11, std::__1::allocator<WebCore::InProcessIDBServer::createObjectStore(WebCore::IDBRequestData const&, WebCore::IDBObjectStoreInfo const&)::$_11>, void ()>::operator()() + 60 (functional:1370)
7   com.apple.JavaScriptCore      	0x000000010a1cf7ba std::__1::function<void ()>::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
Comment 7 Ryan Haddad 2015-10-29 23:21:50 PDT
Sorry about the slow flakiness dashboard. I'll provide direct links next time. Removed flaky expectations in r191780