Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8414bf071128e3595500bf190a4d6d43f37beb65
      
https://github.com/WebKit/WebKit/commit/8414bf071128e3595500bf190a4d6d43f37beb65
  Author: Sihui Liu <[email protected]>
  Date:   2025-10-17 (Fri, 17 Oct 2025)

  Changed paths:
    M Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp

  Log Message:
  -----------
  ASSERTION FAILED: checkedPtrCountWithoutThreadCheck() in SQLiteStorageArea:: 
createAndPopulateInitialDatabaseInfo
rdar://162891393
https://bugs.webkit.org/show_bug.cgi?id=301007

Reviewed by Per Arne Vollan and Chris Dumez.

I got the assertion faliure when running API test 
IndexedDB.IndexedDBFileHashCollision on debug build. The cause is that
SQLiteIDBBackingStore::createAndPopulateInitialDatabaseInfo sets m_database to 
null (with closeSQLiteDB after
m_database is captured in a local CheckedPtr variable sqliteDB. When the 
CheckedPtr variable is destroyed at function
exit, the assertion will be hit as the SQLiteDatabase object is already gone.

To fix this, avoid resetting m_database by removing closeSQLiteDB() calls in 
createAndPopulateInitialDatabaseInfo. This
is viable because the only caller of createAndPopulateInitialDatabaseInfo (i.e. 
getOrEstablishDatabaseInfo) will invoke
closeSQLiteDB when createAndPopulateInitialDatabaseInfo returns nullptr.

* Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::createAndPopulateInitialDatabaseInfo):

Canonical link: https://commits.webkit.org/301758@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to