[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: FS corruption; HTREE-related?

On Sun, 6 Oct 2002 23:37:27 -0600, "Andreas Dilger"
<adilger clusterfs com> said:
> On Oct 07, 2002  05:07 +0000, JP Howard wrote:
> > ----
> > # ls -laR > /dev/null
> > ...
> > ls: ./server2/b/user/bxyz/392.: Input/output error
> > ----
> > 
> > esfsck shows "Inodes that were part of a corrupted orphan linked list
> > found."
> > 
> > We've been hitting this computer pretty hard, migrating data across to it
> > from 4 servers simultaneously using rsync. Of around a million files or
> > so, 250 developed this problem.
> It appears that the inode was marked as deleted, but it was not unlinked
> from the directory tree.  It would be important to know whether this
> file should or should not exist at this time (i.e. was it ever deleted)?
It was not intentionally deleted--it should still be in the file system.

> I can see from the size of the parent directory (not quoted, but 20kB)
> that this would be an htree directory.
Yes, it was.

> No, they will be accessible via the normal linear-search methods in ext3
> though.  Depending on the size of your directories this may or may not
> be "acceptible performance", but it is usually better than not working
> at all - another reason I'm glad we made the effort for the htree code
> to be compatible with non-htree kernels.
It's not really acceptable performance--that's why we've been trying to
get htree working. Large Cyrus mailboxes are far too slow currently. But
yes, I'm glad we've at least got something that works!

Anyway, here's an alternate hypothesis:...

Some file in the directory was supposed to be deleted. It looked by the
directory entry, but got it wrong somehow, but in such a way that it
the wrong file, but removed the right directory entry. So I can see the
problem being produced like this:

1. I have a directory with 2 files, 'a' and 'b'
2. I delete 'a'
3. It removes the 'a' from the directory list, but for some reason,
   deletes the inode for 'b'

Would this result in what we're seeing, namely that 'b' appears in the
directory, but it's inode says that it's deleted and free?

So, what can we do from here to get htree working? Is there anything we
could add to the htree patch or to the e2sfprogs code to make it safer?

Thanks for your help!

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]