<<Plain Text>>
This was also seen on a customized 3.10 kernel, but didn't reproduce on the
Ubuntu 13.04 packaged 3.8 kernel.
$ cat /etc/issue
Ubuntu 13.04 \n \l
$ uname -a
Linux ubuntu 3.11.0-031100-generic #201309021735 SMP Mon Sep 2 21:36:21 UTC
2013 x86_64 x86_64 x86_64 GNU/Linux
$ mount | grep /mnt
/dev/sdb on /mnt type xfs (rw)
$ ./xattr-test.sh /mnt/foo 10240
8
16
32
64
128
256
512
1024
2048
setfattr: /mnt/foo: Structure needs cleaning
failure to remove user.test1557
Oct 4 12:47:44 ubuntu kernel: [ 1824.541889] ffff88003a005000: 46 c4 4f 2f 00
00 06 b5 46 c4 4f a6 00 00 06 b4 F.O/....F.O.....
Oct 4 12:47:44 ubuntu kernel: [ 1824.542038] ffff88003a005010: 46 c4 4f a7 00
00 06 b3 46 c4 4f a8 00 00 06 b2 F.O.....F.O.....
Oct 4 12:47:44 ubuntu kernel: [ 1824.542121] ffff88003a005020: 46 c4 4f a9 00
00 06 b1 46 c4 4f aa 00 00 06 b0 F.O.....F.O.....
Oct 4 12:47:44 ubuntu kernel: [ 1824.542201] ffff88003a005030: 46 c4 4f ab 00
00 06 af 46 c4 4f ac 00 00 06 ae F.O.....F.O.....
Oct 4 12:47:44 ubuntu kernel: [ 1824.542286] XFS (sdb): Internal error
xfs_da_do_buf(2) at line 2694 of file
/home/apw/COD/linux/fs/xfs/xfs_da_btree.c. Caller 0xffffffffa0304423
Oct 4 12:47:44 ubuntu kernel: [ 1824.542286]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542421] CPU: 0 PID: 35058 Comm: setfattr
Not tainted 3.11.0-031100-generic #201309021735
Oct 4 12:47:44 ubuntu kernel: [ 1824.542422] Hardware name: VMware, Inc.
VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/31/2013
Oct 4 12:47:44 ubuntu kernel: [ 1824.542425] 0000000000000001
ffff8800354ab9f8 ffffffff81720fca 0000000000000007
Oct 4 12:47:44 ubuntu kernel: [ 1824.542428] ffff88003a27b800
ffff8800354aba18 ffffffffa02cd27f ffffffffa0304423
Oct 4 12:47:44 ubuntu kernel: [ 1824.542430] 0000000000000001
ffff8800354aba58 ffffffffa02cd2ee 0000000000000002
Oct 4 12:47:44 ubuntu kernel: [ 1824.542432] Call Trace:
Oct 4 12:47:44 ubuntu kernel: [ 1824.542447] [<ffffffff81720fca>]
dump_stack+0x46/0x58
Oct 4 12:47:44 ubuntu kernel: [ 1824.542474] [<ffffffffa02cd27f>]
xfs_error_report+0x3f/0x50 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542489] [<ffffffffa0304423>] ?
xfs_da3_node_read+0x23/0xd0 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542499] [<ffffffffa02cd2ee>]
xfs_corruption_error+0x5e/0x90 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542511] [<ffffffffa030438a>]
xfs_da_read_buf+0x1ba/0x230 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542522] [<ffffffffa0304423>] ?
xfs_da3_node_read+0x23/0xd0 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542539] [<ffffffffa0332127>] ?
xfs_trans_log_buf+0x97/0x100 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542550] [<ffffffffa0304423>]
xfs_da3_node_read+0x23/0xd0 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542562] [<ffffffffa030608c>]
xfs_da3_blk_unlink.isra.13+0x16c/0x1e0 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542573] [<ffffffffa030633f>]
xfs_da3_join+0x9f/0x240 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542584] [<ffffffffa02e6872>]
xfs_attr_node_removename+0x192/0x300 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542598] [<ffffffffa0327d5c>] ?
xfs_trans_add_item+0x2c/0x70 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542608] [<ffffffffa02e6b9e>]
xfs_attr_remove_int+0x1be/0x260 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542617] [<ffffffff812ed87c>] ?
security_inode_permission+0x1c/0x30
Oct 4 12:47:44 ubuntu kernel: [ 1824.542628] [<ffffffffa02e8577>]
xfs_attr_remove+0xa7/0xb0 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542638] [<ffffffffa02e0c08>]
xfs_xattr_set+0x58/0x60 [xfs]
Oct 4 12:47:44 ubuntu kernel: [ 1824.542645] [<ffffffff811d5e66>]
generic_removexattr+0x46/0x60
Oct 4 12:47:44 ubuntu kernel: [ 1824.542648] [<ffffffff811d6124>]
vfs_removexattr+0xa4/0x140
Oct 4 12:47:44 ubuntu kernel: [ 1824.542651] [<ffffffff811d6212>]
removexattr+0x52/0x80
Oct 4 12:47:44 ubuntu kernel: [ 1824.542658] [<ffffffff811be016>] ?
final_putname+0x26/0x50
Oct 4 12:47:44 ubuntu kernel: [ 1824.542661] [<ffffffff811be249>] ?
putname+0x29/0x40
Oct 4 12:47:44 ubuntu kernel: [ 1824.542665] [<ffffffff811c27c3>] ?
user_path_at_empty+0x63/0xa0
Oct 4 12:47:44 ubuntu kernel: [ 1824.542670] [<ffffffff811b4903>] ?
__sb_start_write+0x53/0x110
Oct 4 12:47:44 ubuntu kernel: [ 1824.542673] [<ffffffff811d1c68>] ?
__mnt_want_write+0x58/0x70
Oct 4 12:47:44 ubuntu kernel: [ 1824.542676] [<ffffffff811d1cac>] ?
mnt_want_write+0x2c/0x50
Oct 4 12:47:44 ubuntu kernel: [ 1824.542679] [<ffffffff811d738c>]
SyS_removexattr+0x7c/0xd0
Oct 4 12:47:44 ubuntu kernel: [ 1824.542684] [<ffffffff81735cef>]
tracesys+0xe1/0xe6
Oct 4 12:47:44 ubuntu kernel: [ 1824.542686] XFS (sdb): Corruption detected.
Unmount and run xfs_repair
Oct 4 12:51:21 ubuntu kernel: [ 2041.893539] INFO: task getfattr:35059 blocked
for more than 120 seconds.
Oct 4 12:51:21 ubuntu kernel: [ 2041.893650] "echo 0 >
/proc/sys/kernel/hung_task_timeout_secs" disables this message.
Oct 4 12:51:21 ubuntu kernel: [ 2041.893749] getfattr D
0000000000000000 0 35059 2071 0x00000004
Oct 4 12:51:21 ubuntu kernel: [ 2041.893753] ffff8800354a9958
0000000000000002 ffffea0000fdc740 ffffffff00000000
Oct 4 12:51:21 ubuntu kernel: [ 2041.893756] ffff8800354a9fd8
ffff8800354a9fd8 ffff8800354a9fd8 0000000000014580
Oct 4 12:51:21 ubuntu kernel: [ 2041.893758] ffff88003a2c8000
ffff88003982ddc0 0000000000000001 7fffffffffffffff
Oct 4 12:51:21 ubuntu kernel: [ 2041.893761] Call Trace:
Oct 4 12:51:21 ubuntu kernel: [ 2041.893772] [<ffffffff8172b279>]
schedule+0x29/0x70
Oct 4 12:51:21 ubuntu kernel: [ 2041.893777] [<ffffffff81728755>]
schedule_timeout+0x1e5/0x250
Oct 4 12:51:21 ubuntu kernel: [ 2041.893785] [<ffffffff8136c76e>] ?
radix_tree_lookup_slot+0xe/0x10
Oct 4 12:51:21 ubuntu kernel: [ 2041.893793] [<ffffffff81151635>] ?
prep_new_page+0x145/0x1e0
Oct 4 12:51:21 ubuntu kernel: [ 2041.893822] [<ffffffffa03186ac>] ?
xfs_iext_bno_to_ext+0x8c/0x160 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893826] [<ffffffff81729d68>]
__down_common+0x9d/0xed
Oct 4 12:51:21 ubuntu kernel: [ 2041.893836] [<ffffffffa02caffd>] ?
_xfs_buf_find+0xfd/0x2b0 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893839] [<ffffffff81729e2b>]
__down+0x1d/0x1f
Oct 4 12:51:21 ubuntu kernel: [ 2041.893847] [<ffffffff8108e941>]
down+0x41/0x50
Oct 4 12:51:21 ubuntu kernel: [ 2041.893856] [<ffffffffa02cae34>]
xfs_buf_lock+0x44/0x110 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893866] [<ffffffffa02caffd>]
_xfs_buf_find+0xfd/0x2b0 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893875] [<ffffffffa02cb284>]
xfs_buf_get_map+0x34/0x1b0 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893886] [<ffffffffa02cc231>]
xfs_buf_read_map+0x31/0x130 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893900] [<ffffffffa0302709>] ?
xfs_dabuf_map.isra.4+0x239/0x250 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893917] [<ffffffffa0331c51>]
xfs_trans_read_buf_map+0x271/0x490 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893930] [<ffffffffa030429f>]
xfs_da_read_buf+0xcf/0x230 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893942] [<ffffffffa0304423>]
xfs_da3_node_read+0x23/0xd0 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893946] [<ffffffff8109147a>] ?
lg_local_unlock+0x1a/0x20
Oct 4 12:51:21 ubuntu kernel: [ 2041.893950] [<ffffffff811bd536>] ?
complete_walk+0xa6/0x120
Oct 4 12:51:21 ubuntu kernel: [ 2041.893961] [<ffffffffa02e7f5b>]
xfs_attr_node_list+0x6b/0x4a0 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893966] [<ffffffff811bf14d>] ?
path_lookupat+0x6d/0x730
Oct 4 12:51:21 ubuntu kernel: [ 2041.893970] [<ffffffff81729cb6>] ?
down_read+0x16/0x2b
Oct 4 12:51:21 ubuntu kernel: [ 2041.893983] [<ffffffffa03161a4>] ?
xfs_ilock+0xf4/0x120 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.893995] [<ffffffffa02e8645>]
xfs_attr_list_int+0xc5/0xe0 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.894007] [<ffffffffa02e0e46>]
xfs_vn_listxattr+0x96/0x170 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.894019] [<ffffffffa02e0b70>] ?
xfs_change_file_space+0x370/0x370 [xfs]
Oct 4 12:51:21 ubuntu kernel: [ 2041.894024] [<ffffffff811d654d>]
vfs_listxattr+0x4d/0x80
Oct 4 12:51:21 ubuntu kernel: [ 2041.894027] [<ffffffff811d65e9>]
listxattr+0x69/0x130
Oct 4 12:51:21 ubuntu kernel: [ 2041.894030] [<ffffffff811d718e>]
SyS_listxattr+0x4e/0x90
Oct 4 12:51:21 ubuntu kernel: [ 2041.894034] [<ffffffff81735cef>]
tracesys+0xe1/0xe6
-------------------------------------------- Test Script
----------------------------------------
#! /bin/sh
#getfattr format
#
# # file: foo
# user.test="test"
if [ $# != "2" ];
then
echo usage: $0 path count
exit 1
fi
FILENAME=$1
COUNT=$2
rmdir $FILENAME > /dev/null 2>&1
datalen=65536
echo
"datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadata"
> tmp.$$
while test $datalen != 0
do
dd if=tmp.$$ of=src.$$ bs=512 count=1 conv=notrunc oflag=append 2> /dev/null
datalen=`expr $datalen - 512`
done
rm tmp.$$
for len in 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536
do
mkdir $FILENAME
echo $len
count=0
while test $count != $COUNT
do
entry=user.test`expr $count + 1`
echo "# file: $FILENAME" > data.$$
echo -n "$entry" >> data.$$
echo -n '="' >> data.$$
dd if=src.$$ of=data.$$ bs=$len count=1 conv=notrunc oflag=append 2>
/dev/null
echo '"' >> data.$$
#cat data.$$
#read a
setfattr --restore=data.$$
if [ $? != "0" ];
then
echo failure to set $entry
break
fi
count=`expr $count + 1`
#getfattr --dump $FILENAME
done
rm data.$$
rmcount=0
while test $rmcount != $count
do
entry=user.test`expr $rmcount + 1`
setfattr --remove=$entry $FILENAME
if [ $? != "0" ];
then
echo failure to remove $entry
break
fi
rmcount=`expr $rmcount + 1`
done
getfattr --dump $FILENAME
rmdir $FILENAME
done
rm src.$$
exit 0
----------------------------------------------------------------------------------------
David Zafman
Senior Developer
http://www.inktank.com
|