"htree_dirblock_to_tree: bad entry in directory" error

Andreas Dilger adilger at clusterfs.com
Fri Aug 3 16:49:42 UTC 2007

On Aug 02, 2007  09:01 -0700, Dan Harkless wrote:
>     2007-08-02 04:02:25 kern.crit www kernel: EXT3-fs error (device md2): htree_dirblock_to_tree: bad entry in directory #3616894: rec_len is too small for name_len - offset=103576, inode=3619715, rec_len=12, name_len=132
> I unmounted the filesystem and ran fsck, but though it detected that the
> filesystem had errors, it didn't report any findings during the check:
>     fsck 1.35 (28-Feb-2004)
>     e2fsck 1.35 (28-Feb-2004)
>     /dev/md2: recovering journal
>     /dev/md2 contains a file system with errors, check forced.
>     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
>     /dev/md2: 200231/5248992 files (1.4% non-contiguous), 1563304/10492432 blocks
> I remounted the filesystem and all *seems* to be okay now.  I was curious
> what "directory #3616894" (inode 3619715) was, so I did 'find / -inum
> 3619715 -exec ls -dioF {} \;', but the output showed that that was a
> non-directory file created and last modified in 2004.  How could this be?

Note that the DIRECTORY is 3616894, and the entry within that directory
that was corrupted is 3619715.

> And what would cause an error like the above?  Am I out of the woods now, or
> is there more checking of some kind that I should do to make sure this isn't
> going to be happening again?

Given that there is no corruption on disk, I would put this toward some
kind of memory corruption.  It might be a single-bit error though, because
12 = 0xc and 132 = 0x84 so if you clear bit 0x80 from the name_len (leaving
a name_len = 4) it would be correct for a rec_len of 12.  Is the filename
4 characters long?

Cheers, Andreas
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.

More information about the Ext3-users mailing list