[Webkit-unassigned] [Bug 29729] New: SQLiteTransaction should use BEGIN DEFERRED instead of BEGIN to begin read-only transactions

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Sep 24 18:14:38 PDT 2009


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

           Summary: SQLiteTransaction should use BEGIN DEFERRED instead of
                    BEGIN to begin read-only transactions
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: All
        OS/Version: All
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: New Bugs
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: dumi at chromium.org
                CC: beidson at apple.com, dglazkov at chromium.org,
                    michaeln at google.com, aroben at apple.com,
                    andersca at apple.com


If a port builds its own sqlite lib and uses flags to turn BEGIN into BEGIN
IMMEDIATE by default (like chromium), then scheduling multiple read-only
transactions on the DB on the same DB thread will result in a deadlock. The DB
thread will essentially be stuck on a task that tries to acquire a RESERVED
lock on the DB file, while that lock is held by another task that waits in the
queue. In order to prevent this, we should change SQLiteTransaction to
explicitly issue a BEGIN DEFERRED command for read-only transactions. This
change will also make sure that read-only transactions don't unnecessarily
acquire a higher level lock that would delay other potential transactions on
the same DB.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list