Look one posting down - Krys is seeing it himself with XFS and yet he thinks it's ok.
Why don't you just do what you tell me. Read this:
I don't blame the applciations because I'm not stupid. I blame XFS for missing the recovery
You see: You're wrong.
The problem is the level of journalling used in the filesystem. Only full journalling can guarantee file integrity and it slows disk activity down by between 25-50%. Journalled filesystems as they are deployed today are intended to protect the filesystem - not individual files.
So you think it's intended that you have an fs with 100% file integrity and 0 useable files? File integrity means, that the file and the filesystem is in an defined state. Written or not written. Somewhat in between is not defined.
There are specific warnings in Ext3 and XFS documentation that the default (ordered) mode won't save a file which is being written at the time the time the FS goes down.
I can't see any warning in Documentation/filesystems/ext3.txt, but I see:
/ The Journaling Block Device layer (JBD) isn't ext3 specific. It was designed
/ to add journaling capabilities to a block device. The ext3 filesystem code
/ will inform the JBD of modifications it is performing (called a transaction).
/ The journal supports the transactions start and stop, and in case of a crash,
/ the journal can replay the transactions to quickly put the partition back into
/ a consistent state.
and
/ * ordered mode
/ In data=ordered mode, ext3 only officially journals metadata, but it logically
/ groups metadata and data blocks into a single unit called a transaction. When
/ it's time to write the new metadata out to disk, the associated data blocks
/ are written first.
Which means, that a journaling filesystem should do exactly what I stated.
My FS is ext4 and I was seeing the truncations journalling=ordered (linux default). So far there have been no truncations with full journalling when the kernel oopes (truncation was happening on ext3/ordered too).
There has been no truncations, but they happend on other fs, too?
NTFS uses ordered journalling (not adjustable) and there are a huge number of reasons why a windows box can go crunch
You can fuck up a windows box in uncounteable ways. What's your point?
(There's the old chestnut of "unplugged a USB drive" too).
Beside the fact, that USB write actions are buffered and you can plug the drive out before any action is started, it is still a problem of the fs. This time multiplied with the fact that the user can influence the participating parts and missbehaves, because he doesn't eject the drive the right way.
As for his other comment which boils down to "Other programs behave like this, so why are you picking on me?":
Back in the days when I ran ORBS, I used to get a lot of whining like that ("XYZ is running an open relay, why are you picking on me?"), to which the canned response was "Thank you for the pointer. These are now being investigated and will be listed if found to have security vulnerabilities"
Which in this case is no problem of the software, the admin just didn't it configure right. What the hell has this to do with our it's the problem of another software that is used discussion?
Needless to say I'll be raising bugs against the ones he's mentioned and I've already notified a few people in appropriate places that there's a general issue which needs addressing in a number of OS packages.
Needless to say that the maintainers will forward the bugs to upstream, because it's a generall problem of the software and not of the packaging.
The bottom line is that rewriting any file (let alone a config file) in place is "A very bad idea" and not making a backup is "just plain nuts".
So you're bottom line is, that we should rewrite major parts of a toolkit we use, which we use just because it provides the functionality we need and we don't want to rewrite this all, plus we should reimplement the fs-drivers which fuck up their job. You should know that first there are not just 2 fs's out there, second not all are free and third this will multply the size of the binaries, and you will be the first that is whining about the huge memory usage and your "expert programmers" will tell you to tell us, that there are shared libs and framworks that can be used todeal with such stuff.
Just because lemmings jump off a cliff doesn't mean you should too.
When you direct the first lemming over a bridge, the others will follow, too.
Go dying.