Thread Previous • Date Previous • Date Next • Thread Next |
@Hiten I agree with your comment, I think. I was about to make that same post. I would even dare to say that fsync(fd) is an evil call that never should be used by any application. The reason for this is very simple, it doesn't make a difference: if fsync(fd) needs to write 100MB to disk and a power loss occurs, the temp file will always be in state B,C or D. Your application isn't able to even use that file at next startup, as it has no way of telling whether the file is complete or not. fsync(fd) just might improve on things, but the performance hit doesn't justify it's use. On ext3, fsync(fd) is a gigantic performance hit too when there's one 'big consumer' on the same machine. Even as simple as 2 files copying around can make saving of a file in vim lag behind 30s. Luckily, vim has ':se nofsync' and ':se swapsync='. Because of this performance problem, I wanted to test ext4, but after reading this bug, it all looks to me that it won't make any difference - I hope I'm wrong on that. Unless ext4 is smarter and fsync(fd) only does that file's data, instead of a 'everything that should go in the transaction log first because it came first'-style algorithm that is in ext3 (which happens to be a lot when you'r copying a file around ~1G). Again, calling fsync(fd) to make the rename() appear after the close() is IMHO bad coding. It's fixing some one else's problem. Using a tempfile + rename is good application design to fix halfly written files, it would be nice that it stays that way, without waiting 30s for an fsync() when you're copying :-). -- 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
Thread Previous • Date Previous • Date Next • Thread Next |