Bug 11252

Summary: Kernel BUG on unmounting an intentionally corrupted filesystem
Product: File System Reporter: Sami Liedes (sami.liedes)
Component: ext4Assignee: fs_ext4 (fs_ext4)
Status: REJECTED UNREPRODUCIBLE    
Severity: normal CC: tytso
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.27-rc1 (+ patch to fix #10976, now in -mm) Subsystem:
Regression: --- Bisected commit-id:
Attachments: Test case, a corrupted filesystem image hdb.4000377, bzip2 compressed
dmesg output file...

Description Sami Liedes 2008-08-05 05:46:51 UTC
Latest working kernel version:
Earliest failing kernel version:
Distribution: Minimal Debian sid (unstable)
Hardware Environment: qemu x86
Software Environment:
Problem Description:

When unmounting the attached filesystem image after some use (it's actually a corrupted ext3 image, but it's detected and mounted as ext4), a kernel bug happens.

This seems somewhat similar to #11250, but the backtrace is entirely different and it requires some different use before umount to break, so I'm filing a separate bug.

Steps to reproduce:

1. bunzip2 the attached filesystem image
2. mount hdb.4000377 /mnt
[the image is mounted as ext4]
3. cd /mnt
4. cp -R doc doc2 >&/dev/null
5. press ctrl-C to kill the cp process once you no longer get kernel output (which is almost immediately)
6. find -xdev >&/dev/null
7. find -xdev -print0 2>/dev/null |xargs -0 touch -- 2>/dev/null
8. mkdir tmp >&/dev/null
9. echo whoah >tmp/filu 2>/dev/null
10. rm -rf /mnt/* >&/dev/null
11. cd /
12. umount mnt
13. (boom)
Comment 1 Sami Liedes 2008-08-05 05:51:07 UTC
Created attachment 17091 [details]
Test case, a corrupted filesystem image hdb.4000377, bzip2 compressed

Here's the backtrace and kernel output (and the commands I wrote):

----------
fstest:~# mount /dev/hdb /mnt
[   19.295482] EXT4-fs warning (device hdb): ext4_fill_super: extents feature not enabled on this filesystem, use tune2fs.
[   19.296259] 
[   19.301079] kjournald2 starting.  Commit interval 5 seconds
[   19.308152] EXT4 FS on hdb, internal journal
[   19.308557] EXT4-fs: mounted filesystem with ordered data mode.
[   19.308880] EXT4-fs: delayed allocation enabled
[   19.309853] EXT4-fs: mballoc enabled
fstest:~# cd /mnt
fstest:/mnt# cp -R doc doc2
[   23.560443] EXT4-fs error (device hdb): ext4_mb_generate_buddy: EXT4-fs: group 0: 6110 blocks in bitmap, 6108 in gd
[   23.565047] 
[   23.567646] EXT4-fs error (device hdb): ext4_mb_generate_buddy: EXT4-fs: group 1: 1846 blocks in bitmap, 1844 in gd
[   23.568096] 
[   23.588597] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1586: rec_len is too small for name_len - offset=92, inode=1590, rec_len=20, name_len=137
[   23.592367] attempt to access beyond end of device
[   23.592655] hdb: rw=0, want=100667164, limit=20480
[   23.592906] attempt to access beyond end of device
[   23.593095] hdb: rw=0, want=100667164, limit=20480
cp: reading `doc/anacron/changelog.gz': Input/output error
[   23.607266] attempt to access beyond end of device
[   23.607562] hdb: rw=0, want=268439274, limit=20480
[   23.607774] Buffer I/O error on device hdb, logical block 134219636
[   23.608361] attempt to access beyond end of device
[   23.608554] hdb: rw=0, want=268439274, limit=20480
[   23.608739] Buffer I/O error on device hdb, logical block 134219636
cp: reading `doc/alsa-utils/README.Debian': Input/output error
[   23.617421] attempt to access beyond end of device
[   23.617668] hdb: rw=0, want=4197974, limit=20480
[   23.617852] Buffer I/O error on device hdb, logical block 2098986
[   23.618528] attempt to access beyond end of device
[   23.618719] hdb: rw=0, want=4197974, limit=20480
[   23.618910] Buffer I/O error on device hdb, logical block 2098986
cp: reading `doc/advi/README.gz': Input/output error
[   23.655136] attempt to access beyond end of device
[   23.656163] hdb: rw=0, want=4197736, limit=20480
[   23.657059] Buffer I/O error on device hdb, logical block 2098867
[   23.658253] attempt to access beyond end of device
[   23.659171] hdb: rw=0, want=4197736, limit=20480
[   23.660016] Buffer I/O error on device hdb, logical block 2098867
cp: reading `doc/acpid/README': Input/output error
[   23.713109] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1529: inode out of bounds - offset=64, inode=268436988, rec_len=16, name_len=7
[   23.713109] attempt to access beyond end of device
[   23.713109] hdb: rw=0, want=69002, limit=20480
[   23.713109] Buffer I/O error on device hdb, logical block 34500
[   23.716088] attempt to access beyond end of device
[   23.716332] hdb: rw=0, want=69002, limit=20480
[   23.716505] Buffer I/O error on device hdb, logical block 34500
cp: reading `doc/addusez/changelog.gz': Input/output error
[   23.732654] attempt to access beyond end of device
[   23.734048] hdb: rw=0, want=67121348, limit=20480
[   23.735343] attempt to access beyond end of device
[   23.744362] hdb: rw=0, want=67121348, limit=20480
[   23.749069] attempt to access beyond end of device
[   23.754092] hdb: rw=0, want=67121348, limit=20480
^C
fstest:/mnt# find -xdev >&/dev/null
[   55.327525] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1586: rec_len is too small for name_len - offset=92, inode=1590, rec_len=20, name_len=137
[   55.330772] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1529: inode out of bounds - offset=64, inode=268436988, rec_len=16, name_len=7
[   55.335175] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1578: rec_len is too small for name_len - offset=112, inode=1583, rec_len=24, name_len=141
[   55.339949] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=1412, inode=1698, rec_len=1040, name_len=5
[   55.342973] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=4316, inode=1679, rec_len=12, name_len=5
[   55.346561] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=5376, inode=1752, rec_len=12, name_len=12
[   55.349595] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=3104, inode=30, rec_len=1036, name_len=4
[   55.355313] attempt to access beyond end of device
[   55.355860] hdb: rw=32, want=27702, limit=20480
[   55.360703] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #29: rec_len is too small for name_len - offset=0, inode=29, rec_len=12, name_len=129
[   55.365720] attempt to access beyond end of device
[   55.366273] hdb: rw=32, want=1073742238, limit=20480
[   55.366756] EXT4-fs error (device hdb): ext4_readdir: directory #11 contains a hole at offset 1024
fstest:/mnt# find -xdev -print0 2>/dev/null |xargs -0 touch -- 2>/dev/null
[   60.239212] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1586: rec_len is too small for name_len - offset=92, inode=1590, rec_len=20, name_len=137
[   60.245578] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1529: inode out of bounds - offset=64, inode=268436988, rec_len=16, name_len=7
[   60.250006] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1578: rec_len is too small for name_len - offset=112, inode=1583, rec_len=24, name_len=141
[   60.254318] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=1412, inode=1698, rec_len=1040, name_len=5
[   60.256836] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=4316, inode=1679, rec_len=12, name_len=5
[   60.259306] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=5376, inode=1752, rec_len=12, name_len=12
[   60.261783] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=3104, inode=30, rec_len=1036, name_len=4
[   60.264722] attempt to access beyond end of device
[   60.264972] hdb: rw=32, want=27702, limit=20480
[   60.269544] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #29: rec_len is too small for name_len - offset=0, inode=29, rec_len=12, name_len=129
[   60.273252] attempt to access beyond end of device
[   60.273511] hdb: rw=32, want=1073742238, limit=20480
[   60.273716] EXT4-fs error (device hdb): ext4_readdir: directory #11 contains a hole at offset 1024
[   60.312445] attempt to access beyond end of device
[   60.312716] hdb: rw=1, want=524904, limit=20480
[   60.493201] attempt to access beyond end of device
[   60.493504] hdb: rw=0, want=3972712544, limit=20480
[   60.493745] attempt to access beyond end of device
[   60.493933] hdb: rw=0, want=3972712544, limit=20480
[   60.498544] attempt to access beyond end of device
[   60.498812] hdb: rw=0, want=3972712544, limit=20480
fstest:/mnt# mkdir tmp >&/dev/null
fstest:/mnt# echo whoah >tmp/filu 2>/dev/null
fstest:/mnt# rm -rf /mnt/* >&/dev/null
[   73.277358] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=1412, inode=1698, rec_len=1040, name_len=5
[   73.281063] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=4316, inode=1679, rec_len=12, name_len=5
[   73.285272] attempt to access beyond end of device
[   73.285581] hdb: rw=0, want=524290, limit=20480
[   73.285781] EXT4-fs error (device hdb): ext4_xattr_delete_inode: inode 806: block 262144 read error
[   73.290336] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=1412, inode=1698, rec_len=1040, name_len=5
[   73.293120] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=4316, inode=1679, rec_len=12, name_len=5
[   73.295146] attempt to access beyond end of device
[   73.295368] hdb: rw=32, want=27702, limit=20480
[   73.297649] attempt to access beyond end of device
[   73.297897] hdb: rw=32, want=27702, limit=20480
[   73.298095] EXT4-fs error (device hdb): empty_dir: error -5 reading directory #98 offset 0
[   73.301313] EXT4-fs warning (device hdb): ext4_rmdir: empty directory has too many links (6)
[   73.304189] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 13850, count = 1
[   73.309918] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=1412, inode=1698, rec_len=1040, name_len=5
[   73.315397] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=4316, inode=1679, rec_len=12, name_len=5
[   73.322618] EXT4-fs error (device hdb): ext4_xattr_delete_inode: inode 1695: bad block 17592186044416
[   73.334348] attempt to access beyond end of device
[   73.335835] hdb: rw=0, want=1073741826, limit=20480
[   73.337407] EXT4-fs error (device hdb): ext4_xattr_delete_inode: inode 1283: block 536870912 read error
[   73.347622] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 131072, count = 1
[   73.362943] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=1412, inode=1698, rec_len=1040, name_len=5
[   73.366380] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=4316, inode=1679, rec_len=12, name_len=5
[   73.392244] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=5376, inode=1752, rec_len=12, name_len=12
[   73.394753] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #29: rec_len is too small for name_len - offset=0, inode=29, rec_len=12, name_len=129
[   73.397401] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=1412, inode=1698, rec_len=1040, name_len=5
[   73.399633] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=4316, inode=1679, rec_len=12, name_len=5
[   73.401084] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=5376, inode=1752, rec_len=12, name_len=12
[   73.403717] EXT4-fs error (device hdb): ext4_xattr_delete_inode: inode 1634: bad block 17592186044416
[   73.406223] EXT4-fs error (device hdb): ext4_xattr_delete_inode: inode 1284: bad block 2048
[   73.411995] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=5376, inode=1752, rec_len=12, name_len=12
[   73.414200] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=3104, inode=30, rec_len=1036, name_len=4
[   73.418421] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=1412, inode=1698, rec_len=1040, name_len=5
[   73.431756] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=4316, inode=1679, rec_len=12, name_len=5
[   73.433894] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: rec_len is too small for name_len - offset=5376, inode=1752, rec_len=12, name_len=12
[   73.435792] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1281: directory entry across blocks - offset=3104, inode=30, rec_len=1036, name_len=4
[   73.438388] EXT4-fs warning (device hdb): empty_dir: bad directory (dir #1281) - no `.' or `..'
[   73.438857] EXT4-fs warning (device hdb): ext4_rmdir: empty directory has too many links (14)
[   73.442688] attempt to access beyond end of device
[   73.442958] hdb: rw=0, want=65538, limit=20480
[   73.443177] EXT4-fs error (device hdb): ext4_free_branches: Read failure, inode=1607, block=32768
[   73.446304] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 134217728, count = 1
[   73.448318] EXT4-fs error (device hdb): ext4_xattr_delete_inode: inode 1608: bad block 2199023255552
[   73.451469] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 262144, count = 1
[   73.454361] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1586: rec_len is too small for name_len - offset=92, inode=1590, rec_len=20, name_len=137
[   73.456814] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 50333581, count = 1
[   73.458416] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1048576, count = 1
[   73.471303] EXT4-fs error (device hdb): empty_dir: bad entry in directory #1586: rec_len is too small for name_len - offset=92, inode=1590, rec_len=20, name_len=137
[   73.474282] EXT4-fs error (device hdb): mb_free_blocks: double-free of inode 1567's block 1886(bit 1885 in group 0)
[   73.474767] 
[   73.476711] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 16384, count = 1
[   73.479480] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 134219636, count = 1
[   73.482642] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 2098986, count = 1
[   73.484468] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 65536, count = 1
[   73.486491] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks in system zone - Block = 64, count = 1
[   73.488156] attempt to access beyond end of device
[   73.488392] hdb: rw=0, want=1048578, limit=20480
[   73.488598] EXT4-fs error (device hdb): ext4_free_branches: Read failure, inode=1554, block=524288
[   73.491718] EXT4-fs error (device hdb): ext4_xattr_delete_inode: inode 1554: bad block 64
[   73.496255] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks in system zone - Block = 64, count = 1
[   73.498773] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 268435456, count = 1
[   73.511899] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 2098867, count = 1
[   73.512841] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 268435456, count = 1
[   73.515128] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 2097152, count = 1
[   73.518231] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 16781312, count = 1
[   73.520153] attempt to access beyond end of device
[   73.520396] hdb: rw=0, want=1048578, limit=20480
[   73.520599] EXT4-fs error (device hdb): ext4_free_branches: Read failure, inode=1562, block=524288
[   73.522757] EXT4-fs error (device hdb): htree_dirblock_to_tree: bad entry in directory #1529: inode out of bounds - offset=64, inode=268436988, rec_len=16, name_len=7
[   73.525108] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 34500, count = 1
[   73.527149] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 131072, count = 1
[   73.528728] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 131072, count = 1
[   73.530279] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 16777216, count = 1
[   73.531987] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 134217728, count = 1
[   73.533725] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 268435456, count = 1
[   73.535287] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks in system zone - Block = 128, count = 1
[   73.552752] attempt to access beyond end of device
[   73.553417] hdb: rw=0, want=32770, limit=20480
[   73.553969] EXT4-fs error (device hdb): ext4_free_branches: Read failure, inode=1531, block=16384
[   73.558240] EXT4-fs error (device hdb): empty_dir: bad entry in directory #1529: inode out of bounds - offset=64, inode=268436988, rec_len=16, name_len=7
[   73.561023] EXT4-fs warning (device hdb): ext4_rmdir: empty directory has too many links (3)
[   73.563699] EXT4-fs error (device hdb): mb_free_blocks: double-free of inode 1599's block 2560(bit 2559 in group 0)
[   73.564922] 
[   73.567074] EXT4-fs error (device hdb) in ext4_reserve_inode_write: IO failure
[   73.569053] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 10240, count = 1
[   73.571534] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 512, count = 1
[   73.583363] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 7909, count = 1
[   73.586036] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1227, count = 1
[   73.588687] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1, count = 1
[   73.596064] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 8192, count = 1
[   73.607472] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 2147491840, count = 1
[   73.610208] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1280, count = 1
[   73.613156] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1217939874, count = 1
[   73.616105] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1217939928, count = 1
[   73.625467] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1769473, count = 1
[   73.628403] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 257875, count = 1
[   73.633821] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1, count = 1
[   73.644553] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1212852188, count = 1
[   73.658486] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 15552000, count = 1
[   73.660992] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1, count = 1
[   73.663618] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 11, count = 1
[   73.673500] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 128, count = 1
[   73.676684] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 60, count = 1
[   73.679436] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 6, count = 1
[   73.684025] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 3, count = 1
[   73.696788] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1113171345, count = 1
[   73.698774] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 608860085, count = 1
[   73.700933] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 3337903513, count = 1
[   73.702870] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 3477459474, count = 1
[   73.704925] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 2555904, count = 1
[   73.706909] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 131072, count = 1
[   73.708754] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 8, count = 1
[   73.728327] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1599, count = 1
[   73.729387] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 2926087263, count = 1
[   73.730411] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 222370823, count = 1
[   73.731513] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1969470350, count = 1
[   73.733282] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 2524306783, count = 1
[   73.735077] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 258, count = 1
[   73.736764] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1212852123, count = 1
[   73.738493] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 218, count = 13
[   73.740122] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 487, count = 1
[   73.741559] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1048576, count = 1
[   73.743433] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 5, count = 1
[   73.745055] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 67108864, count = 1
[   73.746689] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 128, count = 1
[   73.748290] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 536870912, count = 1
[   73.749874] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 536870912, count = 1
[   73.751363] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 4, count = 1
[   73.753060] EXT4-fs error (device hdb): ext4_free_data: circular indirect block detected, inode=1599, block=1
[   73.771931] EXT4-fs error (device hdb): ext4_mb_free_blocks: Freeing blocks not in datazone - block = 1, count = 1
[   73.772593] EXT4-fs error (device hdb) in ext4_reserve_inode_write: IO failure
[   73.772593] EXT4-fs error (device hdb) in ext4_reserve_inode_write: IO failure
[   73.772593] EXT4-fs error (device hdb) in ext4_orphan_del: IO failure
[   73.772593] EXT4-fs error (device hdb) in ext4_reserve_inode_write: IO failure
[   73.773753] EXT4-fs error (device hdb): ext4_find_entry: bad entry in directory #1598: inode out of bounds - offset=60, inode=1601, rec_len=964, name_len=19
[   73.775780] EXT4-fs error (device hdb): ext4_find_entry: bad entry in directory #1598: inode out of bounds - offset=44, inode=1600, rec_len=16, name_len=6
[   73.778074] EXT4-fs error (device hdb): ext4_find_entry: bad entry in directory #1517: inode out of bounds - offset=188, inode=1598, rec_len=16, name_len=7
[   73.783719] EXT4-fs error (device hdb): ext4_readdir: bad entry in directory #1517: inode out of bounds - offset=0, inode=1517, rec_len=12, name_len=1
[   73.787920] EXT4-fs error (device hdb): ext4_readdir: bad entry in directory #1807: inode out of bounds - offset=0, inode=1807, rec_len=12, name_len=1
[   73.790126] EXT4-fs error (device hdb) in ext4_reserve_inode_write: IO failure
[   73.791308] EXT4-fs error (device hdb): ext4_find_entry: bad entry in directory #2: inode out of bounds - offset=68, inode=1807, rec_len=12, name_len=4
[   73.809291] EXT4-fs error (device hdb): ext4_readdir: bad entry in directory #11: inode out of bounds - offset=0, inode=11, rec_len=12, name_len=1
[   73.811825] EXT4-fs error (device hdb) in ext4_reserve_inode_write: IO failure
[   73.813724] EXT4-fs error (device hdb): ext4_find_entry: bad entry in directory #2: inode out of bounds - offset=24, inode=11, rec_len=32, name_len=10
[   73.816269] EXT4-fs error (device hdb): ext4_readdir: bad entry in directory #1833: inode out of bounds - offset=0, inode=1833, rec_len=12, name_len=1
[   73.818371] EXT4-fs error (device hdb) in ext4_reserve_inode_write: IO failure
[   73.820039] EXT4-fs error (device hdb): ext4_find_entry: bad entry in directory #2: inode out of bounds - offset=80, inode=1833, rec_len=944, name_len=3
fstest:/mnt# cd /
fstest:/# umount [   78.535950] attempt to access beyond end of device
[   78.536260] hdb: rw=1, want=33560, limit=20480
mnt
[   82.545076] EXT4-fs error (device hdb) in ext4_reserve_inode_write: IO failure
[   82.547445] EXT4-fs error (device hdb) in ext4_reserve_inode_write: IO failure
[   82.549018] EXT4-fs error (device hdb) in ext4_reserve_inode_write: IO failure
[   82.708158] ------------[ cut here ]------------
[   82.711175] kernel BUG at fs/ext4/inode.c:1527!
[   82.711175] invalid opcode: 0000 [#1] 
[   82.711175] 
[   82.711175] Pid: 720, comm: umount Not tainted (2.6.27-rc1 #1)
[   82.711175] EIP: 0060:[<c02f5d50>] EFLAGS: 00000202 CPU: 0
[   82.711175] EIP is at ext4_da_release_space+0xb3/0xb7
[   82.711175] EAX: 00000000 EBX: c7aea800 ECX: 00000001 EDX: 00000001
[   82.711175] ESI: c1699c80 EDI: 00000001 EBP: c7af1e1c ESP: c7af1e04
[   82.711175]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
[   82.711175] Process umount (pid: 720, ti=c7af0000 task=c78c3280 task.ti=c7af0000)
[   82.711175] Stack: 00000000 c1699ff0 c7aea800 c1040e00 c7464930 00001000 c7af1e34 c02f5da8 
[   82.711175]        00000000 c02f5d54 00000001 c1040e00 c7af1e40 c0249669 c1040e00 c7af1e4c 
[   82.711175]        c0249b1b 00000000 c7af1ecc c0249c2d 0000000e c7af1e60 c7aeb1c4 c16999d0 
[   82.711175] Call Trace:
[   82.711175]  [<c02f5da8>] ? ext4_da_invalidatepage+0x54/0x6a
[   82.711175]  [<c02f5d54>] ? ext4_da_invalidatepage+0x0/0x6a
[   82.711175]  [<c0249669>] ? do_invalidatepage+0x19/0x1c
[   82.711175]  [<c0249b1b>] ? truncate_complete_page+0x45/0x4c
[   82.711175]  [<c0249c2d>] ? truncate_inode_pages_range+0x10b/0x344
[   82.711175]  [<c02fd75b>] ? ext4_destroy_inode+0x24/0x78
[   82.711175]  [<c02fd75b>] ? ext4_destroy_inode+0x24/0x78
[   82.711175]  [<c0249e80>] ? truncate_inode_pages+0x1a/0x2a
[   82.711175]  [<c0274ccc>] ? dispose_list+0xbc/0xe0
[   82.711175]  [<c0274fc9>] ? invalidate_inodes+0xc3/0xd8
[   82.711175]  [<c02640d4>] ? generic_shutdown_super+0x37/0xeb
[   82.711175]  [<c0264197>] ? kill_block_super+0xf/0x20
[   82.711175]  [<c0264238>] ? deactivate_super+0x3f/0x51
[   82.711175]  [<c02776c8>] ? mntput_no_expire+0x62/0xba
[   82.711175]  [<c0277997>] ? sys_umount+0x49/0x2cd
[   82.711175]  [<c0277c34>] ? sys_oldumount+0x19/0x1b
[   82.711175]  [<c0202dfe>] ? syscall_call+0x7/0xb
[   82.711175]  =======================
[   82.711175] Code: 00 77 24 89 8e 64 03 00 00 c7 86 68 03 00 00 00 00 00 00 8b 45 ec e8 7c 06 25 00 83 c4 0c 5b 5e 5f 5d c3 0f 0b eb fe 0f 0b eb fe <0f> 0b eb fe 55 89 e5 57 56 53 83 ec 04 89 c3 89 55 f0 8b 00 a8 
[   82.711175] EIP: [<c02f5d50>] ext4_da_release_space+0xb3/0xb7 SS:ESP 0068:c7af1e04
[   82.711292] ---[ end trace 89807645a0234eee ]---
[   82.711394] ------------[ cut here ]------------
[   82.711483] WARNING: at kernel/exit.c:1002 do_exit+0x404/0x78e()
[   82.711623] Pid: 720, comm: umount Tainted: G      D   2.6.27-rc1 #1
[   82.711742]  [<c0544178>] ? printk+0x18/0x20
[   82.711844]  [<c021905a>] warn_on_slowpath+0x49/0x6d
[   82.711951]  [<c0460922>] ? delay_tsc+0x17/0x21
[   82.712054]  [<c05463d9>] ? _spin_unlock+0x1d/0x20
[   82.712164]  [<c0489a8f>] ? serial8250_console_putchar+0x0/0xa7
[   82.712290]  [<c0546533>] ? _spin_lock_irqsave+0x36/0x3f
[   82.712405]  [<c02197a8>] ? release_console_sem+0x1a4/0x1ae
[   82.712526]  [<c021c1f9>] do_exit+0x404/0x78e
[   82.712623]  [<c0544178>] ? printk+0x18/0x20
[   82.712721]  [<c0218f92>] ? print_oops_end_marker+0x2a/0x2c
[   82.712841]  [<c020356d>] oops_begin+0x0/0x6b
[   82.712935]  [<c0203e95>] die+0x4e/0x64
[   82.713021]  [<c020429d>] do_trap+0x83/0xab
[   82.713114]  [<c0204598>] ? do_invalid_op+0x0/0x92
[   82.713221]  [<c0204620>] do_invalid_op+0x88/0x92
[   82.713371]  [<c02f5d50>] ? ext4_da_release_space+0xb3/0xb7
[   82.713614]  [<c025cfcf>] ? add_partial+0x55/0x5a
[   82.713825]  [<c025df52>] ? __slab_free+0x11f/0x302
[   82.714133]  [<c054681a>] error_code+0x6a/0x70
[   82.714325]  [<c02f5d50>] ? ext4_da_release_space+0xb3/0xb7
[   82.714588]  [<c02f5da8>] ext4_da_invalidatepage+0x54/0x6a
[   82.714819]  [<c02f5d54>] ? ext4_da_invalidatepage+0x0/0x6a
[   82.715060]  [<c0249669>] do_invalidatepage+0x19/0x1c
[   82.715267]  [<c0249b1b>] truncate_complete_page+0x45/0x4c
[   82.715489]  [<c0249c2d>] truncate_inode_pages_range+0x10b/0x344
[   82.715733]  [<c02fd75b>] ? ext4_destroy_inode+0x24/0x78
[   82.715969]  [<c02fd75b>] ? ext4_destroy_inode+0x24/0x78
[   82.716199]  [<c0249e80>] truncate_inode_pages+0x1a/0x2a
[   82.716418]  [<c0274ccc>] dispose_list+0xbc/0xe0
[   82.716618]  [<c0274fc9>] invalidate_inodes+0xc3/0xd8
[   82.716835]  [<c02640d4>] generic_shutdown_super+0x37/0xeb
[   82.717064]  [<c0264197>] kill_block_super+0xf/0x20
[   82.717269]  [<c0264238>] deactivate_super+0x3f/0x51
[   82.717477]  [<c02776c8>] mntput_no_expire+0x62/0xba
[   82.717685]  [<c0277997>] sys_umount+0x49/0x2cd
[   82.717886]  [<c0277c34>] sys_oldumount+0x19/0x1b
[   82.718086]  [<c0202dfe>] syscall_call+0x7/0xb
[   82.718283]  =======================
[   82.718427] ---[ end trace 89807645a0234eee ]---
fstest:/# 
----------
Comment 2 Rishikesh K Rajak 2008-08-25 01:51:53 UTC
Created attachment 17430 [details]
dmesg output file...

Hi,

can you try with 2.6.27-rc3 + http://repo.or.cz/w/ext4-patch-queue.git .

It seems i executed i am not getting oops, but i am getting so many error. I am attaching the dmesg file also please have a look into it what the error is.

-Rishi
Comment 3 Theodore Tso 2009-01-17 17:45:59 UTC
I'm not seeing any oops with 2.6.29-rc1 either, so I'm going to close this.  The large number of errors is to be expected given how badly corrupted the filesystem happens to be.