We are using a bunch of encrypted SQLite databases and occasionally we get some errors with different error codes on SQLiteConnection.Open or SQLiteCommand.ExecuteReader(). This does not happen when the databases are not encrypted or if any database actions have been successfully done before.
All objects are only used on the thread they were created on.

I made a small solution to demonstrate this issue
SQLiteTest opens the same database 100 times. On my QuadCore with HT this fails about 50% of the time.
The ProcessStarter project therefore runs SQLiteTest 100 times.
https://www.dropbox.com/s/1wu0h97zbfi29kt/SQLiteTest.zip

It looks like some initialization code is not properly protected against multi threaded access. As a workaround I added the following code before anything is done with any database.
using (var connection = new SQLiteConnection("data 
source=:memory:;password=pwd"))
    connection.Open();

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

Reply via email to