Closed Bug 585674 Opened 14 years ago Closed 14 years ago

Assertion failed: p->id==SQLITE_MUTEX_RECURSIVE || winMutexNotheld2(p, tid), file db/sqlite3/src/sqlite3.c, line 16005

Categories

(Core :: SQLite and Embedded Database Bindings, defect)

x86
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: MatsPalmgren_bugz, Unassigned)

References

()

Details

Assertion failed: p->id==SQLITE_MUTEX_RECURSIVE || winMutexNotheld2(p, tid), file db/sqlite3/src/sqlite3.c, line 16005 I got the above assertion while trying to reproduce bug 585287 in a local Firefox debug build on Windows 7 (32-bit build on 64-bit Windows). STEPS TO REPRODUCE 1. Open "Organize Bookmarks" 2. select a few bookmarks 3. start dragging them around, drop them on the Firefox window after a while, drag-n-drop them again while the page is loading, drag and hover the page while its loading etc... ACTUAL RESULTS msvcr100d.dll!_NMSG_WRITE(int rterrnum) Line 217 C msvcr100d.dll!abort() Line 61 + 0x7 bytes C msvcr100d.dll!_wassert(const wchar_t * expr, const wchar_t * filename, unsigned int lineno) Line 153 C > mozsqlite3.dll!winMutexEnter(sqlite3_mutex * p) Line 16005 + 0x2c bytes C mozsqlite3.dll!pcache1Fetch(sqlite3_pcache * p, unsigned int iKey, int createFlag) Line 31514 + 0x10 bytes C mozsqlite3.dll!sqlite3PcacheFetch(PCache * pCache, unsigned int pgno, int createFlag, PgHdr * * ppPage) Line 30639 + 0x11 bytes C mozsqlite3.dll!sqlite3PagerAcquire(Pager * pPager, unsigned int pgno, PgHdr * * ppPage, int noContent) Line 36014 + 0x13 bytes C mozsqlite3.dll!btreeGetPage(BtShared * pBt, unsigned int pgno, MemPage * * ppPage, int noContent) Line 40095 + 0x12 bytes C mozsqlite3.dll!getAndInitPage(BtShared * pBt, unsigned int pgno, MemPage * * ppPage) Line 40146 + 0xb bytes C mozsqlite3.dll!moveToChild(BtCursor * pCur, unsigned int newPgno) Line 42544 C mozsqlite3.dll!sqlite3BtreeMovetoUnpacked(BtCursor * pCur, UnpackedRecord * pIdxKey, __int64 intKey, int biasRight, int * pRes) Line 43005 C mozsqlite3.dll!sqlite3VdbeExec(Vdbe * p) Line 57641 + 0x23 bytes C msvcr100d.dll!_unlock(int locknum) Line 375 C msvcr100d.dll!_free_dbg(void * pUserData, int nBlockUse) Line 1270 + 0x7 bytes C++ mozsqlite3.dll!winMutexEnter(sqlite3_mutex * p) Line 16008 C xul.dll!mozilla::storage::stepStmt(sqlite3_stmt * aStatement) Line 283 + 0x6 bytes C++ xul.dll!mozilla::storage::Statement::ExecuteStep(int * _moreResults) Line 617 + 0x8 bytes C++ xul.dll!mozilla::storage::Statement::Execute() Line 582 + 0xe bytes C++ xul.dll!nsUrlClassifierSubStore::ExpireAddChunk(unsigned int tableId, unsigned int addChunkId) Line 1010 + 0x10 bytes C++ xul.dll!nsUrlClassifierDBServiceWorker::AddChunk(unsigned int tableId, unsigned int chunkNum, nsTArray<nsUrlClassifierEntry> & entries) Line 2582 + 0xe bytes C++ xul.dll!nsUrlClassifierDBServiceWorker::ProcessChunk(int * done) Line 2708 C++ xul.dll!nsUrlClassifierDBServiceWorker::UpdateStream(const nsACString_internal & chunk) Line 3097 C++ xul.dll!NS_InvokeByIndex_P(nsISupports * that, unsigned int methodIndex, unsigned int paramCount, nsXPTCVariant * params) Line 103 C++ xul.dll!nsProxyObjectCallInfo::Run() Line 181 + 0x1a bytes C++ xul.dll!nsThread::ProcessNextEvent(int mayWait, int * result) Line 547 + 0xe bytes C++ xul.dll!NS_ProcessNextEvent_P(nsIThread * thread, int mayWait) Line 250 + 0xd bytes C++ xul.dll!nsThread::ThreadFunc(void * arg) Line 263 + 0x8 bytes C++ nspr4.dll!_PR_NativeRunThread(void * arg) Line 426 + 0x9 bytes C nspr4.dll!pr_root(void * arg) Line 122 + 0xd bytes C msvcr100d.dll!_callthreadstartex() Line 314 + 0xf bytes C msvcr100d.dll!_threadstartex(void * ptd) Line 297 C kernel32.dll!76bf3677() [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] ntdll.dll!77419d72() ntdll.dll!77419d45() - p 0x6ba03068 {mutex={...} id=6 nRef=0 ...} sqlite3_mutex * - mutex {DebugInfo=0x002b3188 LockCount=-1 RecursionCount=0 ...} _RTL_CRITICAL_SECTION - DebugInfo 0x002b3188 {Type=0 CreatorBackTraceIndex=0 CriticalSection=0x6ba03068 ...} _RTL_CRITICAL_SECTION_DEBUG * Type 0 unsigned short CreatorBackTraceIndex 0 unsigned short - CriticalSection 0x6ba03068 {DebugInfo=0x002b3188 LockCount=-1 RecursionCount=0 ...} _RTL_CRITICAL_SECTION * - DebugInfo 0x002b3188 {Type=0 CreatorBackTraceIndex=0 CriticalSection=0x6ba03068 ...} _RTL_CRITICAL_SECTION_DEBUG * Type 0 unsigned short CreatorBackTraceIndex 0 unsigned short + CriticalSection 0x6ba03068 {DebugInfo=0x002b3188 LockCount=-1 RecursionCount=0 ...} _RTL_CRITICAL_SECTION * + ProcessLocksList {Flink=0x002b31b8 Blink=0x002b3168 } _LIST_ENTRY EntryCount 0 unsigned long ContentionCount 69 unsigned long Flags 0 unsigned long CreatorBackTraceIndexHigh 0 unsigned short SpareWORD 24948 unsigned short LockCount -1 long RecursionCount 0 long OwningThread 0x00000000 void * LockSemaphore 0x000005a8 void * SpinCount 0 unsigned long + ProcessLocksList {Flink=0x002b31b8 Blink=0x002b3168 } _LIST_ENTRY EntryCount 0 unsigned long ContentionCount 69 unsigned long Flags 0 unsigned long CreatorBackTraceIndexHigh 0 unsigned short SpareWORD 24948 unsigned short LockCount -1 long RecursionCount 0 long OwningThread 0x00000000 void * LockSemaphore 0x000005a8 void * SpinCount 0 unsigned long id 6 int nRef 0 int owner 1500 unsigned long trace 0 int p->id 6 int tid 3476 unsigned long
I've notified the SQLite team about this. Doesn't look like we are doing anything to cause it to be entered.
Looks like the debug assertion was not threadsafe. This will be fixed in the next SQLite.
Fixed by bug 583611.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Product: Toolkit → Core
You need to log in before you can comment on or make changes to this bug.