Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3ef9914eedadd24b6e52a3cb2b1b50d1707a0c42
https://github.com/WebKit/WebKit/commit/3ef9914eedadd24b6e52a3cb2b1b50d1707a0c42
Author: Claudio Saavedra <[email protected]>
Date: 2026-02-23 (Mon, 23 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:
-----------
[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
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications