I am seeing the equivalent of a deadlock, with SQLITE_BUSY being returned
forever from my code which has 2 threads using SQLite. I can repro this at
will. Each thread is using it's own connection to the sqlite database, so
they are not sharing the same connection.

Here is what is happening in chronological order:

Thread A: Prepare statement-A
Thread B: Prepare statement-B
Thread B: Bind some variables to statement-B
Thread B: Prepare and execute "BEGIN IMMEDIATE" statement.
Thread B: Execute statement-B
Thread A: Bind variables to statement-A
Thread A: Execute statement-A ( statement-A is a one-line simple SQL query
like "SELECT name FROM table WHERE id= ?;" )
Thread B: Prepare and execute "COMMIT" statement.

At this point, thread A is deep into sqlite code calling winSleep(), and
thread B is getting SQLITE_BUSY returned.  I can even set the busy timeout
to 100 seconds and the same thing happens -- hangs until 100 seconds elapse,
then busy returned.

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

Reply via email to