Thread 0 Crashed:: Dispatch queue: com.apple.main-thread -> 76 RELEASE_ASSERT(m_databaseQueue.isKilled()); 0 com.apple.WebCore 0x00000001010f8b23 WTFCrashWithInfo(int, char const*, char const*, int) + 19 1 com.apple.WebCore 0x00000001019fc890 WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase() + 2576 2 com.apple.WebCore 0x00000001019d04ef WebCore::IDBServer::IDBServer::~IDBServer() + 287 3 com.apple.WebCore 0x00000001019c503e WebCore::IDBServer::IDBServer::~IDBServer() + 14 4 com.apple.WebCore 0x0000000101a26785 WebCore::InProcessIDBServer::~InProcessIDBServer() + 341 5 com.apple.WebCore 0x0000000101a2609e WebCore::InProcessIDBServer::~InProcessIDBServer() + 14 6 com.apple.WebCore 0x0000000101a29aa7 WTF::Function<void ()>::CallableWrapper<WebCore::InProcessIDBServer::databaseConnectionClosed(unsigned long long)::$_43>::~CallableWrapper() + 55 7 com.apple.JavaScriptCore 0x000000010429c503 WTF::RunLoop::performWork() + 515 8 com.apple.JavaScriptCore 0x000000010429c672 WTF::RunLoop::performWork(void*) + 34 9 com.apple.CoreFoundation 0x00007fff312225e3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 r239887 removes a retain cycle between IDBConnectionToClientDelegate and IDBConnectionToClient, so IDBConnectionToClientDelegate(InProcessIDBServer) no longer live forever and can be destructed before shutdown of UniqueIDBDatabase finishes.
<rdar://problem/48285200>
Created attachment 363116 [details] Patch
Created attachment 363139 [details] Patch
Comment on attachment 363139 [details] Patch Attachment 363139 [details] did not pass mac-debug-ews (mac): Output: https://webkit-queues.webkit.org/results/11309111 New failing tests: webgl/2.0.0/conformance/context/context-release-upon-reload.html
Created attachment 363157 [details] Archive of layout-test-results from ews114 for mac-highsierra The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews114 Port: mac-highsierra Platform: Mac OS X 10.13.6
Created attachment 363231 [details] Patch
Comment on attachment 363231 [details] Patch Can you add a test for this?
(In reply to Geoffrey Garen from comment #7) > Comment on attachment 363231 [details] > Patch > > Can you add a test for this? For testing, we need to make sure ~IDBDatabase() and ~InProcessIDBServer() happen before the shutdown of UniqueIDBDatabase. For layout test, this means all WebPages using the same WebDatabaseProvider(the same webPageGroupID) should go away before UniqueIDBDatabase finishes its tasks. We can create a webpage with IDBDatabase by using window.open and then close it, but we cannot close all the other pages in the same group and force InProcessIDBServer to go away. We can probably make this test work by making WebDatabaseProvider not per page group but per page, but that seems not to be the correct direction.
Comment on attachment 363231 [details] Patch Clearing flags on attachment: 363231 Committed r242555: <https://trac.webkit.org/changeset/242555>
All reviewed patches have been landed. Closing bug.