Bug 44151

Summary: ASSERT(!m_database->sqliteDatabase().transactionInProgress()); can fail
Product: WebKit Reporter: Adam Barth <abarth>
Component: WebCore Misc.Assignee: Dumitru Daniliuc <dumi>
Status: RESOLVED FIXED    
Severity: Normal CC: dumi
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: OS X 10.5   
Bug Depends on:    
Bug Blocks: 42959    
Attachments:
Description Flags
patch abarth: review+, dumi: commit-queue-

Description Adam Barth 2010-08-17 22:28:54 PDT
http://trac.webkit.org/browser/trunk/WebCore/storage/SQLTransaction.cpp#L276

    // Transaction Steps 3 - Peform preflight steps, jumping to the error callback if they fail
    if (m_wrapper && !m_wrapper->performPreflight(this)) {
        ASSERT(!m_database->sqliteDatabase().transactionInProgress());
        m_sqliteTransaction.clear();
        m_transactionError = m_wrapper->sqlError();
        if (!m_transactionError)
            m_transactionError = SQLError::create(SQLError::UNKNOWN_ERR, "unknown error occured setting up transaction");

        handleTransactionError(false);
        return;
    }
Comment 1 Dumitru Daniliuc 2010-08-20 12:25:57 PDT
Looking. I'm assuming this was discovered by the same fuzzer?
Comment 2 Adam Barth 2010-08-20 12:37:42 PDT
Yep.
Comment 3 Dumitru Daniliuc 2010-08-20 13:34:00 PDT
Created attachment 64985 [details]
patch
Comment 4 Adam Barth 2010-08-20 13:54:51 PDT
Comment on attachment 64985 [details]
patch

ok
Comment 5 Dumitru Daniliuc 2010-08-20 14:54:34 PDT
landed: r65755.