2000-12-10 15:47:59

by Frank van Maarseveen

[permalink] [raw]
Subject: 2.4.0-test11 EXT2 corruption

[running make depend after a fresh tar xz of a linux tree]
Dec 10 15:31:36 iapetus kernel: attempt to access beyond end of device
Dec 10 15:31:36 iapetus kernel: 03:04: rw=0, want=1934262372, limit=6281415
Dec 10 15:31:36 iapetus kernel: attempt to access beyond end of device
Dec 10 15:31:36 iapetus kernel: 03:04: rw=0, want=1438848492, limit=6281415
Dec 10 15:31:36 iapetus kernel: attempt to access beyond end of device
Dec 10 15:31:36 iapetus kernel: 03:04: rw=0, want=564795656, limit=6281415
Dec 10 15:31:36 iapetus kernel: attempt to access beyond end of device
Dec 10 15:31:36 iapetus kernel: 03:04: rw=0, want=1779526748, limit=6281415
Dec 10 15:31:36 iapetus kernel: attempt to access beyond end of device
Dec 10 15:31:36 iapetus kernel: 03:04: rw=0, want=1934262372, limit=6281415
Dec 10 15:31:36 iapetus kernel: attempt to access beyond end of device
Dec 10 15:31:36 iapetus kernel: 03:04: rw=0, want=1934262372, limit=6281415

make[4]: *** [fastdep] Error 135 (SIGBUS?)
make[4]: Leaving directory `/loc/x28/linux/drivers/scsi'
make[3]: *** [_sfdep_scsi] Error 2
make[3]: Leaving directory `/loc/x28/linux/drivers'
make[2]: *** [fastdep] Error 2
make[2]: Leaving directory `/loc/x28/linux/drivers'
make[1]: *** [_sfdep_drivers] Error 2
make[1]: Leaving directory `/loc/x28/linux'
make: *** [dep-files] Error 2

[have 192MB, decided to push everything out of memory first]
dd bs=80M count=1 conv=swab </dev/zero >/dev/null
1+0 records in
1+0 records out

