I can reliably generate an xfs_force_shutdown error on a stock
2.6.12.6 kernel by
mkfs.xfs -f -d size=1000m /dev/sda
mount /dev/sda /mnt/disk1
cd /
tar cf - . --exclude mnt | (cd /mnt/disk1; tar xvf -)
When the tar has filled the disk (and is getting file system full
errors), let it run for a bit longer (so the disk is really, really
full) then hit ^C and rerun the tar command. You might need to rerun
it a couple of times, but pretty soon tar starts getting i/o errors.
df at this point shows:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda 1019200 -73786976294836035584 3193188 101% /mnt/disk1
I added a stack dump in xfs_force_shutdown (as per xfs_trans.c
1.168/1.169) and so far I've seen two different failure modes:
Filesystem "sda": XFS internal error xfs_trans_cancel at line 1090 of file
fs/xfs/xfs_trans.c. Caller 0xf894522d
[<f893e3c3>] xfs_trans_cancel+0xd3/0x100 [xfs]
[<f894522d>] xfs_create+0x27d/0x680 [xfs]
[<f894522d>] xfs_create+0x27d/0x680 [xfs]
[<f88f45e4>] xfs_attr_get+0x94/0xb0 [xfs]
[<f8950209>] linvfs_mknod+0x2c9/0x3b0 [xfs]
[<c01d3160>] avc_has_perm_noaudit+0x40/0x150
[<c01d31ac>] avc_has_perm_noaudit+0x8c/0x150
[<c01d32b3>] avc_has_perm+0x43/0x50
[<c01d32b3>] avc_has_perm+0x43/0x50
[<f8950306>] linvfs_create+0x16/0x20 [xfs]
[<c01680ea>] vfs_create+0x9a/0x130
[<c0168a11>] open_namei+0x661/0x6c0
[<c01584e4>] filp_open+0x34/0x60
[<c01588e5>] sys_open+0x35/0x70
[<c0102c5b>] sysenter_past_esp+0x54/0x79
xfs_force_shutdown(sda,0x8) called from line 1091 of file fs/xfs/xfs_trans.c.
Return address = 0xf89535e 0
Filesystem "sda": Corruption of in-memory data detected. Shutting down
filesystem: sda
Please umount the filesystem, and rectify the problem(s)
xfs_force_shutdown(sda,0x1) called from line 353 of file fs/xfs/xfs_rw.c.
Return address = 0xf89535e0
...and...
Filesystem "sda": XFS internal error xfs_trans_cancel at line 1090 of file
fs/xfs/xfs_trans.c. Caller 0xf8946326
[<f893e3c3>] xfs_trans_cancel+0xd3/0x100 [xfs]
[<f8946326>] xfs_mkdir+0x236/0x630 [xfs]
[<f8946326>] xfs_mkdir+0x236/0x630 [xfs]
[<f8950253>] linvfs_mknod+0x313/0x3b0 [xfs]
[<c01d3160>] avc_has_perm_noaudit+0x40/0x150
[<c01d31ac>] avc_has_perm_noaudit+0x8c/0x150
[<c01d32b3>] avc_has_perm+0x43/0x50
[<c01d32b3>] avc_has_perm+0x43/0x50
[<c01e0ec0>] security_transition_sid+0x20/0x30
[<f895032b>] linvfs_mkdir+0x1b/0x20 [xfs]
[<c0168e80>] vfs_mkdir+0x90/0x120
[<c0168fa4>] sys_mkdir+0x94/0xc0
[<c015945d>] sys_write+0x3d/0x70
[<c0102c5b>] sysenter_past_esp+0x54/0x79
xfs_force_shutdown(sda,0x8) called from line 1091 of file fs/xfs/xfs_trans.c.
Return address = 0xf89535e0
Filesystem "sda": Corruption of in-memory data detected. Shutting down
filesystem: sda
Please umount the filesystem, and rectify the problem(s)
--
Roger
|