[问题简述] 在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
cloud-kernel.git 切换到 4.19.91-27_rc2 tag,qemu 创建 VM,测试没有复现 根据上面贴的 339.out.bad,怀疑是测试环境问题
在执行测试之前,将 SCRATCH_DEV 也就是 /dev/nvme0n1p2 先执行 mkfs.ext4 之后,再执行 ./check -overlay generic/339 就不会报错,应该是 xfstests 更新之后 overlayfs 这块的 setup 逻辑有变化,导致没有给 SCRATCH_DEV 执行 mkfs 操作
(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 这个问题类似
已经同步测试同学 @刘伟 适配修改测试步骤
(In reply to Jingbo Xu from comment #4) > 已经同步测试同学 @刘伟 适配修改测试步骤 按照shuming的说法,该问题非回归问题,也无需修改代码,可以在执行时通过环境变量workaround,由测试同学来修改,已经assign回给测试同学。
社区用例已修复 https://gitee.com/anolis/tone-cli/commit/f6a19938469e2bfba5316f713eb91dde542d5563
用例已修复,该问题关闭