← Back to team overview

ecryptfs team mailing list archive

[Bug 317781] Re: Ext4 data loss

 

"The filesystem should be fixed to allocate blocks on *every* commit,
not just ones overwriting existing files."

alloc_on_commit mode has been added.  Those who want to use it (and take
the large associated performance hit) can use it.  It's a tradeoff that
is and should be in the hands of the individual system administrator.
Personally, my machine almost never crashes, so I'd prefer the extra
performance.

What the application is doing in this case is broken anyway, and if it
fixed that there would be no problem on ext4.

"As for the program -- fsync should *not* be inserted. (Though the
unconditional os.remove() should be changed.) It's a bad thing to
ritually fsync every file before the rename for a host of reasons
described upthread."

fsync() should preferably be used for config file updates, assuming
those are reasonably rare, "for a host of reasons described upthread".
Otherwise, the user will click "Save" and then the preference change
won't actually take effect if the system crashes shortly thereafter.
This is true in any filesystem.  On some filesystems (not just ext4: XFS
certainly, maybe NFS?), you might also get some kind of other bad stuff
happening.  Explicit user saving of files/preferences/etc. should
therefore invoke an fsync() in most cases: you want to make sure the
change is committed to stable storage before giving confirmation to the
user that it's saved.  Text editors already do this, and no one seems to
have complained.

If Gaim updates its config file very often for some reason, though,
they'd have to weigh the added reliability of fsync() against the
performance hit (especially on filesystems like ext3).

-- 
Ext4 data loss
https://bugs.launchpad.net/bugs/317781
You received this bug notification because you are a member of eCryptfs,
which is subscribed to ecryptfs-utils in ubuntu.

Status in “ecryptfs-utils” source package in Ubuntu: Invalid
Status in “linux” source package in Ubuntu: Fix Released
Status in ecryptfs-utils in Ubuntu Jaunty: Invalid
Status in linux in Ubuntu Jaunty: Fix Released

Bug description:
I recently installed Kubuntu Jaunty on a new drive, using Ext4 for all my data.

The first time i had this problem was a few days ago when after a power loss ktimetracker's config file was replaced by a 0 byte version . No idea if anything else was affected.. I just noticed ktimetracker right away.

Today, I was experimenting with some BIOS settings that made the system crash right after loading the desktop. After a clean reboot pretty much any file written to by any application (during the previous boot) was 0 bytes.
For example Plasma and some of the KDE core config files were reset. Also some of my MySQL databases were killed...

My EXT4 partitions all use the default settings with no performance tweaks. Barriers on, extents on, ordered data mode..

I used Ext3 for 2 years and I never had any problems after power losses or system crashes.

Jaunty has all the recent updates except for the kernel that i don't upgrade because of bug #315006

ProblemType: Bug
Architecture: amd64
DistroRelease: Ubuntu 9.04
NonfreeKernelModules: nvidia
Package: linux-image-2.6.28-4-generic 2.6.28-4.6
ProcCmdLine: root=UUID=81942248-db70-46ef-97df-836006aad399 ro rootfstype=ext4 vga=791 all_generic_ide elevator=anticipatory
ProcEnviron:
 LANGUAGE=
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.28-4.6-generic
SourcePackage: linux