Bug 3304 - [Anolis8-ck27-rc2][aarch64][kernel]xfstests测试套ext4-2-overlay:generic/339 run fail
Summary: [Anolis8-ck27-rc2][aarch64][kernel]xfstests测试套ext4-2-overlay:generic/339 run ...
Status: RESOLVED FIXED
Alias: None
Product: ANCK 4.19 Dev
Classification: ANCK
Component: general/others (show other bugs) general/others
Version: unspecified
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: rc
Assignee: anolislw
QA Contact: shuming
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-30 19:18 UTC by anolislw
Modified: 2022-12-28 11:58 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 anolislw alibaba_cloud_group 2022-11-30 19:18:51 UTC
[问题简述]
在anolis8.6,内核为4.19.91-27_rc2.an8.aarch64,aarch64环境下,xfstests测试套ext4-2-overlay:generic/339 run fail
在rc1上该case是pass的: https://tone.aliyun-inc.com/ws/6yddz4ne/test_result/115009

-------------------
  {
    "testcase": "generic/339",
    "value": "Pass"
  },
----------------------


[复现步骤]
测试磁盘分2个区
git clone https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git
yum install -y xfsprogs-devel libuuid-devel libattr-devel libacl-devel libaio-devel libtool
cd xfstests-dev
make && make install
mkfs -t ext4 -q -F /dev/nvme0n1p1
mkfs -t ext4 -q -F /dev/nvme0n1p2
mkdir /mnt/nvme0n1p1
mkdir /mnt/nvme0n1p2
#TEST_DEV/SCRATCH_DEV为文件系统所在的磁盘或分区
export TEST_DEV=/dev/nvme0n1p1
export SCRATCH_DEV=/dev/nvme0n1p2
export FSTYP=ext4
#TEST_DIR/SCRATCH_MNT表示待测试文件系统的挂载目录
export SCRATCH_MNT=/mnt/nvme0n1p2
export TEST_DIR=/mnt/nvme0n1p1
cd /var/lib/xfstests
./check -overlay generic/339



[期望结果]
case pass

[实际结果]
    --- tests/generic/339.out	2022-11-27 02:23:41.797529109 +0800
    +++ /tmp/tone/run/xfstests/results//generic/339.out.bad	2022-11-27 02:39:53.499367987 +0800
    @@ -1,2 +1,6 @@
     QA output created by 339
     Silence is golden
    +umount: /fs/nvme0n1p2/ovl-mnt: target is busy.
    +umount: /fs/nvme0n1p2: target is busy.
    +umount: /fs/nvme0n1p2/ovl-mnt: target is busy.
    +mount: /fs/nvme0n1p2/ovl-mnt: /fs/nvme0n1p2 already mounted on /fs/nvme0n1p2/ovl-mnt.
    ...
    (Run 'diff -u /tmp/tone/run/xfstests/tests/generic/339.out /tmp/tone/run/xfstests/results//generic/339.out.bad'  to see the entire diff)


[测试环境]
[root@nu4f13168 xfstests]# uname -r
4.19.91-27_rc2.an8.aarch64
[root@nu4f13168 xfstests]# cat /etc/redhat-release
Anolis OS release 8.6
[root@nu4f13168 xfstests]# cat /proc/cmdline
BOOT_IMAGE=(hd1,gpt2)/boot/vmlinuz-4.19.91-27_rc2.an8.aarch64 root=UUID=2b1b3b78-b459-485e-9569-6901e73f32a3 ro console=tty0 console=ttyS0,115200 rd.driver.pre=ahci slub_debug=FPZU kmemleak=on cgroup.memory=nokmem
[root@nu4f13168 xfstests]# df -g
df: invalid option -- 'g'
Try 'df --help' for more information.
[root@nu4f13168 xfstests]# free -g
              total        used        free      shared  buff/cache   available
Mem:            755         138         616           0           0         614
Swap:             1           1           0
[root@nu4f13168 xfstests]# lscpu
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              96
On-line CPU(s) list: 0-95
Thread(s) per core:  1
Core(s) per socket:  48
Socket(s):           2
NUMA node(s):        1
Vendor ID:           HiSilicon
BIOS Vendor ID:      HiSilicon
Model:               0
Model name:          Kunpeng-920
BIOS Model name:     HUAWEI Kunpeng 920 5250
Stepping:            0x1
CPU max MHz:         2600.0000
CPU min MHz:         200.0000
BogoMIPS:            200.00
L1d cache:           64K
L1i cache:           64K
L2 cache:            512K
L3 cache:            24576K
NUMA node0 CPU(s):   0-95
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
Comment 1 Jingbo Xu alibaba_cloud_group 2022-12-01 17:47:00 UTC
cloud-kernel.git 切换到 4.19.91-27_rc2 tag,qemu 创建 VM,测试没有复现

根据上面贴的 339.out.bad,怀疑是测试环境问题
Comment 2 Jingbo Xu alibaba_cloud_group 2022-12-05 14:55:26 UTC
在执行测试之前,将 SCRATCH_DEV 也就是 /dev/nvme0n1p2 先执行 mkfs.ext4 之后,再执行 ./check -overlay generic/339 就不会报错,应该是 xfstests 更新之后 overlayfs 这块的 setup 逻辑有变化,导致没有给 SCRATCH_DEV 执行 mkfs 操作
Comment 3 Jingbo Xu alibaba_cloud_group 2022-12-05 15:15:18 UTC
(In reply to Jingbo Xu from comment #2)
> 在执行测试之前,将 SCRATCH_DEV 也就是 /dev/nvme0n1p2 先执行 mkfs.ext4 之后,再执行 ./check
> -overlay generic/339 就不会报错,应该是 xfstests 更新之后 overlayfs 这块的 setup 逻辑有变化,导致没有给
> SCRATCH_DEV 执行 mkfs 操作


1. 需要配合 local.config 执行

cat local.config
# cat local.config
# Ideally define at least these 4 to match your environment
# The first 2 are required.
# See README for other variables which can be set.
#
# Note: SCRATCH_DEV >will< get overwritten!

export FSTYP=ext4
export TEST_DEV=/dev/nvme0n1p1
export TEST_DIR=/mnt/nvme0n1p1
export SCRATCH_DEV=/dev/nvme0n1p2
export SCRATCH_MNT=/mnt/nvme0n1p2

./check -overlay generic/339


2. 如果不想要 local.config,而是直接在 bash shell 中执行上述 export 操作的话,除了 

export FSTYP=ext4
export TEST_DEV=/dev/nvme0n1p1
export TEST_DIR=/mnt/nvme0n1p1
export SCRATCH_DEV=/dev/nvme0n1p2
export SCRATCH_MNT=/mnt/nvme0n1p2

还需要 

export OVL_BASE_FSTYP=ext4

之后执行 ./check -overlay generic/339 也可以

和 https://bugzilla.openanolis.cn/show_bug.cgi?id=3303 这个问题类似
Comment 4 Jingbo Xu alibaba_cloud_group 2022-12-06 10:19:43 UTC
已经同步测试同学 @刘伟 适配修改测试步骤
Comment 5 cherryliyumei alibaba_cloud_group 2022-12-06 10:52:24 UTC
(In reply to Jingbo Xu from comment #4)
> 已经同步测试同学 @刘伟 适配修改测试步骤

按照shuming的说法,该问题非回归问题,也无需修改代码,可以在执行时通过环境变量workaround,由测试同学来修改,已经assign回给测试同学。
Comment 7 anolislw alibaba_cloud_group 2022-12-28 11:58:21 UTC
用例已修复,该问题关闭