The header is overwritten with some zeros only if I change the journal_mode to PERSIST : http://www.sqlite.org/pragma.html#pragma_journal_mode
By default, the journal_mode is set to DELETE so the journal file is valid if the file is present after an unlink + power shutdown. (I have checked with strace and with an exit just before the unlink) BR, Florent On Feb 23, 5:34 pm, Pavel Ivanov <paiva...@gmail.com> wrote: > AFAIK, before deleting journal file SQLite writes some zeroed header > into it. This kind of header means that transaction is finished. And > even if after power shutdown SQLite finds this journal persisting on > disk it will see the header and will understand that this journal just > needs to be deleted. So what important here is sync after writing > zeroed header, not after deletion. Directory sync is important only > when journal is created, so that it doesn't suddenly disappear when > power shuts off. You can check in strace whether what I said above is > actually true. > > Pavel > > > > > > > > > > On Thu, Feb 23, 2012 at 6:02 AM,FlorentBayendrian <yerva...@gmail.com> wrote: > > Hi, > > > I have a synchronization issue on an embedded device running Linux : if a > > power shutdown is done just after a commit, sqlite will restore the > > database to the previous state using the journal file. At the end of a > > transaction the unlink of the journal file is not enough, the journal could > > physically persist on the file system several seconds after the call to > > unlink and only a sync on the directory could guarantee that the journal > > file has been physically deleted. You can strace sqlite3 tool to see that > > the unlink of the journal file is not followed by any sync. > > > The fix is simple, sqlite3OsDelete should be called with the last parameter > > (dirSync) set to 1. This fix is necessary to be compliant with the last > > property of an ACID database. > > > Regards, > > >Florent > > _______________________________________________ > > sqlite-users mailing list > > sqlite-us...@sqlite.org > >http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > > _______________________________________________ > sqlite-users mailing list > sqlite-us...@sqlite.orghttp://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users