I was probably not quite specific. So I would like to rephrase the problem and give more details.
I run a default configuration of Sqlite on Linux and I don't use WAL or anything that changes transaction behavior. A database is located on a remote file server and accessed via NFS. There is a single process only that accesses the database. The problem is when auto-mounter is stopped (on a machine where the process is running) in the middle of database transaction, commit returns successfully though it leaves a hot journal on disk because it is not seen for unlink (ENOENT)!!! Note, when auto-mounter is down, you still can operate on a database file and its journal if they were opened before the stop. The problem can be reproduced very easily with an Sqlite command shell: 1) Run the shell 2) Begin exclusive transaction 3) Insert a few records 4) Stop auto-mounter 5) Optionally insert a few more records (stopped auto-mounter does not affect these inserts because database and journal are opened) 6) Commit (no errors!!!) 7) Quit the shell If you then restart auto-mounter and check the database directory you will find a hot journal! If you reopen the database the transaction will be played back and recently commited changes will be gone! Thanks for your feedbacks, Efim -------------------------------------------------------------------------------- This e-mail, including any attached files, may contain confidential and privileged information for the sole use of the intended recipient. Any review, use, distribution, or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive information for the intended recipient), please contact the sender by reply e-mail and delete all copies of this message. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users