If a transaction is opened on a DB for which a journal file exists, and
fcntl() returns EACCES or EPERM on the attempt to acquire a write lock on
the DB to replay the journal, SQLite 3.5.9 quietly ignores the journal
without replaying it and continues on. This is a serious bug.

SQLite 3.6.14.2 keeps trying the write lock forever on EACCES or immediately
fails on EPERM, which is the proper behavior.

An example scenario is an abort during a user writing to the DB with access
to do so followed by another user trying to read the DB with no access to
write it.

Even though this appears to be fixed in 3.6.14.2, I thought this should be
documented and perhaps analyzed in the 3.5.9 source to make sure no similar
problems are still in 3.6.14.2.


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to