Bug 17140 - Reproducible assertion failure in SQLiteDatabase::sqlite3Handle()
Summary: Reproducible assertion failure in SQLiteDatabase::sqlite3Handle()
Status: RESOLVED INVALID
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.5
: P2 Normal
Assignee: Nobody
URL: http://bugs.webkit.org/attachment.cgi...
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2008-02-01 12:17 PST by Alexey Proskuryakov
Modified: 2008-02-04 13:18 PST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Proskuryakov 2008-02-01 12:17:30 PST
The test case from bug 16876 still fails with an assertion failure for me, just a different one:

Starting DatabaseThread 0x18de4fd0
Iteration of main loop for DatabaseThread 0x18de4fd0
Iteration of main loop for DatabaseThread 0x18de4fd0
Performing DatabaseTask 0x18de4ee0
SQL - prepare - PRAGMA temp_store = MEMORY;
ASSERTION FAILED: currentThread() == m_openingThread
(/Users/ap/Safari/OpenSource/WebCore/platform/sql/SQLiteDatabase.h:97 sqlite3* WebCore::SQLiteDatabase::sqlite3Handle() const)
Comment 1 Alexey Proskuryakov 2008-02-01 12:27:06 PST
<rdar://problem/5720240>
Comment 2 Alexey Proskuryakov 2008-02-04 12:10:29 PST
Hmm, I'm getting the same assertion failure just opening <http://webkit.org/misc/DatabaseExample.html>
Comment 3 Brady Eidson 2008-02-04 12:32:07 PST
Alexey,

I'm intrigued by that - I certainly can open the example with no problems...  there must be something different going on between your setup and mine, I wish I could figure out what it is!
Comment 4 Alexey Proskuryakov 2008-02-04 13:02:52 PST
This isn't a threading issue in fact - m_openingThread is just uninitialized (other than to zero).

I'm running shipping Safari, with WebKit slightly hacked for the delegate-less client; it's possible that my hack is wrong and is causing the problem. Brady is going to try deleting ~/Library/{WebKit|Safari}/Databases to see if that makes the problem happen for him.
Comment 5 Alexey Proskuryakov 2008-02-04 13:14:16 PST
I'm seeing that DatabaseTracker::openTrackerDatabase is always called with createIfDoesNotExist == false, so the tracker database is never created/opened. And since it's never opened, m_openingThread remains 0.
Comment 6 Alexey Proskuryakov 2008-02-04 13:18:19 PST
OK, I see that the delegate calls setQuota, which magically calls openTrackerDatabase with createIfDoesNotExist == true.

This looks weird, but since there is no bug for a client that properly implements the required delegate, I am closing the bug, sorry for the noise.