> Okay. First, stop doing VACUUM after this. You're not improving things and > you may be making things worse
Not important. If this error is encountered the database is marked and the user reminded on every open/close to replace it with a backup. The database is not supposed to be used after SQLite has reported it as corrupt. When a user encounters the problem he/she restores the last working backup. I have a few users who faced this problem more than once. Here I always assumed some hardware glirch, a shaky USB connection, disk trouble, network problems (if the database is held on a Windows server or NAS), buggy SAMBA implementations or similar. Often, when asked, users ‘remembered’ a power failure, or some other problems with the disk or network. Case closed. What worries me more are the incidents where users see this problem happen several times, with q database kept on a local hard disk or SSD. The Windows event log shows no reports about anything disk related. No power failure. No hard shut-down. No problems reading or writing data in other applications. The database may be several months old or fresh. The error is sometimes encountered during a diagnosis run (with integrity_check) or a SELECT/INSERT/UPDATE suddenly returns the dreaded SQLITE_CORRUPT error code. This can happen for databases with 200 MB or databases with 10 GB. It apparently does not necessarily happen during times of high activity or bulk inserts. But that’s really hard to tell, because unless SQLite has to access a corrupted section of the file during normal operation, or integrity_check() is run, a damaged database may behave perfectly normal for a long time... I have now implemented the ErrorCallback routine and future versions will log anything reported that way to the log file. Maybe this gives us some more data to work with. I assume that this function is safe to use in a scenario where multiple instances/connections of SQLite are in use in parallel? My application uses multiple threads, but each thread uses a separate instance of SQLite. -- Mario _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users