On Sep 16, 2008, at 5:19 AM, Sathish R wrote:

> 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?

Yes. 3.2.1 is over 3 years old now. Hundreds of bugs have been fixed
since then. Odds are that the problem you're experiencing has been  
fixed,
or, if not, you stand a much better chance of getting help with it if
using 3.6.2.

Dan.


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to