Hi, I am testing loss of data in Sqlite database correlated to auto-mounter malfunction. I am running Sqlite on Linux and my database file is located on network disk. For a test I stop the auto-mounter right before transaction is committed. Surprisingly commit succeeds without any error although hot journal remains on disk. When I get auto-mounter back and open my database again the transaction is rolled back.
Apparently Sqlite cannot remove the journal due to unmounted path but it ignores this error because Linux classifies it as ENOENT and unixDelete function disregards it: if( unlink(zPath)==(-1)) && errno!=ENOENT ){ return unixLogError(SQLITE_IOERR_DELETE, "unlink", zPath); } Can somebody please explain why "errno!=ENOENT" is required in here? Thanks for any help, Efim Dyadkin -------------------------------------------------------------------------------- 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