Attempting To Recover, fsck infinite looping on me

Joseph Wagner theman at josephdwagner.info
Wed Jan 5 10:51:21 UTC 2005


> I *think* that the problem was, that the volume was full, and fsck
> needed free space to clone blocks or something like that. I couldn't
> free up space on the volume however, since when I tried it sometimes
> caused kernel oopses, sometimes made the volume go read-only, and when
> it didn't, it didn't free a single block (from du's point of view
> anyway).

I'm sorry, but I cannot reproduce such an error in the mannor in which you 
describe; hence, I am unable to create a bug report for it.  Screen output 
from my attempt to reproduce it is below.

I will continue to try several other scenarios before giving up completely, 
but I thought you should know someone is looking into this problem (even 
though I can't yet find it).

If you have more details, like screen output from during the error, feel 
free to contact myself or anyone else on the e2fsprogs team.

Joseph D. Wagner
wagnerjd at users.sourceforge.net

## Here's the status of the disk before I do anything to it.
## Notice the file system only has 3 free blocks.

# e2fsck -f /dev/hdb11
e2fsck 1.35 (28-Feb-2004)
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
/test: 45/1048576 files (42.2% non-contiguous), 2094109/2094112 blocks

## Here I force a Duplicate Block error into the file system.
## Notice I force in 4 duplicate blocks, so the system will
## run out of space before it can clone all the duplicate blocks.

# debugfs -w /dev/hdb11
debugfs 1.35 (28-Feb-2004)
debugfs:  modify_inode <14>
                          Mode    [0100664]
                       User ID    [0]
                      Group ID    [0]
                          Size    [49152]
                 Creation time    [1104919475]
             Modification time    [1104911138]
                   Access time    [1104911138]
                 Deletion time    [0]
                    Link count    [1]
                   Block count    [40] 72
                    File flags    [0x0]
                    Generation    [0xbd79555e]
                      File acl    [0]
           High 32bits of size    [0]
              Fragment address    [0]
               Fragment number    [0]
                 Fragment size    [0]
               Direct Block #0    [1573380]
               Direct Block #1    [1573381]
               Direct Block #2    [1573382]
               Direct Block #3    [1573383]
               Direct Block #4    [1662535]
               Direct Block #5    [0] 1573380
               Direct Block #6    [0] 1573381
               Direct Block #7    [0] 1573382
               Direct Block #8    [0] 1573383
               Direct Block #9    [0]
              Direct Block #10    [0]
              Direct Block #11    [0]
                Indirect Block    [0]
         Double Indirect Block    [0]
         Triple Indirect Block    [0]
debugfs:  close
debugfs:  quit

## Here's the first scan after I forced in the error.
## Notice it does realize that it ran out of space when
## attempting to clone the duplicate blocks.

# e2fsck -f /dev/hdb11
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Duplicate blocks found... invoking duplicate block passes.
Pass 1B: Rescan for duplicate/bad blocks
Duplicate/bad block(s) in inode 14: 1573380 1573381 1573382 1573383 1573380 
1573381 1573382 1573383
Pass 1C: Scan directories for inodes with dup blocks.
Pass 1D: Reconciling duplicate blocks
(There are 1 inodes containing duplicate/bad blocks.)

File /test/zero512 (inode #14, mod time Wed Jan  5 01:45:38 2005)
  has 8 duplicate block(s), shared with 0 file(s):
Clone duplicate/bad blocks<y>? yes

clone_file: Could not allocate block in ext2 filesystem returned from 
clone_file_block
Couldn't clone file: Could not allocate block in ext2 filesystem
Delete file<y>? no

Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong for group #51 (3, counted=0).
Fix<y>? yes

Free blocks count wrong (3, counted=0).
Fix<y>? yes


/test: ***** FILE SYSTEM WAS MODIFIED *****

/test: ********** WARNING: Filesystem still has errors **********

/test: 45/1048576 files (42.2% non-contiguous), 2094112/2094112 blocks

## Here's the second pass, just to check and see what the
## first pass did and did not fix.  Notice it successfully
## cloned 3 of the 4 duplicate blocks.

# e2fsck -f /dev/hdb11
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Duplicate blocks found... invoking duplicate block passes.
Pass 1B: Rescan for duplicate/bad blocks
Duplicate/bad block(s) in inode 14: 1573383 1573383
Pass 1C: Scan directories for inodes with dup blocks.
Pass 1D: Reconciling duplicate blocks
(There are 1 inodes containing duplicate/bad blocks.)

File /test/zero512 (inode #14, mod time Wed Jan  5 01:45:38 2005)
  has 2 duplicate block(s), shared with 0 file(s):
Clone duplicate/bad blocks<y>? yes

clone_file: Could not allocate block in ext2 filesystem returned from 
clone_file_block
Couldn't clone file: Could not allocate block in ext2 filesystem
Delete file<y>? no

Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/test: ***** FILE SYSTEM WAS MODIFIED *****

/test: ********** WARNING: Filesystem still has errors **********

/test: 45/1048576 files (42.2% non-contiguous), 2094112/2094112 blocks




More information about the Ext3-users mailing list