[Webkit-unassigned] [Bug 28207] Another deadlock in the DB code

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Aug 13 14:14:07 PDT 2009


--- Comment #1 from Michael Nordman <michaeln at google.com>  2009-08-13 14:14:04 PDT ---
Good bug.

Agreed that the root cause of this problem is the synchronous
window.openDatabase method that must read the 'version' attribute value, and
that caching that value and using the cached value at open time should help.

I don't follow how caching whether the __WebKitDatabaseInfoTable__ exists
solves the problem. (i see what your driving at now, because it gets created
prior to checking for the cached version, we could just move the table creation
till a little further along in all cases).

Seems like this could be fixed within performOpenAndVerify().

If a cached version value exists, don't bother touching the dbfile in anyway
beyond opening the sqlite3 handle, simply trust the cached value.

Otherwise its the first opening of this DB in this session. (Create the special
table if needed and) read the version value from the DB and populate the cache
with that value.

Provided this happens behind the guidMutex, i think there won't be a deadlock.

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