pre-45-7 clawed my fs pretty badly

Michael L. Galbraith (mikeg@weiden.de)
Thu, 17 Jul 1997 07:17:37 +0200 (MET DST)


Hello,

This is the *strangest* mauling I've taken in a while..

After firing 45-7 up and running a few tests, I decided to run lmbench. Since
it wasn't resident in 45-7's cage (chicken!), I had to let it out.. mistake.

Mounted /dev/sdb3 on /mnt, and promptly remember that I moved lmbench out of
this partition (/usr).

Mounted /dev/sdc1 on /mnt2 (/usr/local/src). As soon as it mounts, 2 ext2fs
messages go past.. too fast to read.. become *very* observant.

Do ls /mnt2, and see my /usr tree. Hmm?! ls /mnt, and see my /usr tree.
Do df, and confirm that two different drives are in fact mounted.
Reconfirm that both /mnt and /mnt2 show the identical content.

AOOOOOOOOOOOOGAH! DIVE! DIVE!

umount.. groan..

EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 409580
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 409580
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 409579
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 327345
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 425224
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 418547
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 327400
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 418548
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 327401
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 418549
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 327402
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 392750
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 392762
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 418550
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 327403
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 392766
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 421717
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 327611
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 421718
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 327612
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 392962
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 392964
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 421803
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 327697
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 360378
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 262367
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 230137
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 230139
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 419052
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 328174
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 419053
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 328175
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 295633
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 117287
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 99593
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 6402
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 6914
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 6658
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 5890
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 3330
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 3586
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 3842
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 3330
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 4354
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 513
repeated 4 times
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 99600
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 117541
repeated 11 times
EXT2-fs warning (device 08:21): ext2_free_blocks: bit already cleared for block 117539
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 99602
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 295745
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 361075
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 295944
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 295946
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 295947
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 263278
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 361330
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 361339
EXT2-fs warning (device 08:21): ext2_free_inode: bit already cleared for inode 165311
EXT2-fs error (device 08:21): ext2_check_blocks_bitmap: Block #509 of the inode table in group 0 is marked free

Boot 2.0.30+++ and let Ted try to fix the damage (lots of directories).
Afterward, I had to find a few directories and put them back where they
belong, but only lost one file (wow!). My /usr/src/patch dir ended up in
/usr/src/v2.0/linux/drivers/pci/.depend.. but was intact. File .depend got
morphed into a directory.. wonder where the .depend data blocks went.

I'm going to make another pen for it, and see if I can reproduce this :-/

-Mike

P.S.
After piecing the fs back together, I ran a bunch of make -j etc. all ok.
But, fired up X in the middle of 2 make -j's and got the strange /proc
related oops which I reported earlier.

Unable to handle kernel paging request at virtual address c581a7a0
current->tss.cr3 = 01190000, `r3 = 01190000
*pde = 04ec1063
*pte = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c014bdb7>]
EFLAGS: 00010246
eax: 00000000 ebx: c581a7a0 ecx: 00000000 edx: 00000000
esi: c399bf58 edi: c399bf58 ebp: c399bf38 esp: c399bf0c
ds: 0018 es: 0018 ss: 0018
Process X (pid: 7943, process nr: 116, stackpage=c399b000)
Stack: bffff06c c49950e0 bffff06c 00008912 00000001 00000000 c399a000 000007e0
bffff094 00000800 bffff074 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 c014c7f2 bffff06c bffff06c c0168ebf 00008912
Call Trace: [<c014c7f2>] [<c0168ebf>] [<c0146c51>] [<c012ac7a>] [<c010944a>]
Code: 8b 13 89 d6 89 ef fc ac aa 84 c0 75 fa 66 8b 43 46 66 89 44
Using `boot/2.1.45/System.map' to map addresses to symbols.

>>EIP: c014bdb7 <dev_ifconf+af/18c>
Trace: c014c7f2 <dev_ioctl+1aa/208>
Trace: c0168ebf <inet_ioctl+3eb/44c>
Trace: c0146c51 <sock_ioctl+21/28>
Trace: c012ac7a <sys_ioctl+14e/164>
Trace: c010944a <system_call+3a/40>

Code: c014bdb7 <dev_ifconf+af/18c> movl (%ebx),%edx
Code: c014bdb9 <dev_ifconf+b1/18c> movl %edx,%esi
Code: c014bdbb <dev_ifconf+b3/18c> movl %ebp,%edi
Code: c014bdbd <dev_ifconf+b5/18c> cld
Code: c014bdbe <dev_ifconf+b6/18c> lodsb %ds:(%esi),%al
Code: c014bdbf <dev_ifconf+b7/18c> stosb %al,%es:(%edi)
Code: c014bdc0 <dev_ifconf+b8/18c> testb %al,%al
Code: c014bdc2 <dev_ifconf+ba/18c> jne c014bdbe <dev_ifconf+b6/18c>
Code: c014bdc4 <dev_ifconf+bc/18c> movw 0x46(%ebx),%ax
Code: c014bdc8 <dev_ifconf+c0/18c> movw %ax,0xffffff90(%eax,%eax,1)
Code: c014bdcd <dev_ifconf+c5/18c> nop
Code: c014bdce <dev_ifconf+c6/18c> nop

