Bug#483830: Writing to a filesystem mounted with 'loop' don't work
When writing into a filesystem mounted using the 'loop' module, the
system have unexpected behaviours.
2 different Debian Etch running servers, up to date (one Core2Duo and
one AMD 4200+).
Linux Mint 4.0 personnal computer, up to date (AMD 4000+).
Debian Etch i386 fresh install, no updates. Then up to date (AMD 4200+).
Debian Etch AMD64 fresh install, no updates. Then up to date (AMD 4200+).
Debian Lenny i386 frsh install, no updates. Then up to date (AMD 4200+).
Fedora 9 Live: don't have the bug.
Thus the bug seems to be related to Debian only.
How to reproduce the problem:
WARNING: don't do it on a remote computer because the system could
completly stop responding.
# modprobe loop
# cd ~
# mkdir test
# cd test
# dd if=/dev/zero of=virtualdisk bs=1M count=2000
--> 53 Mb/s
# losetup /dev/loop0 virtualdisk
# mkfs.ext2 /dev/loop0
--> one system was frozen here once
# mount /dev/loop0 /mnt
# dd if=/dev/zero of=/mnt/bigfile bs=1M
--> the file start growing then nothing happens
--> this process never ends
--> ctrl+C works after 5 to 15 seconds
--> on some systems the computer stop responding
--> on some systems some bytes are written to the file every 20 to 40
From another console we can see a strange iowait:
# iostat -m 1
avg-cpu: %user %nice %system %iowait %steal %idle
0,50 0,00 0,00 50,00 0,00 49,50
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 0,00 0,00 0,00 0 0
The size of /mnt/bigfile is between 50 Mb and 400 Mb. The size seems to
always be the same on one computer, but vary from computer to computer.
i.e. on computer 'A' the file is between 50 Mb and 55 Mb, on computer
'B' the file is between 300 Mb and 310 Mb.
Even a simple write without mounting anyfilesystem is affected on some
# dd if=/dev/zero of=/dev/loop0 bs=1M
--> 14 Mb/s (4 times slower than bare metal speed)