[then decided to rm -rf the offending tree]
Dec 10 15:38:03 iapetus kernel: EXT2-fs error (device ide0(3,4)): ext2_free_blocks: Freeing blocks not in datazone - block = 1557307416, count = 1
... Freeing blocks not in datazone - block = 896583034, count = 1
... Freeing blocks not in datazone - block = 141198913, count = 1
... Freeing blocks not in datazone - block = 1518623510, count = 1
... Freeing blocks not in datazone - block = 1903593480, count = 1
... Freeing blocks not in datazone - block = 188520539, count = 1
... Freeing blocks not in datazone - block = 3263188504, count = 1
... Freeing blocks not in datazone - block = 3976264905, count = 1
... Freeing blocks not in datazone - block = 164289193, count = 1
... Freeing blocks not in datazone - block = 819722194, count = 1
... Freeing blocks not in datazone - block = 647422455, count = 1
... Freeing blocks not in datazone - block = 2364399617, count = 1
... Freeing blocks not in datazone - block = 1811366869, count = 1
... Freeing blocks not in datazone - block = 2229683343, count = 1
... Freeing blocks not in datazone - block = 2814774401, count = 1
... Freeing blocks not in datazone - block = 227302366, count = 1
... Freeing blocks not in datazone - block = 3802022963, count = 1
... Freeing blocks not in datazone - block = 1287930384, count = 1
... Freeing blocks not in datazone - block = 3876604110, count = 1
... Freeing blocks not in datazone - block = 3299679005, count = 1
... Freeing blocks not in datazone - block = 3498132489, count = 1
... Freeing blocks not in datazone - block = 2566691056, count = 1
... Freeing blocks not in datazone - block = 3869315139, count = 1
... Freeing blocks not in datazone - block = 2671383471, count = 1
... Freeing blocks not in datazone - block = 2620212037, count = 1
... Freeing blocks not in datazone - block = 47276984, count = 1
... Freeing blocks not in datazone - block = 3686076790, count = 1
... Freeing blocks not in datazone - block = 2633603944, count = 1
... Freeing blocks not in datazone - block = 3460325208, count = 1
... Freeing blocks not in datazone - block = 1182494213, count = 1
... Freeing blocks not in datazone - block = 80888211, count = 1
... Freeing blocks not in datazone - block = 3832307999, count = 1
... Freeing blocks not in datazone - block = 199915824, count = 1
... Freeing blocks not in datazone - block = 3416834659, count = 1
... Freeing blocks not in datazone - block = - block = 59890643, count = 1
... Freeing blocks not in datazone - block = 1040159054, count = 1
... Freeing blocks not in datazone - block = 1684592249, count = 1
... Freeing blocks not in datazone - block = 1448050660, count = 1
... Freeing blocks not in datazone - block = 3401569695, count = 1
... Freeing blocks not in datazone - block = 1740947199, count = 1
... Freeing blocks not in datazone - block = 2139462009, count = 1
... Freeing blocks not in datazone - block = 280211182, count = 1
... Freeing blocks not in datazone - block = 4283539120, count = 1
... Freeing blocks not in datazone - block = 2913935317, count = 1
... Freeing blocks not in datazone - block = 2688565944, count = 1
... Freeing blocks not in datazone - block = 729415605, count = 1
... Freeing blocks not in datazone - block = 82433055, count = 1
... Freeing blocks not in datazone - block = 8797319, count = 1
... Freeing blocks not in datazone - block = 3906552007, count = 1
... Freeing blocks not in datazone - block = 2309047735, count = 1
... Freeing blocks not in datazone - block = 2407009082, count = 1
... Freeing blocks not in datazone - block = 424607534, count = 1
... Freeing blocks not in datazone - block = 471618444, count = 1
... Freeing blocks not in datazone - block = 1309334207, count = 1
... Freeing blocks not in datazone - block = 965973187, count = 1
... Freeing blocks not in datazone - block = 2138041966, count = 1
... Freeing blocks not in datazone - block = 2655979155, count = 1
... Freeing blocks not in datazone - block = 3925499199, count = 1
... Freeing blocks not in datazone - block = 3996657173, count = 1
... Freeing blocks not in datazone - block = 2693632115, count = 1
... Freeing blocks not in datazone - block = 3961174705, count = 1
... Freeing blocks not in datazone - block = 208665023, count = 1
... Freeing blocks not in datazone - block = 1630375508, count = 1
... Freeing blocks not in datazone - block = 60081614, count = 1
... Freeing blocks not in datazone - block = 4072703481, count = 1
... Freeing blocks not in datazone - block = 1280433605, count = 1
... Freeing blocks not in datazone - block = 1872069493, count = 1
... Freeing blocks not in datazone - block = 2811095671, count = 1
... Freeing blocks not in datazone - block = 800369010, count = 1
... Freeing blocks not in datazone - block = 3585671650, count = 1
... Freeing blocks not in datazone - block = 3030008199, count = 1
... Freeing blocks not in datazone - block = 1528926271, count = 1
... Freeing blocks not in datazone - block = 3908499891, count = 1
... Freeing blocks not in datazone - block = 2034409328, count = 1
... Freeing blocks not in datazone - block = 36717408, count = 1
... Freeing blocks not in datazone - block = 2319472398, count = 1
... Freeing blocks not in datazone - block = 2926302155, count = 1
... Freeing blocks not in datazone - block = 7922521, count = 1
... Freeing blocks not in datazone - block = 3117202664, count = 1
... Freeing blocks not in datazone - block = 3977804511, count = 1
... Freeing blocks not in datazone - block = 1698931621, count = 1
... Freeing blocks not in datazone - block = 208617862, count = 1
... Freeing blocks not in datazone - block = 3518631517, count = 1
... Freeing blocks not in datazone - block = 1722037333, count = 1
... Freeing blocks not in datazone - block = 406886960, count = 1
... Freeing blocks not in datazone - block = 1350348460, count = 1
... Freeing blocks not in datazone - block = 3811553425, count = 1
... Freeing blocks not in datazone - block = 3300468606, count = 1
... Freeing blocks not in datazone - block = 581949345, count = 1
... Freeing blocks not in datazone - block = 2739966092, count = 1
... Freeing blocks not in datazone - block = 2418566121, count = 1
... Freeing blocks not in datazone - block = 4197831265, count = 1
... Freeing blocks not in datazone - block = 221713745, count = 1
... Freeing blocks not in datazone - block = 3800944987, count = 1
... Freeing blocks not in datazone - block = 1526217124, count = 1
... Freeing blocks not in datazone - block = 807446554, count = 1
... Freeing blocks not in datazone - block = 569299664, count = 1
... Freeing blocks not in datazone - block = 4124043613, count = 1
... Freeing blocks not in datazone - block = 2383569860, count = 1
... Freeing blocks not in datazone - block = 1595525380, count = 1
... Freeing blocks not in datazone - block = 665187763, count = 1
... Freeing blocks not in datazone - block = 294411201, count = 1
... Freeing blocks not in datazone - block = 2538196083, count = 1
... Freeing blocks not in datazone - block = 1499544928, count = 1
... Freeing blocks not in datazone - block = 3211874416, count = 1
... Freeing blocks not in datazone - block = 209757245, count = 1
... Freeing blocks not in datazone - block = 3128727337, count = 1
... Freeing blocks not in datazone - block = 383266036, count = 1
... Freeing blocks not in datazone - block = 1985288863, count = 1
... Freeing blocks not in datazone - block = 3562199885, count = 1
... Freeing blocks not in datazone - block = 4059152875, count = 1
... Freeing blocks not in datazone - block = 1719350326, count = 1
... Freeing blocks not in datazone - block = 1374172446, count = 1
... Freeing blocks not in datazone - block = 3542034493, count = 1
... Freeing blocks not in datazone - block = 2616481354, count = 1
... Freeing blocks not in datazone - block = 74323718, count = 1
... Freeing blocks not in datazone - block = 3904708069, count = 1
... Freeing blocks not in datazone - block = 1275517910, count = 1
... Freeing blocks not in datazone - block = 2391427460, count = 1
... Freeing blocks not in datazone - block = 2673983808, count = 1
... Freeing blocks not in datazone - block = 2906894531, count = 1
... Freeing blocks not in datazone - block = 2799801770, count = 1
... Freeing blocks not in datazone - block = 66908849, count = 1
... Freeing blocks not in datazone - block = 3378841455, count = 1
... Freeing blocks not in datazone - block = 411835620, count = 1
... Freeing blocks not in datazone - block = 2599742227, count = 1
... Freeing blocks not in datazone - block = 163957507, count = 1
... Freeing blocks not in datazone - block = 1672265229, count = 1
... Freeing blocks not in datazone - block = 2012005337, count = 1
... Freeing blocks not in datazone - block = 1522267535, count = 1
... Freeing blocks not in datazone - block = 1825751725, count = 1
... Freeing blocks not in datazone - block = 1095046218, count = 1
... Freeing blocks not in datazone - block = 2854848324, count = 1
... Freeing blocks not in datazone - block = 831762143, count = 1
... Freeing blocks not in datazone - block = 1941053933, count = 1
... Freeing blocks not in datazone - block = 3974871956, count = 1
... Freeing blocks not in datazone - block = 3979915084, count = 1
... Freeing blocks not in datazone - block = 4102722934, count = 1
... Freeing blocks not in datazone - block = 4195801648, count = 1
... Freeing blocks not in datazone - block = 3905294210, count = 1
... Freeing blocks not in datazone - block = 1302744532, count = 1
... Freeing blocks not in datazone - block = 1196766738, count = 1
... Freeing blocks not in datazone - block = 1290314155, count = 1
... Freeing blocks not in datazone - block = 3232279605, count = 1
... Freeing blocks not in datazone - block = 812585369, count = 1
... Freeing blocks not in datazone - block = 2857485850, count = 1
... Freeing blocks not in datazone - block = 7694995, count = 1
... Freeing blocks not in datazone - block = 3287906514, count = 1
... Freeing blocks not in datazone - block = 1141012974, count = 1
... Freeing blocks not in datazone - block = 3742320097, count = 1
... Freeing blocks not in datazone - block = 1043435421, count = 1
... Freeing blocks not in datazone - block = 2433099239, count = 1
... Freeing blocks not in datazone - block = 2811106121, count = 1
... Freeing blocks not in datazone - block = 3441571780, count = 1
... Freeing blocks not in datazone - block = 3896018699, count = 1
... Freeing blocks not in datazone - block = 2748305294, count = 1
... Freeing blocks not in datazone - block = 3270904206, count = 1
... Freeing blocks not in datazone - block = 787127136, count = 1
... Freeing blocks not in datazone - block = 3467437423, count = 1
... Freeing blocks not in datazone - block = 3236419113, count = 1
... Freeing blocks not in datazone - block = 1899478769, count = 1
... Freeing blocks not in datazone - block = 2021228594, count = 1
... Freeing blocks not in datazone - block = 3136291039, count = 1
... Freeing blocks not in datazone - block = 129287119, count = 1
... Freeing blocks not in datazone - block = 7703525, count = 1
... Freeing blocks not in datazone - block = 181397538, count = 1
... Freeing blocks not in datazone - block = 2402701298, count = 1
... Freeing blocks not in datazone - block = 3389641806, count = 1
... Freeing blocks not in datazone - block = 510385342, count = 1
... Freeing blocks not in datazone - block = 595148476, count = 1
... Freeing blocks not in datazone - block = 896681985, count = 1
... Freeing blocks not in datazone - block = 2632903903, count = 1
... Freeing blocks not in datazone - block = 2999921412, count = 1
... Freeing blocks not in datazone - block = 2402809807, count = 1

