Hi,

since upgrading to Windows 10 I have trouble with several different C#
programs I wrote, that uses System.Data.SQLite to access sqlite
database files stored on a SSD drive.
Most of the programs are long running programs (running between one
day to a week) performing background download tasks (e.g. testing
web forums for updates). Before the upgrade to Windows 10 none of
these programs encoutered a database corruption, but now I see one
every one to two weeks. The last one I encountered was during a call to
System.Data.SQLite.SQLiteCommand.ExecuteScalar:

SQLite error (11): database corruption at line 72951 of [fc49f556e4]
SQLite error (11): statement aborts at 10: [SELECT
COUNT(PostIdentifier) FROM Posts WHERE
(ThreadIdentifier = @threadIdentifier)] database disk image is malformed

This time, PRAGMA integrity_check reports no error in the file when
tested using sqlite3.exe.
The other times I had to dump and load the files to get rid of the corruption.

Since I first encountered this problem, I switched the journal mode
from PERSIST to WAL (no other PRAGMAs are used). This seems to
have helped a bit, but I still encounter this errors.
The programs are using multiple threads sharing one SQLiteConnection
per process. I use lock statements to prevent the different threads from
accessing this connection object and all derived SQLiteCommand
objects simultaneously.

Any hint how to find the reason for these corruptions would be much
appreciated (I have read  https://www.sqlite.org/howtocorrupt.html,
but this did not help me with my problem).

Kind regards,
Alexander Täschner
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to