| To: | "Christoph Hellwig" <hch@xxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: xfstests testcase 111: Infinite xfs_bulkstat bad-inode loop casefrom Roger Willcocks |
| From: | "Roger Willcocks" <roger@xxxxxxxxxxxxxxxx> |
| Date: | Mon, 22 Dec 2008 20:28:59 -0000 |
| Cc: | <xfs@xxxxxxxxxxx> |
| References: | <20081222165848.GA17075@infradead.org> |
Hi Roger,
here are the relevant extracts from our in-house bugzilla (bug 3675). Since the problem only occurs when the disk is corrupted, I don't see any problem with skipping the test on debug kernels. ** 2006-02-01 xfs_fsr can get into a state where one processor spends 100% of its time looping in the kernel. The application can't be killed. 'top' shows it using 50% CPU (i.e. all of one of the two processors). oprofile reveals that one processor spends about 2/3 of its time in xfs.ko. It looks like the offending syscall is xfs_bulkstat. ** 2006-02-03 Looks like xfs_itobp (map inode number to disk buffer) detects a corrupted inode (bad magic number). That causes a break out of a loop in xfs_bulkstat, skipping setting the teminating condition of a containing loop. I'll file a bug report with SGI. ** 2006-02-03 SGI say 'Ayup, I think you're right'- http://marc.theaimsgroup.com/?t=113889680200006 ** 2006-02-07 A bad inode magic number can cause the xfs_bulkstat syscall to get stuck looping in the kernel. To reproduce: (don't try this at home folks!) - mkfs.xfs /dev/sda mount filesystem and create 1000 or so files (I copied a handy 313-byte file). run this program: --------- #include <sys/types.h> #include <unistd.h> #include <fcntl.h> char buffer[32768]; void nuke()
{
int i;
for (i = 2048; i < 32768-1; i++)
if (buffer[i] == 'I' && buffer[i+1] == 'N')
buffer[i] = buffer[i+1] = 'X';
}
mount the disk and run xfs_fsr. It immediately gets stuck in a kernel loop. ** 2006-02-08 SGI have added a corresponding regression test to the xfs_cmds package http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfstests/111?rev=1.1 -- Roger |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | xfstests testcase 111: Infinite xfs_bulkstat bad-inode loop case from Roger Willcocks, Christoph Hellwig |
|---|---|
| Next by Date: | Re: [PATCH 00/20] xfs-cmds staging tree, Mark Goodwin |
| Previous by Thread: | xfstests testcase 111: Infinite xfs_bulkstat bad-inode loop case from Roger Willcocks, Christoph Hellwig |
| Next by Thread: | Re: xfstests testcase 111: Infinite xfs_bulkstat bad-inode loop casefrom Roger Willcocks, Christoph Hellwig |
| Indexes: | [Date] [Thread] [Top] [All Lists] |