[going to runlevel 1, umounted everything]

bash# fsck -f /loc (== /dev/hda4)
Parallelizing fsck version 1.15 (18-Jul-1999)
e2fsck 1.15, 18-Jul-1999 for EXT2 FS 0.5b, 95/08/09
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: -288766 -288767 -288768 -288769 -288770 -288771 -288772 -288773 -288774 -288775 -288776 -288777 -288778 -288779 -288780 -288781 -288782 -288783 -288784 -288785 -288786 -288787 -288788 -288789 -288790 -288791 -288792 -288793 -288794 -288795 -288796 -288797 -288798 -288799 -288800 -288801 -288802 -288803 -288804 -288805 -288806 -288807 -288808 -288809 -288810 -288811 +1549069
Fix<y>? yes

Free blocks count wrong for group #8 (10228, counted=10274).
Fix<y>? yes

Free blocks count wrong for group #47 (21796, counted=21795).
Fix<y>? yes

Free blocks count wrong (474566, counted=474611).


/dev/hda4: ***** FILE SYSTEM WAS MODIFIED *****
/dev/hda4: 178293/786432 files (4.7% non-contiguous), 1095742/1570353 blocks

fdisk -l /dev/hda:
Disk /dev/hda: 255 heads, 63 sectors, 1582 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 600 4819468+ 83 Linux
/dev/hda2 601 750 1204875 83 Linux
/dev/hda3 751 800 401625 82 Linux swap
/dev/hda4 801 1582 6281415 83 Linux

