← Back to team overview

ecryptfs team mailing list archive

[Bug 317781] Re: Ext4 data loss

 

If you accept that it makes sense to allocate on rename commits for
overwrites of *existing* files, it follows that it makes sense to commit
on *all* renames. Otherwise, users can still see zero-length junk files
when writing a file out for the first time. If an application writes out
a file using the atomic rename technique, it should expect just as good
a consistency guarantee when the file doesn't already exist as when it
does. Anything else just adds extra complexity.

Before your knee jerks out "performance," consider that brand-new,
throwaway files aren't renamed. gcc doesn't write a file out, only to
rename it immediately. Only files for which atomicty matters are renamed
that way -- which are precisely the files that would get the commit-on-
rename treatment in other circumstances. The performance impact of
committing on *all* renames would be minimal over the existing rename
code.

We keep talking in circles: if you're going to make a commitment to
application reliability, go all the way and commit on all renames.
Anything else is just a subtle gotcha for application programs. Yes,
POSIX them harder, will you?

NFS is a special case in that 1) it's widely known to have strange
semantics, and 2) many applications explicitly don't support NFS for
that reason.  NFS semantics are *not* the ones we should be striving to
emulate! Besides, the kind of inconsistency you see with NFS doesn't
result in corrupt configurations in the same way the ext4 bug does.

As for AFS: it has a special place in Hell. AFS doesn't even meet basic
POSIX guarantees with regard to permissions. Its mind-bendingly stupid
quota behavior is just icing on the cake. It's crap as a unix
filesystem, and I sure as hell wouldn't consider using it except on a
specially-prepared system. I'm not going to make my application jump
through hoops to support your antiquated hack. Every other filesystem
checks quotas on write and close; why does yours have to be different?

-- 
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