Bug 1089 - [Anck 4.19][ck26_rc1][xfs文件系统]xfstests xfs xfs/148 -ls: reading directory TEST_DIR/mount-148/testdir: Structure needs cleaning
Summary: [Anck 4.19][ck26_rc1][xfs文件系统]xfstests xfs xfs/148 -ls: reading directory TES...
Status: RESOLVED FIXED
Alias: None
Product: ANCK 4.19 Dev
Classification: ANCK
Component: fs (show other bugs) fs
Version: 4.19-026.x
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: Joseph Qi
QA Contact: shuming
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-05-05 17:21 UTC by kangjiangbo
Modified: 2022-05-11 21:06 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kangjiangbo 2022-05-05 17:21:49 UTC
Description of problem:
xfs文件系统,xfstests下xfs/148 -ls: reading directory TEST_DIR/mount-148/testdir: Structure needs cleaning
x86和arm均存在该问题

失败几率:100%
测试日志:
 ./check tests/xfs/148
FSTYP         -- xfs (non-debug)
PLATFORM      -- Linux/x86_64 iZ2ze6n8cezigzjqlcfjadZ 4.19.91-26_rc1.an7.x86_64 #1 SMP Mon Apr 25 17:24:24 CST 2022
MKFS_OPTIONS  -- -f -bsize=4096 /dev/vdb2
MOUNT_OPTIONS -- /dev/vdb2 /fs/scratch

xfs/148 - output mismatch (see /tmp/tone/run/xfstests/results//xfs/148.out.bad)
    --- tests/xfs/148.out       2022-05-05 16:39:04.748723614 +0800
    +++ /tmp/tone/run/xfstests/results//xfs/148.out.bad 2022-05-05 16:39:09.344733637 +0800
    @@ -27,16 +27,20 @@
     attr_get: No data available
     Could not get "a_are_bad/for_you" for TEST_DIR/mount-148/testfile
     ++ ACCESSING BAD METADATA
    -ls: reading directory TEST_DIR/mount-148/testdir: Structure needs cleaning
    +f_another
    +f_are_bad/for_you
     f_something
    ...
    (Run 'diff -u /tmp/tone/run/xfstests/tests/xfs/148.out /tmp/tone/run/xfstests/results//xfs/148.out.bad'  to see the entire diff)
Ran: xfs/148
Failures: xfs/148
Failed 1 of 1 tests


Version-Release number of selected component (if applicable):
# uname -a
Linux iZ2ze6n8cezigzjqlcfjadZ 4.19.91-26_rc1.an7.x86_64 #1 SMP Mon Apr 25 17:24:24 CST 2022 x86_64 x86_64 x86_64 GNU/Linux
# uname -a
Linux iZ2zebfu2pfe96wy4xb5lsZ 4.19.91-26_rc1.an7.aarch64 #1 SMP Mon Apr 25 17:30:58 CST 2022 aarch64 aarch64 aarch64 GNU/Linux
# cat /etc/os-release
NAME="Anolis OS"
VERSION="7.7"
ID="anolis"
ID_LIKE="rhel fedora centos"
VERSION_ID="7.7"
PRETTY_NAME="Anolis OS 7.7"
ANSI_COLOR="0;31"
HOME_URL="https://openanolis.cn/"
BUG_REPORT_URL="https://bugs.openanolis.cn/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"



How reproducible:
1. 准备环境
#准备disk1 disk2测试盘
disk1=vdb1
disk2=vdb2

dmsetup remove_all
wipefs -a --force /dev/$disk1
wipefs -a --force /dev/$disk2

mkfs -t xfs -L OStest -q -f /dev/$disk1
mkfs -t xfs -L OStest -q -f /dev/$disk2

export TEST_DIR=/fs/$disk1
export TEST_DEV=/dev/$disk1
export FSTYP=xfs
export SCRATCH_MNT=/fs/scratch
mkdir /fs/$disk1 -p
mkdir /fs/scratch -p
export SCRATCH_DEV=/dev/$disk2

2. 下载xfstests测试代码

3. 编译测试源码
cd xfstests-dev
export CFLAGS="-fcommon"
make
make install

4.执行测试用例
./check tests/xfs/148



Expected results:


Additional info:
xfsprogs-4.5.0-22.an7.x86_64
Comment 1 kangjiangbo 2022-05-05 17:22:23 UTC
an8 上该用例conf
xfs/148	[not run] parallel repair binary xfs_prepair64 is not installed
Comment 2 Joseph Qi alibaba_cloud_group 2022-05-10 17:39:51 UTC
(In reply to kangjiangbo from comment #1)
> an8 上该用例conf
> xfs/148	[not run] parallel repair binary xfs_prepair64 is not installed

估计你的用例不是最新的,之前老的 xfs_prepair64 已经被丢弃了:
0fd43f3f4bd7 xfs/14[89]: Remove xfs_prepair64 and xfs_prepair tests

新的用例为:
See if we catch corrupt directory names or attr names with nulls or slashes in them.

从描述上看是对 dir 和 attr name 做了加固。
Comment 3 Joseph Qi alibaba_cloud_group 2022-05-10 18:56:51 UTC
应该是下面这个 patchset 修复:
https://lore.kernel.org/linux-xfs/157232182246.593721.4902116478429075171.stgit@magnolia/
Comment 5 Joseph Qi alibaba_cloud_group 2022-05-10 20:12:49 UTC
合入 2 个 patchset 后,an8 测试通过;
an7 需要更新 xfsprogs。
Comment 6 Joseph Qi alibaba_cloud_group 2022-05-11 21:06:46 UTC
Merged at:
https://gitee.com/anolis/cloud-kernel/pulls/353