fstab:
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /home ext2 defaults 1 2
/boot/swap /boot/swap swap defaults 0 0
/dev/cdrom /cdrom iso9660 noauto,user,ro 0 0
#/dev/hda3 swap swap defaults 0 0
/dev/hda4 /loc ext2 defaults 1 2
/dev/fd0 /a vfat noauto,user 0 0
/dev/fd0 /mnt ext2 noauto,user 0 0
#iapetus:/loc /try nfs noauto,vers=2 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm shm defaults 0 0
none /usb usbdevfs noauto 0 0

No other filesystems affected.

--
Frank


2000-12-10 18:02:18

by Frank van Maarseveen

[permalink] [raw]
Subject: Re: 2.4.0-test11 EXT2 corruption (2)

In addition to the previous:
A clean rebuild of a linux tree failes because of EXT2 data block mixups
(?). A second rebuild reveals further corruptions of similar nature. A
final fsck uncovers a few lost inodes. All file lengths are reasonable
i.e. no magic power of two numbers there.

doit
+ mkdir -p /loc/x28
+ cd /loc/x28
+ mkdir linux
+ tar xzf /home/fvm/kernel/v2.4/linux-2.4.0-test10.tar.gz
+ bzcat /home/fvm/kernel/v2.4/patch-2.4.0-test11.bz2
+ patch -p0 -s
+ zcat /home/fvm/kernel/v2.4/test12-pre7.gz
+ patch -p0 -s

