2008-12-01 02:10:18

by Zhang Xiliang

[permalink] [raw]
Subject: kernel BUG at fs/ext4/extents.c:ext4_ext_search_right()

My test kernel is: 2.6.27
Hardware Environment: x86 or EM64T

I put stress on ext4 device by using the script.
After waiting some times, kernel brings up I/O error as follows:

RHEL5 kernel: EXT4-fs error (device hda3): ext4_ext_search_right: bad
header in inode #575041: unexpected eh_depth - magic f30a, entries 15,
max 84(0), depth 1(2)

If using "sync" command at the time, the command will not be finished.
The kernel message as follows:

INFO: task sync:16199 blocked for more than 120 seconds.et: Discarding
datagram
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
d5bb2dc0 00000046 00000001 00000000 c04363d5 d5a6a360 d5a6a5b8
c2498080
00000001 c223c8e0 c223c8d0 00000246 ffffffff 00000046 00000000
00000000
00000000 f6598f10 00000000 f6598f18 c223c8d0 c048c021 c06544e8
c048c01c
Call Trace:
[<c04363d5>] prepare_to_wait+0x12/0x42
[<c048c021>] inode_wait+0x5/0x8
[<c06544e8>] __wait_on_bit+0x33/0x58
[<c048c01c>] inode_wait+0x0/0x8
[<c0494ae6>] __writeback_single_inode+0xd2/0x248
[<c0494e38>] generic_sync_sb_inodes+0x1d/0x243
[<c04362fd>] wake_bit_function+0x0/0x3c
[<c0494f9d>] generic_sync_sb_inodes+0x182/0x243
[<c04950db>] sync_inodes_sb+0x78/0x80
[<c0495136>] __sync_inodes+0x53/0x97
[<c04975bc>] do_sync+0x35/0x55
[<c04975e6>] sys_sync+0xa/0x10
[<c0403839>] sysenter_do_call+0x12/0x31
=======================
INFO: lockdep is turned off.


The script as follows:
#!/bin/bash

echo -e "input the name of the block device(e.g. /dev/sdb1), it will be
formatted:"
echo -n ">>> Device name = "
read ext4stress_dev

mkfs.ext3 -b 1024 $ext4stress_dev
tune2fs -E test_fs -O extents $ext4stress_dev
mount -t ext4dev -o nomballoc,delalloc,data=writeback $ext4stress_dev /mnt

tar xvzf bonnie++-1.03d.gz
cd bonnie++-1.03d
./configure
make
make install
cd ..
cp -rf bonnie++-1.03d /mnt
cd /mnt/bonnie++-1.03d/
./bonnie++ -u root
cd ..


The "bonnie++-1.03d.gz" can be download by
"http://www.coker.com.au/bonnie++/".