#242 inode can be cleared with neither fsck nor debugfs

open
e2fsck (61)
5
2012-11-28
2009-08-31
No

After message "attempt to access beyond end of device" the filesystem was crashed. fsck repaiered it except the issue. There is one inode with too many invalid blocks. Each time only 11 can be successfully cleared, then the whole inode will be cleared, but fsck doesn't reach 100% of pass1 and restarts. Then it finds the same (supposed to be cleared!?) inode, and cleares the next 11 blocks, followed by clearing the inode. Then it goes in a loop.

In debugfs after command clri I see that the inode is cleared, but after reopen of fs, all (supposed to be cleared!?) content is there.

I can't supply the partition due to big size. Maybe there are any other way to supply the important debug information?

Discussion

  • Theodore Ts'o

    Theodore Ts'o - 2009-09-07

    If you can clear the inode using clri, and then after you close the filesystem, re-run debugfs, thus re-opening the filesystem, and using the debugfs stat command, you're still seeing the original inode contents, then there is almost certainly a hardware problem where the write block command is being ignored by the disk. There's nothing e2fsprogs can do about that kind of I/O error.

     
  • Andrey Gursky

    Andrey Gursky - 2009-09-07

    I'm very appreciating your answer!
    The fs was crashed on the pci SATA-controller, but promptly after that I stopped to use it and switched to the motherboard built-in nForce 430. fsck and debugfs I run only with good hardware (the affected harddisk was new). I cannot yet believe, that there is a hardware problem, because blocks could be cleared, but each time only the next 11. It is interesting, whether functions, that clear the stand alone block and all blocks in inode are the same and what they are?

     
  • Theodore Ts'o

    Theodore Ts'o - 2009-09-09

    Sorry, I'm having problems parsing your last comment into valid english sentences and extracting sense out of them. Could you rephrase and expand the following:

    "I cannot yet believe, that there is a hardware problem, because blocks
    could be cleared, but each time only the next 11."

    and

    "It is interesting, whether functions, that clear the stand alone block and all blocks in inode
    are the same and what they are?"

     
  • Andrey Gursky

    Andrey Gursky - 2009-09-12

    Sorry, that my descriptions were too briefly. This is the typical output of fsck on the affected partition:
    --------------------------------------
    andreypc:~# /home/andrey/progs/e2fsprogs/e2fsprogs-1.41.9/build/e2fsck/e2fsck -C 0 /dev/sdb3
    e2fsck 1.41.9 (22-Aug-2009)
    part3 contains a file system with errors, check forced.
    Pass 1: Checking inodes, blocks, and sizes

    {at about 58.2%}

    Inode 19161090 has illegal block(s). Clear<y>? yes

    Illegal block #58779 (1488220892) in inode 19161090. CLEARED.
    Illegal block #58780 (3528799863) in inode 19161090. CLEARED.
    Illegal block #58781 (1517395318) in inode 19161090. CLEARED.
    Illegal block #58782 (258936220) in inode 19161090. CLEARED.
    Illegal block #58783 (1048266459) in inode 19161090. CLEARED.
    Illegal block #58784 (3303226227) in inode 19161090. CLEARED.
    Illegal block #58785 (4293253469) in inode 19161090. CLEARED.
    Illegal block #58786 (4265593853) in inode 19161090. CLEARED.
    Illegal block #58787 (4282382329) in inode 19161090. CLEARED.
    Illegal block #58788 (771538831) in inode 19161090. CLEARED.
    Illegal block #58790 (2493677163) in inode 19161090. CLEARED.
    Too many illegal blocks in inode 19161090.
    Clear inode<y>? yes

    {after about 70%:}

    Restarting e2fsck from the beginning...
    part3 contains a file system with errors, check forced.
    Pass 1: Checking inodes, blocks, and sizes
    Inode 19161090 has illegal block(s). Clear<y>? yes

    Illegal block #58791 (3594599544) in inode 19161090. CLEARED.
    Illegal block #58792 (3564699883) in inode 19161090. CLEARED.
    Illegal block #58793 (919854425) in inode 19161090. CLEARED.
    Illegal block #58794 (2748827842) in inode 19161090. CLEARED.
    Illegal block #58795 (2114660537) in inode 19161090. CLEARED.
    Illegal block #58796 (495433039) in inode 19161090. CLEARED.
    Illegal block #58797 (2538291446) in inode 19161090. CLEARED.
    Illegal block #58798 (3584802838) in inode 19161090. CLEARED.
    Illegal block #58799 (504337085) in inode 19161090. CLEARED.
    Illegal block #58800 (1530578118) in inode 19161090. CLEARED.
    Illegal block #58801 (1950540447) in inode 19161090. CLEARED.
    Too many illegal blocks in inode 19161090.
    Clear inode<y>? yes

    Restarting e2fsck from the beginning...
    part3 contains a file system with errors, check forced.
    Pass 1: Checking inodes, blocks, and sizes
    part3: e2fsck canceled.

    part3: ********** WARNING: Filesystem still has errors **********

    andreypc:~#
    --------------------------------

    The C-function, that clears blocks seems to have success. But in the C-function, that clears the whole inode something seems to prevent the clearing even the first invalid block in the affected inode (when the pass1 restarts one can see, that between the first 11 invalid blocks was cleared and the next 11 invalid blocks cleared, nothing was happened (e.g. there are no "missing" numbers of invalid blocks).

    I didn't found any DEBUG_E2FSCK defs in pass1.c relative to invalid blocks/clear the whole inode issue (and debugfs shares most likely the clear_inode function with fsck from another source file). Maybe you could suggest where to place debug output to see, why clearing inode fails to clear this particularly inode, although invalid blocks could be cleared some another way. And maybe it is possible to trace, what is the particularly reason to restart the pass1. Could this have a relation to the issue?

     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks