Hi All, We are using sqlite3 (version 3.2.1) in our product and we are experiencing a problem of infinite loop from sqlite3_close(). The problem is intermittently reproduced and I am not sure about the exact sequence. I have described the details below. is anybody else faced similar problem before? Can someone please help me here?
we have thread safe enabled. We collected a core when our process is stuck in infinte loop and one thread is infinitely looping in the below marked loop within sqlite3_close(). So, it holds the mutex and some other threads are blocked waiting for that mutex. #ifndef SQLITE_OMIT_GLOBALRECOVER { sqlite3 *pPrev = pDbList; sqlite3OsEnterMutex(); while( pPrev && pPrev->pNext!=db ){ -> one thread is infinite looping in this while() pPrev = pPrev->pNext; } if( pPrev ){ pPrev->pNext = db->pNext; }else{ assert( pDbList==db ); pDbList = db->pNext; } sqlite3OsLeaveMutex(); } #endif I printed the pDbList from core and the list doesn't seem to end and the link list seems to have become a cyclic one somehow. (gdb) p pDbList $40 = (sqlite3 *) 0x36d00bb8 (gdb) p pDbList->pNext $41 = (sqlite3 *) 0x107b77a8 (gdb) p pDbList->pNext->pNext $42 = (sqlite3 *) 0x107b77a8 -> link list becomes cyclic...no NULL. Note: I saw that this entire logic of link list and global recovery doesn't exist in recent 3.6.2 code base. Should I consider upgrading to newer libsqlite library to avoid this problem? Thanks, Sathish R. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users