[Further on a private patch failed because of NFS changes. Decided
to redo it without the problematic patch]

rm -rf /loc/x28
doit
+ mkdir -p /loc/x28
+ cd /loc/x28
+ mkdir linux
+ tar xzf /home/fvm/kernel/v2.4/linux-2.4.0-test10.tar.gz
+ bzcat /home/fvm/kernel/v2.4/patch-2.4.0-test11.bz2
+ patch -p0 -s
7 out of 8 hunks FAILED -- saving rejects to linux/arch/ppc/configs/apus_defconfig.rej
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
14 out of 14 hunks ignored -- saving rejects to linux/arch/ppc/configs/common_defconfig.rej
17 out of 18 hunks FAILED -- saving rejects to linux/arch/ppc/configs/gemini_defconfig.rej
6 out of 6 hunks FAILED -- saving rejects to linux/arch/ppc/configs/mbx_defconfig.rej
12 out of 15 hunks FAILED -- saving rejects to linux/arch/ppc/configs/oak_defconfig.rej

Now this _is_ bizarre since these are official patches and have worked before.

-rw-r--r-- 1 fvm sec 8882 Aug 11 20:18 linux/arch/ppc/configs/apus_defconfig.orig
File has incomplete last line, ending with:
ending with:
#
# General setup
#
# CONFIG_HIGHMEM is not set
# CONFIG_MOL is not set
# CONFIG_ISA is not set
# CONFIG_SBUS is not set
# CONFIG_PCI is not set
CONFIG_NET=y
C

-rw-r--r-- 1 fvm sec 17682 Nov 13 21:58 linux/arch/ppc/configs/common_defconfig
File has incomplete last line, ending with:
#
# File systems
#
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CON

-rw-r--r-- 1 fvm sec 7678 Nov 13 21:58 linux/arch/ppc/configs/gemini_defconfig.orig
File has incomplete last line, ending with:
#
# Appletalk devices
#
# CONFIG_APPLETALK is not

-rw-r--r-- 1 fvm sec 5628 Nov 28 1999 linux/arch/ppc/configs/mbx_defconfig.orig
File starts with:
ONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
CONFIG_NET_PCI=y
CONFIG_PCNET32=y
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_CS89x0 is not set
CONFIG_DE4X5=y

-rw-r--r-- 1 fvm sec 5997 Aug 11 20:18 linux/arch/ppc/configs/oak_defconfig.orig
File starts with:
CONFIG_SOUND_ICH is not set
# CONFIG_SOUND_VMIDI is not set
# CONFIG_SOUND_TRIX is not set
# CONFIG_SOUND_MSS is not set
# CONFIG_SOUND_MPU401 is not set
# CONFIG_SOUND_NM256 is not set
# CONFIG_SOUND_MAD16 is not set

mv /loc/x28 /loc/x28.bad
doit
+ mkdir -p /loc/x28
+ cd /loc/x28
+ mkdir linux
+ tar xzf /home/fvm/kernel/v2.4/linux-2.4.0-test10.tar.gz
+ bzcat /home/fvm/kernel/v2.4/patch-2.4.0-test11.bz2
+ patch -p0 -s
2 out of 2 hunks FAILED -- saving rejects to linux/drivers/usb/acm.c.rej
4 out of 4 hunks FAILED -- saving rejects to linux/drivers/usb/scanner.c.rej

Files contain binary data:
-rw-r--r-- 1 fvm sec 18592 Nov 13 21:59 linux/drivers/usb/acm.c.orig
-rw-r--r-- 1 fvm sec 26412 Nov 13 21:59 linux/drivers/usb/scanner.c.orig

mount -o ro,remount /loc
df /loc
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda4 6182660 4509152 1359440 77% /loc
fsck -f /dev/hda4
Parallelizing fsck version 1.15 (18-Jul-1999)
e2fsck 1.15, 18-Jul-1999 for EXT2 FS 0.5b, 95/08/09
/dev/hda4 is mounted.

WARNING!!! Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? yes

Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Unattached inode 216034
Connect to /lost+found<y>? yes

Inode 216034 ref count is 2, should be 1. Fix<y>? yes

Unattached inode 216035
Connect to /lost+found<y>? yes

Inode 216035 ref count is 2, should be 1. Fix<y>? yes

