xfs
[Top] [All Lists]

Re: XFS hang during xfs_fsr run

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: XFS hang during xfs_fsr run
From: Michael Weissenbacher <mw@xxxxxxxxxxxx>
Date: Fri, 05 Mar 2010 10:04:53 +0100
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <20100304222611.GK14317@xxxxxxxxxxxxxxxx>
References: <4B8F871C.60802@xxxxxxxxxxxx> <20100304112018.GG14317@xxxxxxxxxxxxxxxx> <4B8FA2CD.6010904@xxxxxxxxxxxx> <20100304131511.GH14317@xxxxxxxxxxxxxxxx> <20100304134641.GA26871@xxxxxxxxxxxxx> <4B8FC1B7.3070505@xxxxxxxxxxxx> <20100304222611.GK14317@xxxxxxxxxxxxxxxx>
User-agent: Thunderbird 2.0.0.23 (X11/20090817)
If you've got the inode numbers, then your running with the verbose
flag set? Do you still have the logs for those inodes that it hung
on?
Yes I am running xfs_fsr with the -v flag. But I'm not 100% sure if the log was truncated since it resides in /var which locked up. Here are the last log entries before the oopses:
ino=134269708  (this inode was /var/log/xfs_fsr.log)
(hang)
...
ino=277040401  (this inode was /var/spool/imap/x/user/xxxx/cyrus.cache)
(hang)

I can pin down those things at the moment:
- Both times it was a "hot" file - in one case a logfile, in the other case a database file. - Usually it should say "file busy" and continue but sometimes it doesn't and just hangs the filesystem + oopses the kernel. - It happens randomly, if i rerun xfs_fsr after the hang it usually goes over the "problem" file without a hickup.
- On /var/log/xfs_fsr.log it hung even though the (+f) chattr was set.

xfs_fsr doesn't do directory traversals to find files for defrag -
it uses more efficient bulkstat+open-by-handle method to visit every
inode in the filesystem once. As a result, it will still open inodes
that have the nodefrag flag set on them, but will then ignore them once
it finds the flag is set.
Yes, usually it says "marked as don't defrag, ignoring" but this one time it hung.

A trace would tell us which one it was....
Will see that i can get another one.

cheers,
Michael

<Prev in Thread] Current Thread [Next in Thread>