Bug 240912

Summary: REGRESSION (247017@main): [macOS WK1] ASSERTION FAILED: !databaseName.isEmpty() in Core::IDBServer::SQLiteIDBBackingStore::encodeDatabaseName()
Product: WebKit Reporter: Ryan Haddad <ryanhaddad>
Component: Website StorageAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: bfulgham, sihui_liu, webkit-bot-watchers-bugzilla, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
crash log none

Description Ryan Haddad 2022-05-25 10:04:15 PDT
Created attachment 459760 [details]
crash log

storage/indexeddb/modern/opendatabase-success-after-versionchange-private.html is very frequently asserting on macOS debug WK1 bots with the following backtrace:

0   com.apple.JavaScriptCore      	0x000000010fe01cee WTFCrash + 14 (Assertions.cpp:322)
1   com.apple.WebCore             	0x0000000137b20bbb WTFCrashWithInfo(int, char const*, char const*, int) + 27 (Assertions.h:748)
2   com.apple.WebCore             	0x000000013a32adca WebCore::IDBServer::SQLiteIDBBackingStore::encodeDatabaseName(WTF::String const&) + 122 (SQLiteIDBBackingStore.cpp:915)
3   com.apple.WebCore             	0x000000013a29313b WebCore::IDBServer::IDBServer::upgradedDatabaseDirectory(WebCore::IDBDatabaseIdentifier const&) + 171 (IDBServer.cpp:779)
4   com.apple.WebCore             	0x000000013a292f37 WebCore::IDBServer::IDBServer::createBackingStore(WebCore::IDBDatabaseIdentifier const&) + 407 (IDBServer.cpp:137)
5   com.apple.WebCore             	0x000000013a3b8e4e WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperationAfterSpaceCheck(bool) + 526 (UniqueIDBDatabase.cpp:229)
6   com.apple.WebCore             	0x000000013a3e32ce WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation()::$_0::operator()(bool) + 206 (UniqueIDBDatabase.cpp:214)
7   com.apple.WebCore             	0x000000013a3e30ac WTF::Detail::CallableWrapper<WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation()::$_0, void, bool>::call(bool) + 60 (Function.h:53)
8   com.apple.WebCore             	0x0000000137f96883 WTF::Function<void (bool)>::operator()(bool) const + 163 (Function.h:82)
9   com.apple.WebCore             	0x0000000137f966ce WTF::CompletionHandler<void (bool)>::operator()(bool) + 270 (CompletionHandler.h:72)
10  com.apple.WebCore             	0x000000013a297f73 WebCore::IDBServer::IDBServer::requestSpace(WebCore::ClientOrigin const&, unsigned long long, WTF::CompletionHandler<void (bool)>&&) + 323 (IDBServer.cpp:754)
11  com.apple.WebCore             	0x000000013a3b8c00 WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation() + 720 (UniqueIDBDatabase.cpp:206)
12  com.apple.WebCore             	0x000000013a3bb50d WebCore::IDBServer::UniqueIDBDatabase::handleCurrentOperation() + 221 (UniqueIDBDatabase.cpp:396)
13  com.apple.WebCore             	0x000000013a3b886c WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations() + 444 (UniqueIDBDatabase.cpp:381)
14  com.apple.WebCore             	0x000000013a3b8549 WebCore::IDBServer::UniqueIDBDatabase::openDatabaseConnection(WebCore::IDBServer::IDBConnectionToClient&, WebCore::IDBRequestData const&) + 265 (UniqueIDBDatabase.cpp:179)
15  com.apple.WebCore             	0x000000013a2934c3 WebCore::IDBServer::IDBServer::openDatabase(WebCore::IDBRequestData const&) + 387 (IDBServer.cpp:155)
16  com.apple.WebKitLegacy        	0x000000010daad629 InProcessIDBServer::openDatabase(WebCore::IDBRequestData const&)::$_5::operator()() const + 89 (InProcessIDBServer.cpp:144)
17  com.apple.WebKitLegacy        	0x000000010daad4de WTF::Detail::CallableWrapper<InProcessIDBServer::openDatabase(WebCore::IDBRequestData const&)::$_5, void>::call() + 30 (Function.h:53)
18  com.apple.JavaScriptCore      	0x000000010fe31432 WTF::Function<void ()>::operator()() const + 130 (Function.h:82)
19  com.apple.JavaScriptCore      	0x000000010ff81e8e WTF::(anonymous namespace)::DispatchWorkItem::operator()() + 30 (WorkQueueCocoa.cpp:40)
20  com.apple.JavaScriptCore      	0x000000010ff802dd void WTF::dispatchWorkItem<WTF::(anonymous namespace)::DispatchWorkItem>(void*) + 29 (WorkQueueCocoa.cpp:48)

Looks like this is ASSERT(!databaseName.isEmpty()), and this probably started with https://commits.webkit.org/247017@main

https://results.webkit.org/?suite=layout-tests&test=storage%2Findexeddb%2Fmodern%2Fopendatabase-success-after-versionchange-private.html&platform=mac&style=debug&flavor=wk1&recent=False
Comment 1 Radar WebKit Bug Importer 2022-05-25 10:04:30 PDT
<rdar://problem/93909786>
Comment 2 Brent Fulgham 2022-06-30 13:28:56 PDT

*** This bug has been marked as a duplicate of bug 241939 ***