Unattached inode 216036
Connect to /lost+found<y>? yes

Inode 216036 ref count is 2, should be 1. Fix<y>? yes

Unattached inode 216037
Connect to /lost+found<y>? yes

Inode 216037 ref count is 2, should be 1. Fix<y>? yes

Unattached inode 216038
Connect to /lost+found<y>? yes

Inode 216038 ref count is 2, should be 1. Fix<y>? yes

Unattached inode 216039
Connect to /lost+found<y>? yes

Inode 216039 ref count is 2, should be 1. Fix<y>? yes

Unattached inode 216040
Connect to /lost+found<y>? yes

Inode 216040 ref count is 2, should be 1. Fix<y>? yes

Unattached inode 216041
Connect to /lost+found<y>? yes

Inode 216041 ref count is 2, should be 1. Fix<y>? yes

Unattached inode 216042
Connect to /lost+found<y>? yes

Inode 216042 ref count is 2, should be 1. Fix<y>? yes

Unattached inode 216043
Connect to /lost+found<y>? yes

Inode 216043 ref count is 2, should be 1. Fix<y>? yes

Unattached inode 216044
Connect to /lost+found<y>? yes

Inode 216044 ref count is 2, should be 1. Fix<y>? yes

Pass 5: Checking group summary information
/dev/hda4: ***** FILE SYSTEM WAS MODIFIED *****
/dev/hda4: 194697/786432 files (4.6% non-contiguous), 1151976/1570353 blocks

/loc/lost+found:
total 88
-rw-r--r-- 1 fvm sec 547 Nov 6 1999 #216034
-rw-r--r-- 1 fvm sec 42 Aug 5 1998 #216035
-rw-r--r-- 1 fvm sec 14227 Feb 10 2000 #216036
-rw-r--r-- 1 fvm sec 39 Aug 5 1998 #216037
-rw-r--r-- 1 fvm sec 2075 Oct 7 1999 #216038
-rw-r--r-- 1 fvm sec 4333 Aug 11 20:19 #216039
-rw-r--r-- 1 fvm sec 5554 Feb 10 2000 #216040
-rw-r--r-- 1 fvm sec 24723 Nov 13 21:59 #216041
-rw-r--r-- 1 fvm sec 3736 Nov 12 1999 #216042
-rw-r--r-- 1 fvm sec 1459 Nov 13 21:58 #216043
-rw-r--r-- 1 fvm sec 37 Oct 7 1999 #216044
file *
#216034: English text
#216035: C program text
#216036: C program text
#216037: C program text
#216038: C program text
#216039: C program text
#216040: C program text
#216041: C program text
#216042: C program text
#216043: C program text
#216044: C program text

cycling power revealed two things:
- File contents didn't change: everything reported about file contents
still in effect.
- BIOS reported I had only 64MB but I _did_ add 128MB two weeks ago. No
kernel build problems until now when both BIOS and kernel decided I had
only 64MB (I checked /var/log/messages for this).

--
Frank

2000-12-10 21:05:52

by Frank van Maarseveen

[permalink] [raw]
Subject: Re: 2.4.0-test11 EXT2 corruption (3)

Hmm, not only I see files stuffed with random data but sometimes also with
a block of zeroes (about 3600 consecutive zero bytes in a .depend file)
At one time /var/log/messages said while doing rm -rf:

