[Webkit-unassigned] [Bug 251203] New: IndexedDB requests occasionally fail with no error, freezing browser

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jan 26 05:16:33 PST 2023


https://bugs.webkit.org/show_bug.cgi?id=251203

            Bug ID: 251203
           Summary: IndexedDB requests occasionally fail with no error,
                    freezing browser
           Product: WebKit
           Version: Safari 16
          Hardware: All
                OS: Unspecified
            Status: NEW
          Severity: Major
          Priority: P2
         Component: Website Storage
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: webkit at goldwave.com
                CC: sihui_liu at apple.com

We are noticing consistent failures when making requests in IndexedDB storage in web workers.  It causes a freeze.  In some cases it prevents the tab from closing.  In rare cases Safari itself cannot be closed and must be force closed.

The problem occurs when using IDBObjectStore.get request.  Neither onsuccess nor onerror callbacks occur on the request.  No callbacks occurs on the transaction.  No errors are indicated.  When enclosed in a promise, the promise never resolves and 'await' freezes the tab.  It seems as if IndexedDB is deadlocked.  If we add a setTimeout to reject the promise after some time, the freeze is avoided.  Curiously the request then has a 'done' readyState shortly after, so we know that the request is valid and correct.  Without the timeout, readyState never becomes done, despite a valid request.

This issue does not occur on Chrome or Firefox with exactly the same code.  The request resolves as it should.

Further information is difficult to gather because the JS Console is too slow and deadlocks as well.

We are using emscripten with threads.  Our theory is if the main thread is waiting on another thread and that thread is waiting on a request, a deadlock occurs in IndexedDB.  This only occurs with webkit.  IndexedDB should not depend on the main thread to complete requests.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20230126/6e06a963/attachment.htm>


More information about the webkit-unassigned mailing list