[Lustre-discuss] Inode xxxxxx has a extra size (144) which is invalid

Andreas Dilger andreas.dilger at oracle.com
Tue Nov 2 12:17:45 PDT 2010


On 2010-11-02, at 10:54, Christopher Walker wrote:
> While running e2fsck on some OSTs that went down with a system crash, 
> we're getting a bunch (~50) of messages like:
> 
> Inode 196837991 has a extra size (144) which is invalid

Is there a prompt to fix the problem at this point?

> These don't get fixed with a e2fsck -fy -- any idea what this means and 
> how I can get rid of them?

Looking at the e2fsck::check_inode_extra_space(), it appears that this _should_ be fixed if the above error message is printed:

        if (inode->i_extra_isize &&
            (inode->i_extra_isize < min || inode->i_extra_isize > max)) {
                e2fsck_mark_inode_bad(ctx, pctx->ino, BADNESS_NORMAL);
                if (!fix_problem(ctx, PR_1_EXTRA_ISIZE, pctx))
                        return;
                inode->i_extra_isize = ctx->want_extra_isize;
                e2fsck_write_inode_full(ctx, pctx->ino, pctx->inode,
                                        EXT2_INODE_SIZE(sb), "pass1");
                return;
        }


This depends a bit upon what your inode size is (should be 256 for an OST), and if s_want_extra_isize is set in the superblock (it probably shouldn't be).

You're best off running e2fsck under gdb and setting a breakpoint at the above e2fsck_mark_inode_bad() line.

The problem itself is not fatal, but it means that the extended attributes for those files will be stored in an external block.  This isn't a huge deal, since they are referenced only very rarely.

Cheers, Andreas
--
Andreas Dilger
Lustre Technical Lead
Oracle Corporation Canada Inc.




More information about the lustre-discuss mailing list