On 29 Oct 2016, at 10:42pm, Yuri <y...@rawbw.com> wrote: > On a busy system one write operation might fail with disk-full, while the > rest are fine, because other processes will write and delete data > continuously. This is what I suspect: that SQLite failed to handle one or a > few such failures.
I believe SQLite handled the failure correctly. It returned SQLITE_FULL and it did not corrupt its database. SQLITE_FULL is documented as an error code, not a warning, in section 1 of <https://www.sqlite.org/rescode.html> From what you describe, your application didn't handle this error correctly, it ignored it. At minimum the programmer needs to consider what to do with the data it was trying to write, given that it couldn't write it to the database. Even if that data isn't important, SQLite documentation has recommendations: <https://www.sqlite.org/lang_transaction.html> "It is recommended that applications respond to the errors listed above by explicitly issuing a ROLLBACK command. If the transaction has already been rolled back automatically by the error response, then the ROLLBACK command will fail with an error, but no harm is caused by this." And of course, if the ROLLBACK command itself fails, the program needs to handle that. Since it means that recovery from the error condition failed. Simon. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users