[Webkit-unassigned] [Bug 96947] IndexedDB: Assertion failure with open() within upgradeneeded
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Oct 23 13:57:34 PDT 2012
https://bugs.webkit.org/show_bug.cgi?id=96947
--- Comment #4 from Joshua Bell <jsbell at chromium.org> 2012-10-23 13:58:39 PST ---
Event/call sequence:
IDBDatabaseBackendImpl::openConnectionWithVersion(2)
IDBDatabaseBackendImpl::runIntVersionChangeTransaction
IDBDatabaseBackendImpl::setIntVersionInternal(2)
IDBDatabaseBackendImpl::openConnectionWithVersion(3)
IDBDatabaseBackendImpl::close
IDBDatabaseBackendImpl::processPendingCalls
> pendingOpenWithVersionCall
IDBDatabaseBackendImpl::openConnectionWithVersion(3)
IDBDatabaseBackendImpl::runIntVersionChangeTransaction
IDBDatabaseBackendImpl::processPendingCalls
> m_pendingSecondHalfOpenWithVersion
Assertion is:
m_pendingSecondHalfOpenWithVersion->version() == m_metadata.intVersion
Values are 3 and 2
Relevant stack is:
WebCore::IDBDatabaseBackendImpl::processPendingCalls() [0x25b76aa]
WebCore::IDBDatabaseBackendImpl::transactionFinishedAndCompleteFired() [0x25b7e49]
WebCore::IDBTransactionBackendImpl::commit() [0x25e558e]
WebCore::IDBTransactionBackendImpl::taskEventTimerFired() [0x25e4458]
So... what's going wrong:
* first connection starts its upgrade needed transaction
* close is called
* second connection's runIntVersionChangeTransaction runs - there's only one connection so it and schedules a setIntVersionInternal call and adds a PendingOpenWithVersionCall
* first connections's transaction completes
* transactionFinishedAndCompleteFired runs and calling processPendingCalls assuming that it will "unblock" the pendingSecondHalf... but the setIntVersionInternal hasn't even run yet.
--
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