Dec 10 21:23:04 iapetus kernel: EXT2-fs error (device ide0(3,4)): ext2_readdir: bad entry in directory #152149: rec_len is smaller than minimal - offset=0, inode=0, rec_len=0, name_len=0
Dec 10 21:23:04 iapetus kernel: EXT2-fs warning (device ide0(3,4)): empty_dir: bad directory (dir #152149) - no `.' or `..'
Dec 10 21:23:05 iapetus kernel: EXT2-fs error (device ide0(3,4)): ext2_readdir: bad entry in directory #332361: rec_len is smaller than minimal - offset=0, inode=0, rec_len=0, name_len=0
Dec 10 21:23:05 iapetus kernel: EXT2-fs warning (device ide0(3,4)): empty_dir: bad directory (dir #332361) - no `.' or `..'

Maybe it is a hardware problem?

--
Frank

2000-12-10 21:10:12

by Jens Axboe

[permalink] [raw]
Subject: Re: 2.4.0-test11 EXT2 corruption (3)

On Sun, Dec 10 2000, Frank van Maarseveen wrote:
> Hmm, not only I see files stuffed with random data but sometimes also with
> a block of zeroes (about 3600 consecutive zero bytes in a .depend
> file) At one time /var/log/messages said while doing rm -rf:
>
> Dec 10 21:23:04 iapetus kernel: EXT2-fs error (device ide0(3,4)):
> ext2_readdir: bad entry in directory #152149: rec_len is smaller than
> minimal - offset=0, inode=0, rec_len=0, name_len=0 Dec 10 21:23:04
> iapetus kernel: EXT2-fs warning (device ide0(3,4)): empty_dir: bad
> directory (dir #152149) - no `.' or `..' Dec 10 21:23:05 iapetus
> kernel: EXT2-fs error (device ide0(3,4)): ext2_readdir: bad entry in
> directory #332361: rec_len is smaller than minimal - offset=0,
> inode=0, rec_len=0, name_len=0 Dec 10 21:23:05 iapetus kernel: EXT2-fs
> warning (device ide0(3,4)): empty_dir: bad directory (dir #332361) -
> no `.' or `..'
>
> Maybe it is a hardware problem?

No, it's a test11 problem. Go to test12-pre[latest].

--
* Jens Axboe <[email protected]>
* SuSE Labs

2000-12-10 22:14:16

by Frank van Maarseveen

[permalink] [raw]
Subject: 2.4.0-test11 EXT2 corruption: mixing up file contents

After removing 128MB, leaving the original 64MB in the main board:

+ tar xzf /home/fvm/kernel/v2.4/linux-2.4.0-test10.tar.gz
+ bzcat /home/fvm/kernel/v2.4/patch-2.4.0-test11.bz2
+ patch -p0 -s
+ zcat /home/fvm/kernel/v2.4/test12-pre7.gz
+ patch -p0 -s
3 out of 3 hunks FAILED -- saving rejects to linux/arch/mips64/Makefile.rej
1 out of 1 hunk FAILED -- saving rejects to linux/arch/mips64/arc/Makefile.rej
1 out of 1 hunk FAILED -- saving rejects to linux/arch/mips64/arc/console.c.rej

-rw-r--r-- 1 fvm sec 4444 Aug 11 20:23 linux/arch/mips64/Makefile.orig
File contains C code (!!!), starts with:
Descr Read SM */
#define CSR_DWRITE_RUN (1L<<11) /* Bit 11: Rel. Descr Write SM */
#define CSR_DWRITE_RST (1L<<10) /* Bit 10: Reset Descr Write SM */
#define CSR_TRANS_RUN (1L<<9) /* Bit 9: Release Transfer SM */
#define CSR_TRANS_RST (1L<<8) /* Bit 8: Reset Transfer SM */
#define CSR_ENA_POL (1L<<7) /* Bit 7: Enable Descr Polling */
#define CSR_DIS_POL (1L<<6) /* Bit 6: Disable Descr Polling */
#define CSR_STOP (1L<<5) /* Bit 5: Stop Rx/Tx Queue */
#define CSR_START (1L<<4) /* Bit 4: Start Rx/Tx Queue */
#define CSR_IRQ_CL_P (1L<<3) /* Bit 3: (Rx) Clear Parity IRQ */
#define CSR_IRQ_CL_B (1L<<2) /* Bit 2: Clear EOB IRQ */
#define CSR_IRQ_CL_F (1L<<1) /* Bit 1: Clear EOF IRQ */
#define CSR_IRQ_CL_C (1L<<0) /* Bit 0: Clear ERR IRQ */
Ends with (incomplete last line):
/* RB_TST1 8 bit RAM Buffer Test Register 1 */
/* Bit 7: reserved */
#define RB_WP_T_ON (1<<6) /* Bit 6: Write Pointer Test On */
#define RB_WP_T

-rw-r--r-- 1 fvm sec 320 May 13 2000 linux/arch/mips64/arc/Makefile.orig
Entire file is again C (incomplete last line):
al Receive Buffer Address upper dword*/
SK_U32 RxStat ; /* Receive Frame Status Word */
SK_U32 RxTiSt ; /* Receive Timestamp provided by the XMAC */
#ifndef SK_USE_REV_DESC
SK_U16 RxTcpSum1 ; /* TCP Checksum 1 */
SK_U16 RxTcpSum2 ; /* TCP Checksum 2 */
SK_U16 RxTcpSp1 ; /* TCP Checksum Calculation Start Position


-rw-r--r-- 1 fvm sec 551 May 13 2000 linux/arch/mips64/arc/console.c.orig
Entire file:
), XMA((Mac), (Reg+2)), (SK_U16) \
(((SK_U16)(pByte[2]) & 0x00ff)| \
(((SK_U16)(pByte[3]) << 8) & 0xff00))); \
SK_OUT16((IoC), XMA((Mac), (Reg+4)), (SK_U16) \
(((SK_U16)(pByte[4]) & 0x00ff)| \
(((SK_U16)(pByte[5]) << 8) & 0xff00))); \
SK_OUT16((IoC), XMA((Mac), (Reg+6)), (SK_U16) \
(((SK_U16)(pByte[6]) & 0x00ff)| \
(((SK_U16)(pByte[7]) << 8) & 0xff00))); \
}

/*
* Different PHY Types
*/
#define SK_PHY_XMAC 0 /* integrated in Xmac II*/
#define SK_PHY_BCOM 1 /* Broadcom BCM5400 */
#define SK_PHY_LONE 2 /* Level

Rather unusual for a console driver ;-)

fsck didn't find anything.

I checked a test11 tree and it seems that only the contents of the three
files was messed up, not the mtime/length. I can't rule out a hardware
cause but this doesn't look like a typical hardware problem to me:
mixing up data of different files.

Maybe SMP related because hardware is a dual PIII-450.

--
Frank

2000-12-11 01:08:24

by Guest section DW

[permalink] [raw]
Subject: Re: 2.4.0-test11 EXT2 corruption: mixing up file contents

On Sun, Dec 10, 2000 at 10:44:02PM +0100, Frank van Maarseveen wrote:

Dag Frank -

I see lots of messages from you about corruption in 2.4.0-test11
but we all know very well that 2.4.0-test11 corrupts things
and further evidence is not necessary.
Hopefully all, or at least the most significant, problems
have been solved now, so you should upgrade to the most
recent test kernel and see how things are there.

Andries

2000-12-11 08:53:54

by Frank van Maarseveen

[permalink] [raw]
Subject: Re: 2.4.0-test11 EXT2 corruption (closed)

On Mon, Dec 11, 2000 at 01:37:36AM +0100, Guest section DW wrote:
>
> I see lots of messages from you about corruption in 2.4.0-test11
> but we all know very well that 2.4.0-test11 corrupts things
> and further evidence is not necessary.
> Hopefully all, or at least the most significant, problems
> have been solved now, so you should upgrade to the most
> recent test kernel and see how things are there.
>
Thanks. test12-pre7 fixes this for me: it ran all night testing and
no problems so far.

--
Frank

2000-12-11 12:38:54

by Johan Bergstr?m

[permalink] [raw]
Subject: Re: 2.4.0-test11 EXT2 corruption (closed)

On Mon, 11 Dec 2000, Frank van Maarseveen wrote:

> On Mon, Dec 11, 2000 at 01:37:36AM +0100, Guest section DW wrote:
> >
> > I see lots of messages from you about corruption in 2.4.0-test11
> > but we all know very well that 2.4.0-test11 corrupts things
> > and further evidence is not necessary.
> > Hopefully all, or at least the most significant, problems
> > have been solved now, so you should upgrade to the most
> > recent test kernel and see how things are there.
> >
> Thanks. test12-pre7 fixes this for me: it ran all night testing and
> no problems so far.
>
I'm running test12-pre7 and had a bad lockup a couple of days ago. Or
actually it wasnt a lockup it was a "klonk" in the harddrive when I
started netscape then the machine rebooted. And I had a corruption in the
$HOME/.netscape/cache directory. No logged messages or anything anywhere.
The machine just rebooted and I had to manually fsck /home.

Johan
> --
> Frank
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> Please read the FAQ at http://www.tux.org/lkml/
>