After getting some additional information, namely that the users are also using the sqlite3 command line tool to read data from the database, I think I found out how this issue occurs.
There are two instances in the program where the sqlite database file is opened and closed outside of sqlite3 (to backup the database file and to sync it before checkpointing). This clears away the posix locks on the database files. This does not cause problems unless another process accesses the database file. For instance it deletes the wal file while it is still in use. This causes the error messages below. Solution seems to be to not close the database file after opening it and to reuse the file handle (on Linux). On 14.09.2016 13:05 Martin Raiber wrote: > Hi, > > there have been three reports by users using my software of SQLite > 3.12.0 returning SQLITE_IOERR and logging a SQLITE_IOERR_SHORT_READ > (522). Specifically: > > 2016-09-12 04:37:04: WARNING: SQLite: disk I/O error errorcode: 522 > 2016-09-12 04:37:04: ERROR: Error preparing Query [PRAGMA cache_size = > -2048]: disk I/O error > > One instance was on FreeBSD where I thought it could be caused by ZFS. > The other two instances are on Linux now. On FreeBSD the issue was > "fixed" by repeating the prepare after it failed with an IO-error. > > One user has captured an strace. I cannot actually see the short read, > though: https://forums.urbackup.org/t/urbackup-crashing/2402/8 > > Environment: > > * Databases are in WAL journal mode > * synchronous=NORMAL > * wal_autocheckpoint is OFF. Checkpointing is done in a separate thread > with PRAGMA wal_checkpoint(PASSIVE) and wal_checkpoint(TRUNCATE) if the > WAL file is bigger than a certain size > > Thanks for any help! > > Regards, > Martin > > > > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users