Bug 11252 - Kernel BUG on unmounting an intentionally corrupted filesystem
Summary: Kernel BUG on unmounting an intentionally corrupted filesystem
Status: REJECTED UNREPRODUCIBLE
Alias: None
Product: File System
Classification: Unclassified
Component: ext4 (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: fs_ext4@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-08-05 05:46 UTC by Sami Liedes
Modified: 2009-01-17 17:45 UTC (History)
1 user (show)

See Also:
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 (498.31 KB, application/x-bzip2)
2008-08-05 05:51 UTC, Sami Liedes
Details
dmesg output file... (54.21 KB, text/plain)
2008-08-25 01:51 UTC, Rishikesh K Rajak
Details

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.

Note You need to log in before you can comment on or make changes to this bug.