Branch: refs/heads/webkitglib/2.52
Home: https://github.com/WebKit/WebKit
Commit: 03cce13301c3830a766fd4db9ee54ff720311254
https://github.com/WebKit/WebKit/commit/03cce13301c3830a766fd4db9ee54ff720311254
Author: Claudio Saavedra <[email protected]>
Date: 2026-02-24 (Tue, 24 Feb 2026)
Changed paths:
M LayoutTests/platform/win/TestExpectations
A LayoutTests/storage/indexeddb/abort-while-committing-crash-expected.txt
A LayoutTests/storage/indexeddb/abort-while-committing-crash.html
M Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
Log Message:
-----------
Cherry-pick 308044@main (3ef9914eedad).
https://bugs.webkit.org/show_bug.cgi?id=308462
[WebKit][Main] [6b74450cea2d0aa4] ASAN_SEGV |
WebCore::IDBTransaction::didCommit;
WebCore::IDBTransaction::connectionClosedFromServer;
WebCore::IDBDatabase::connectionToServerLost
https://bugs.webkit.org/show_bug.cgi?id=308462
Reviewed by Sihui Liu.
When the connection is closed from the server, we might end up with
transactions that are in the process of aborting and whose operations
complete at the same time. This might cause an aborted transaction to
to call operationCompletedOnClient(), in which case we shouldn't
call didCommit as we are in an aborting state.
This bug manifests itself in two ways:
1. In Debug builds, the assertion in didCommit() will fail,
as the transaction is in Aborting state instead of Committing.
2. In a Release build, and particularly after 305703@main, it's
possible to hit an assertion in IDBDatabase::willAbortTransaction(),
as it doesn't find the transaction in neither the active or the
committing transaction list, as the transaction is already in
aborting state.
Accounting for this in operationCompletedInClient() prevents both
issues.
Test reduced by Frédéric Wang <[email protected]>
Test: storage/indexeddb/abort-while-committing-crash.html
* LayoutTests/platform/win/TestExpectations:
* LayoutTests/storage/indexeddb/abort-while-committing-crash-expected.txt:
Added.
* LayoutTests/storage/indexeddb/abort-while-committing-crash.html: Added.
* Source/WebCore/Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::operationCompletedOnClient):
Canonical link: https://commits.webkit.org/308044@main
Canonical link: https://commits.webkit.org/305877.92@webkitglib/2.52
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications