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
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users