X is absolutely immortal.. kill, kill -9 SysRqstE/K.

free sibling
task PC stack pid father child younger older
init 1 S FFFFFC18 0 1 0 153
kflushd 2 S 00000024 0 2 1 3
kswapd 3 S 0000000C 0 3 1 9 2
update 8 S 00000012 0 9 1 10 3
kerneld 6 S 00000014 0 10 1 41 9
crond 5 S 0000000E 0 41 1 53 10
syslogd 10 S 00000013 0 53 1 55 41
klogd 9 R 00000014 0 55 1 117 53
ipppd 7 S FFFFFC18 0 115 1 145 139
rpc.portmap 11 S 0000000D 0 117 1 119 55
inetd 13 S FFFFFC18 0 119 1 121 117
arpd 14 S FFFFFC18 0 121 1 123 119
named 15 S FFFFFC18 0 123 1 125 121
lpd 16 S FFFFFC18 0 125 1 139 123
sendmail 12 S 00000008 0 139 1 115 125
sh 4 S 0000000B 0 145 1 7793 146 115
sh 25 S 00000014 0 146 1 6440 147 145
sh 18 S 00000013 0 147 1 8978 148 146
sh 19 S 00000001 0 148 1 149 147
sh 20 S 00000012 0 149 1 9625 150 148
agetty 21 S 00000012 0 150 1 153 149
gpm 22 S 00000019 0 153 1 150
top 44 R 0000000A 0 6440 146
make 58 S 0000000B 0 7793 145 7808
sh 57 S 00000013 0 7808 7793 9700
make 102 S 00000013 0 8978 147 8983
sh 99 S 00000012 0 8983 8978 9654
sh 26 S 00000012 0 9625 149 9627
startx 42 S 00000008 0 9627 9625 9629
xinit 61 S 00000010 0 9629 9627 9634
X -74 R current 0 9634 9629
make 65 S 0000000C 0 9654 8983 9655
make 89 S 00000014 0 9655 9654 9684
gcc 134 S 00000013 0 9656 9655 9676 9657
gcc 139 S 00000012 0 9657 9655 9677 9658 9656
gcc 55 S 00000010 0 9658 9655 9679 9661 9657
gcc 156 S 00000011 0 9661 9655 9678 9662 9658
gcc 59 S 00000014 0 9662 9655 9685 9663 9661
gcc 144 S 00000014 0 9663 9655 9688 9664 9662
gcc 82 S 00000014 0 9664 9655 9686 9665 9663
gcc 52 S 00000014 0 9665 9655 9687 9668 9664
gcc 81 S 0000000B 0 9668 9655 9691 9669 9665
gcc 130 S 0000000A 0 9669 9655 9693 9670 9668
gcc 80 S 00000014 0 9670 9655 9694 9671 9669
gcc 151 S 00000014 0 9671 9655 9695 9683 9670
cc1 41 R 0000000A 0 9676 9656
cc1 149 R 00000009 0 9677 9657
cc1 133 R 00000011 0 9678 9661
cc1 131 R 00000012 0 9679 9658
gcc 118 S 00000014 0 9683 9655 9696 9684 9671
gcc 86 S 0000000F 0 9684 9655 9697 9683
cc1 111 R 00000012 0 9685 9662
cc1 28 R 00000012 0 9686 9664
cc1 115 R 00000011 0 9687 9665
cc1 49 R 00000011 0 9688 9663
cc1 135 R 00000012 0 9691 9668
cc1 37 R 00000010 0 9693 9669
cc1 79 R 00000012 0 9694 9670
cc1 39 R 00000011 0 9695 9671
cc1 69 R 00000027 0 9696 9683
cc1 128 R 00000012 0 9697 9684
make 143 S 00000004 0 9700 7808 9701
make 150 S 00000009 0 9701 9700 9705
gcc 23 S 00000001 0 9702 9701 9708 9704
gcc 88 S 00000007 0 9704 9701 9715 9705 9702
gcc 166 S 00000013 0 9705 9701 9713 9704
cpp 140 R 00000013 0 9706 9702 9707
cc1 164 S 00000013 0 9707 9702 9708 9706
as 93 S 00000013 0 9708 9702 9707
cpp 126 S 00000006 0 9711 9705 9712
gcc 114 R 08058A30 0 9712 9705 9713 9711
gcc 125 R 08054778 0 9713 9705 9712
gcc 107 R 080546B4 0 9715 9704
Mem-info:
Free pages: 14436kB
( 57*4kB 130*8kB 43*16kB 152*32kB 93*64kB 13*128kB = 14436kB)
Swap cache: add 12023/12023, delete 12735381/9802, find 31195/2194
Free swap: 258388kB
20480 pages of RAM
3997 free pages
794 reserved pages
6375 pages shared
Buffer memory: 9448kB
Buffer heads: 2365
Buffer blocks: 2362
CLEAN: 1527 buffers, 0 used (last=0), 0 locked, 0 protected, 0 dirty
LOCKED: 748 buffers, 11 used (last=748), 0 locked, 0 protected, 0 dirty
DIRTY: 56 buffers, 8 used (last=53), 0 locked, 0 protected, 56 dirty