Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 147fbb9c535fe651cc56b7cdc5e2d87fa75c673a
      
https://github.com/WebKit/WebKit/commit/147fbb9c535fe651cc56b7cdc5e2d87fa75c673a
  Author: Ahmad Saleem <[email protected]>
  Date:   2026-10-13 (Tue, 13 Oct 2026)

  Changed paths:
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/Modules/indexeddb/IDBDatabase.cpp

  Log Message:
  -----------
  REGRESSION(323066@main): 
http/tests/IndexedDB/transaction-abort-pending-requests-stop.html is a flaky 
failure because IDBDatabase::stop() skips
https://bugs.webkit.org/show_bug.cgi?id=327323
rdar://189863571

Reviewed by Brady Eidson.

323066@main made IDBDatabase::stop() finalize committing and aborting
transactions locally, but only inside the if (!m_closedInServer) block.
Before that block runs, close() calls maybeCloseInServer(), which waits
for active and committing transactions but not aborting ones. When the
only remaining transaction is aborting, maybeCloseInServer() closes the
connection in the server and sets m_closedInServer, so the cleanup
never runs.

If the abort is still held on the client waiting for didStart, the
server drops the pending transaction when the connection closes. No
didStart or didAbort arrives, the transaction stays in the Aborting
state, and virtualHasPendingActivity() keeps it alive forever. Whether
this happens depends on whether didStart and the abort round trip
complete before the frame is removed, which is why the test is flaky.

Finalize committing and aborting transactions in stop() whether or not
the connection was already closed in the server.

* LayoutTests/platform/glib/TestExpectations: Remove flaky expectation.
* Source/WebCore/Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::stop):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to