← Back to team overview

ecryptfs team mailing list archive

[Bug 317781] Re: Ext4 data loss

 

> THIS IS NOT A BUG!

I would consider it a bug. As far as I understood the problem is that
flushing to the filesystem does not occur in correct order. Metadata
should be flushed after data has been flushed to ensure transactional
integrity. But exactly this is what Ext4 currently does not. Hence it
truncates the files instead of leaving it being unsure about the
content.

On the other hand: Surely many apps need fixing. But you can imagine
what happens to fs performance if every application does fsyncs after
every write or before every close. Performance would suffer badly. fsync
is needed for critical phases like writing important/central
configuration files, database stuff etc. Both sides need fixing. In the
spirit of posix of course the current behaviour is perfectly okay as far
as I understood. But it's not very wise to do it that way.

I'd prefer that Ext4 leaves my files with the old content instead of
simply truncating them because it cannot ensure integrity after a crash
if the file's data has only been partly flushed.

Other file systems handle this case better - e.g. even NTFS. Problems as
these just feed the trolls - so let's fix it.

In my eyes close() should ensure transactional integrity between write()
and close(). fsync() should ensure logical integrity between writes or
updating of multiple files related to each other. This may not be
technically currect but this is how I understand the tools given by the
filesystem API. In reality it may be more complicated.

PS: I intentionally chose to compare to a non-POSIX fs...

-- 
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: Confirmed
Status in ecryptfs-utils in Ubuntu Jaunty: Invalid
Status in linux in Ubuntu Jaunty: Confirmed

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