Thread Previous • Date Previous • Date Next • Thread Next |
@pablomme, Well, until the journal has been committed, none of the modified meta- data blocks are allowed to be written to disk --- so any changes to the inode table, block allocation bitmaps, inode allocation bitmaps, indirect blocks, extent tree blocks, directory blocks, all have to be pinned in memory and not written to disk. The longer you hold off on the journal commit, the more file system meta-data blocks are pinned into memory. And of course, you can't do this forever; eventually the journal will be full, and a new journal commit will be forced to happen, regardless of whether the data blocks have been allocated yet or not. Part of the challenge here is that normally the VM subsystem decides when it's time to write out dirty pages, and the VM subsystem has no idea about ordering constraints based on the filesystem journal. And in practice, there are multiple files which will have been written out, and the moment one of the is fsync()'ed, we have to do a journal commit for all files, because we can't really reorder filesystem operations. All we can do is force the equivalent of an fsync() when a commit happens. So the closest approximation to what you want is a data=alloc-on-commit mode, with the commit interval set to some very large number, say 5 or 10 minutes. In practice the commit will happen sooner than that, especially if there are lots of filesystem operations taking place, but hopefully most of the time the VM subsystem will gradually push the pages out before the commit takes place; if the commit takes place first, the alloc-on-commit mode will force any remaining pages to disk on the transaction commit. -- 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 |