Better file preallocation with fallocate()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Transmission |
Fix Released
|
Unknown
|
|||
transmission (Ubuntu) |
Fix Released
|
Wishlist
|
Unassigned |
Bug Description
Binary package hint: transmission
Torrent was about halfway done. Computer crashed (from pulseaudio, I think unrelated). Now torrent is at 4 or megs (was at 150).
This is the log for the hard drive (from dmesg) on the next bootup:
[ 1.423899] sda5 > sda3 sda4
[ 2.264091] EXT4-fs (sda4): INFO: recovery required on readonly filesystem
[ 2.264096] EXT4-fs (sda4): write access will be enabled during recovery
[ 2.301665] EXT4-fs (sda4): barriers enabled
[ 4.295714] kjournald2 starting: pid 394, dev sda4:8, commit interval 5 seconds
[ 4.295735] EXT4-fs (sda4): delayed allocation enabled
[ 4.299343] EXT4-fs (sda4): orphan cleanup on readonly fs
[ 4.299350] EXT4-fs (sda4): ext4_orphan_
[ 4.299423] EXT4-fs (sda4): ext4_orphan_
[ 4.299437] EXT4-fs (sda4): ext4_orphan_
[ 4.299448] EXT4-fs (sda4): ext4_orphan_
[ 4.299458] EXT4-fs (sda4): ext4_orphan_
[ 4.299469] EXT4-fs (sda4): ext4_orphan_
[ 4.299479] EXT4-fs (sda4): ext4_orphan_
[ 4.299490] EXT4-fs (sda4): ext4_orphan_
[ 4.299500] EXT4-fs (sda4): ext4_orphan_
[ 4.299553] EXT4-fs (sda4): ext4_orphan_
[ 4.299564] EXT4-fs (sda4): ext4_orphan_
[ 4.299569] EXT4-fs (sda4): 11 orphan inodes deleted
[ 4.299572] EXT4-fs (sda4): recovery complete
[ 4.858060] EXT4-fs (sda4): mounted filesystem with ordered data mode
[ 12.985525] EXT4-fs (sda4): internal journal on sda4:8
Perhaps transmission needs to be take advantage of some ext4 features?
ProblemType: Bug
Architecture: amd64
Date: Wed Oct 7 21:39:48 2009
DistroRelease: Ubuntu 9.10
ExecutablePath: /usr/bin/
NonfreeKernelMo
Package: transmission-gtk 1.75-0ubuntu1
ProcEnviron:
LANG=en_IN
SHELL=/bin/bash
ProcVersionSign
SourcePackage: transmission
Uname: Linux 2.6.31-12-generic x86_64
XsessionErrors:
(gnome-
(gnome-
(polkit-
(nautilus:1896): Eel-CRITICAL **: eel_preferences
(gnome-
Changed in transmission: | |
status: | Unknown → Fix Released |
Not surprising due to delayed allocation, if cache writeout pressure isn't high then this will happen. The "workaround" would be for transmission to periodically flush the filesystem but that'll just cause awful IO spiking latency and defeat the purpose of delayed allocation.
If you'd rather not lose that much data, then perhaps you need a more aggressive dirty_writeback _centisecs value.