But it doesn't call fsync() or fdatasync() does it?

Just because the file is closed, doesn't mean its written to disk.  And
logging filesystems like reiserfs and ext3 only log the metadata
updates.

So ...
If your program does
 open()
 write()
 close()
 rename()

The filesystem will probably have logged the metadata update to the
filesystem log, and maybe updated the directory.

However, the data underlying the file may still be sitting in the buffer
cache (depending somewhat on the os, but even AmigaOS had a 1/2 second
delay on buffer cache flushes, and DOS would only gurantee sync back at
the command prompt).

If you then lose power, or otherwise hang the kernel, that data will
never reach it to disk, and the log will also indicate this.

At restart, the log will be executed, and it will see an unfinished file
write record, and well, delete the file since it is corrupt (this my
basic understanding of how metadata-only logging filesystems work).

It'd be interesting to see if everyone with this problem is using
reiserfs, which might be more aggressive about certain buffering
operations (?).


On Wed, 2002-07-10 at 05:58, Jeffrey Stedfast wrote:
> I've just looked into how bonobo-conf saves the xml config options and
> it first saves the settings to a tmp file, if that works, then it
> rename()'s it to ~/evolution/config.xmldb so afaict, the only way for
> the settings to be corrupt in ~/evoltion/config.xmldb is if libxml's
> xmlSaveFile() says that it worked when it didn't (and that would not be
> our problem - the only way to get this fixed is to put pressure on the
> libxml maintainer because he won't listen to us).
> 
> Jeff
> 
> On Tue, 2002-07-09 at 15:58, Michael Gruner wrote:
> > > wait until the annoying "Evolution is closing" dialog to disappear, if
> > > it is still up then your data might not have been written to disk yet.
> > I'm really sure I did.
> > 
> > Anyway in the future I'll try to give evo some extratime to work around
> > it.
> > 
> > thank you all for your help!
> > 
> > micha



_______________________________________________
evolution maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/evolution

Reply via email to