Bug 22225 - [Anolis23-6.6.88][aarch64]kernel-selftests测试mount_setattr/mount_setattr_test用例失败,疑似是CONFIG_IDMAP_MOUNT选项未开启
Summary: [Anolis23-6.6.88][aarch64]kernel-selftests测试mount_setattr/mount_setattr_test用...
Status: NEW
Alias: None
Product: Antest
Classification: Infrastructures
Component: 测试用例 (show other bugs) 测试用例
Version: unspecified
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: yuki_syq
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-06-27 16:30 UTC by yunhe123
Modified: 2025-06-30 15:23 UTC (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description yunhe123 alibaba_cloud_group 2025-06-27 16:30:32 UTC
Description of problem:
kernel-selftests测试mount_setattr/mount_setattr_test用例失败,疑似是CONFIG_IDMAP_MOUNT选项未开启

失败日志如下:
# ./mount_setattr_test
TAP version 13
1..21
# Starting 21 tests from 2 test cases.
#  RUN           mount_setattr.invalid_attributes ...
#            OK  mount_setattr.invalid_attributes
ok 1 mount_setattr.invalid_attributes
#  RUN           mount_setattr.extensibility ...
#            OK  mount_setattr.extensibility
ok 2 mount_setattr.extensibility
#  RUN           mount_setattr.basic ...
#            OK  mount_setattr.basic
ok 3 mount_setattr.basic
#  RUN           mount_setattr.basic_recursive ...
#            OK  mount_setattr.basic_recursive
ok 4 mount_setattr.basic_recursive
#  RUN           mount_setattr.mount_has_writers ...
#            OK  mount_setattr.mount_has_writers
ok 5 mount_setattr.mount_has_writers
#  RUN           mount_setattr.mixed_mount_options ...
#            OK  mount_setattr.mixed_mount_options
ok 6 mount_setattr.mixed_mount_options
#  RUN           mount_setattr.time_changes ...
#            OK  mount_setattr.time_changes
ok 7 mount_setattr.time_changes
#  RUN           mount_setattr.multi_threaded ...
#            OK  mount_setattr.multi_threaded
ok 8 mount_setattr.multi_threaded
#  RUN           mount_setattr.wrong_user_namespace ...
#            OK  mount_setattr.wrong_user_namespace
ok 9 mount_setattr.wrong_user_namespace
#  RUN           mount_setattr.wrong_mount_namespace ...
#            OK  mount_setattr.wrong_mount_namespace
ok 10 mount_setattr.wrong_mount_namespace
#  RUN           mount_setattr.mount_attr_nosymfollow ...
#            OK  mount_setattr.mount_attr_nosymfollow
ok 11 mount_setattr.mount_attr_nosymfollow
#  RUN           mount_setattr_idmapped.invalid_fd_negative ...
#            OK  mount_setattr_idmapped.invalid_fd_negative
ok 12 mount_setattr_idmapped.invalid_fd_negative
#  RUN           mount_setattr_idmapped.invalid_fd_large ...
#            OK  mount_setattr_idmapped.invalid_fd_large
ok 13 mount_setattr_idmapped.invalid_fd_large
#  RUN           mount_setattr_idmapped.invalid_fd_closed ...
#            OK  mount_setattr_idmapped.invalid_fd_closed
ok 14 mount_setattr_idmapped.invalid_fd_closed
#  RUN           mount_setattr_idmapped.invalid_fd_initial_userns ...
#            OK  mount_setattr_idmapped.invalid_fd_initial_userns
ok 15 mount_setattr_idmapped.invalid_fd_initial_userns
#  RUN           mount_setattr_idmapped.attached_mount_inside_current_mount_namespace ...
#            OK  mount_setattr_idmapped.attached_mount_inside_current_mount_namespace
ok 16 mount_setattr_idmapped.attached_mount_inside_current_mount_namespace
#  RUN           mount_setattr_idmapped.attached_mount_outside_current_mount_namespace ...
#            OK  mount_setattr_idmapped.attached_mount_outside_current_mount_namespace
ok 17 mount_setattr_idmapped.attached_mount_outside_current_mount_namespace
#  RUN           mount_setattr_idmapped.detached_mount_inside_current_mount_namespace ...
#            OK  mount_setattr_idmapped.detached_mount_inside_current_mount_namespace
ok 18 mount_setattr_idmapped.detached_mount_inside_current_mount_namespace
#  RUN           mount_setattr_idmapped.detached_mount_outside_current_mount_namespace ...
#            OK  mount_setattr_idmapped.detached_mount_outside_current_mount_namespace
ok 19 mount_setattr_idmapped.detached_mount_outside_current_mount_namespace
#  RUN           mount_setattr_idmapped.change_idmapping ...
#            OK  mount_setattr_idmapped.change_idmapping
ok 20 mount_setattr_idmapped.change_idmapping
#  RUN           mount_setattr_idmapped.idmap_mount_tree_invalid ...
# mount_setattr_test.c:1428:idmap_mount_tree_invalid:Expected sys_mount_setattr(open_tree_fd, "", AT_EMPTY_PATH, &attr, sizeof(attr)) (0) != 0 (0)
# idmap_mount_tree_invalid: Test terminated by assertion
#          FAIL  mount_setattr_idmapped.idmap_mount_tree_invalid
not ok 21 mount_setattr_idmapped.idmap_mount_tree_invalid
# FAILED: 20 / 21 tests passed.
# Totals: pass:20 fail:1 xfail:0 xpass:0 skip:0 error:0



How reproducible:
必现

Steps to Reproduce:
wget 内核对应src.rpm包
rpm -ivh xxx.src.rpm 默认安装到/root下
yum install yum-utils
yum-builddep -y /root/rpmbuild/SPECS/kernel.spec 自动安装前置依赖包 需要yum-utils
rpmbuild -bp /root/rpmbuild/SPECS/kernel.spec # 这个步骤会打相关的patch, 解压缩tar包,生成BUILD目录
cd /root/rpmbuild/BUILD/kernel-*/linux-*
make -C tools/testing/selftests/
cd /root/rpmbuild/BUILD/kernel-*/linux-*/tools/testing/selftests/mount_setattr
make
./mount_setattr_test


Actual results:
用例执行失败

Expected results:
用例执行成功

Additional info:
[环境信息] ECS

# uname -r
6.6.88-cbp.git.1432012a7.an23.aarch64

# free -h
               total        used        free      shared  buff/cache   available
Mem:            15Gi       884Mi       8.2Gi       7.2Mi       6.2Gi        14Gi
Swap:             0B          0B          0B


# lscpu
Architecture:             aarch64
  CPU op-mode(s):         32-bit, 64-bit
  Address sizes:          48 bits physical, 48 bits virtual
  Byte Order:             Little Endian
CPU(s):                   4
  On-line CPU(s) list:    0-3
Vendor ID:                ARM
  BIOS Vendor ID:         Alibaba Cloud
  Model name:             Neoverse-N1
    BIOS Model name:      virt-rhel7.6.0  CPU @ 2.0GHz
    BIOS CPU family:      1
    Model:                1
    Thread(s) per core:   1
    Core(s) per cluster:  4
    Socket(s):            1
    Cluster(s):           1
    Stepping:             r3p1
    BogoMIPS:             50.00
    Flags:                fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
NUMA:
  NUMA node(s):           1
  NUMA node0 CPU(s):      0-3
Vulnerabilities:
  Gather data sampling:   Not affected
  Itlb multihit:          Not affected
  L1tf:                   Not affected
  Mds:                    Not affected
  Meltdown:               Not affected
  Mmio stale data:        Not affected
  Reg file data sampling: Not affected
  Retbleed:               Not affected
  Spec rstack overflow:   Not affected
  Spec store bypass:      Not affected
  Spectre v1:             Mitigation; __user pointer sanitization
  Spectre v2:             Mitigation; CSV2, but not BHB
  Srbds:                  Not affected
  Tsx async abort:        Not affected
Comment 1 gaohongmei 2025-06-30 15:23:24 UTC
Description of problem:
6.6.88-cbp.git.8932083f9.an23.x86_64环境,mount_setattr.mount_setattr_test执行fail

[root@iZbp1d4zy1f9ous1diwpyqZ mount_setattr]# ./mount_setattr_test 
TAP version 13
1..21
# Starting 21 tests from 2 test cases.
#  RUN           mount_setattr.invalid_attributes ...
#            OK  mount_setattr.invalid_attributes
ok 1 mount_setattr.invalid_attributes
#  RUN           mount_setattr.extensibility ...
#            OK  mount_setattr.extensibility
ok 2 mount_setattr.extensibility
#  RUN           mount_setattr.basic ...
#            OK  mount_setattr.basic
ok 3 mount_setattr.basic
#  RUN           mount_setattr.basic_recursive ...
#            OK  mount_setattr.basic_recursive
ok 4 mount_setattr.basic_recursive
#  RUN           mount_setattr.mount_has_writers ...
#            OK  mount_setattr.mount_has_writers
ok 5 mount_setattr.mount_has_writers
#  RUN           mount_setattr.mixed_mount_options ...
#            OK  mount_setattr.mixed_mount_options
ok 6 mount_setattr.mixed_mount_options
#  RUN           mount_setattr.time_changes ...
#            OK  mount_setattr.time_changes
ok 7 mount_setattr.time_changes
#  RUN           mount_setattr.multi_threaded ...
#            OK  mount_setattr.multi_threaded
ok 8 mount_setattr.multi_threaded
#  RUN           mount_setattr.wrong_user_namespace ...
#            OK  mount_setattr.wrong_user_namespace
ok 9 mount_setattr.wrong_user_namespace
#  RUN           mount_setattr.wrong_mount_namespace ...
#            OK  mount_setattr.wrong_mount_namespace
ok 10 mount_setattr.wrong_mount_namespace
#  RUN           mount_setattr.mount_attr_nosymfollow ...
#            OK  mount_setattr.mount_attr_nosymfollow
ok 11 mount_setattr.mount_attr_nosymfollow
#  RUN           mount_setattr_idmapped.invalid_fd_negative ...
#            OK  mount_setattr_idmapped.invalid_fd_negative
ok 12 mount_setattr_idmapped.invalid_fd_negative
#  RUN           mount_setattr_idmapped.invalid_fd_large ...
#            OK  mount_setattr_idmapped.invalid_fd_large
ok 13 mount_setattr_idmapped.invalid_fd_large
#  RUN           mount_setattr_idmapped.invalid_fd_closed ...
#            OK  mount_setattr_idmapped.invalid_fd_closed
ok 14 mount_setattr_idmapped.invalid_fd_closed
#  RUN           mount_setattr_idmapped.invalid_fd_initial_userns ...
#            OK  mount_setattr_idmapped.invalid_fd_initial_userns
ok 15 mount_setattr_idmapped.invalid_fd_initial_userns
#  RUN           mount_setattr_idmapped.attached_mount_inside_current_mount_namespace ...
#            OK  mount_setattr_idmapped.attached_mount_inside_current_mount_namespace
ok 16 mount_setattr_idmapped.attached_mount_inside_current_mount_namespace
#  RUN           mount_setattr_idmapped.attached_mount_outside_current_mount_namespace ...
#            OK  mount_setattr_idmapped.attached_mount_outside_current_mount_namespace
ok 17 mount_setattr_idmapped.attached_mount_outside_current_mount_namespace
#  RUN           mount_setattr_idmapped.detached_mount_inside_current_mount_namespace ...
#            OK  mount_setattr_idmapped.detached_mount_inside_current_mount_namespace
ok 18 mount_setattr_idmapped.detached_mount_inside_current_mount_namespace
#  RUN           mount_setattr_idmapped.detached_mount_outside_current_mount_namespace ...
#            OK  mount_setattr_idmapped.detached_mount_outside_current_mount_namespace
ok 19 mount_setattr_idmapped.detached_mount_outside_current_mount_namespace
#  RUN           mount_setattr_idmapped.change_idmapping ...
#            OK  mount_setattr_idmapped.change_idmapping
ok 20 mount_setattr_idmapped.change_idmapping
#  RUN           mount_setattr_idmapped.idmap_mount_tree_invalid ...
# mount_setattr_test.c:1428:idmap_mount_tree_invalid:Expected sys_mount_setattr(open_tree_fd, "", AT_EMPTY_PATH, &attr, sizeof(attr)) (0) != 0 (0)
# idmap_mount_tree_invalid: Test terminated by assertion
#          FAIL  mount_setattr_idmapped.idmap_mount_tree_invalid
not ok 21 mount_setattr_idmapped.idmap_mount_tree_invalid
# FAILED: 20 / 21 tests passed.
# Totals: pass:20 fail:1 xfail:0 xpass:0 skip:0 error:0


[环境信息]
# uname -r
6.6.88-cbp.git.8932083f9.an23.x86_64

# cat /etc/os-release 
NAME="Anolis OS"
VERSION="23"
ID="anolis"
VERSION_ID="23"
PLATFORM_ID="platform:an23"
PRETTY_NAME="Anolis OS 23"
ANSI_COLOR="0;31"
HOME_URL="https://openanolis.cn/"
BUG_REPORT_URL="https://bugzilla.openanolis.cn/"

# free -h 
               total        used        free      shared  buff/cache   available
Mem:            15Gi       992Mi        13Gi        46Mi       975Mi        13Gi
Swap:             0B          0B          0B

# lscpu
Architecture:             x86_64
  CPU op-mode(s):         32-bit, 64-bit
  Address sizes:          46 bits physical, 57 bits virtual
  Byte Order:             Little Endian
CPU(s):                   4
  On-line CPU(s) list:    0-3
Vendor ID:                GenuineIntel
  BIOS Vendor ID:         Alibaba Cloud
  Model name:             Intel(R) Xeon(R) Platinum 8369B CPU @ 2.70GHz
    BIOS Model name:      pc-i440fx-2.1  CPU @ 0.0GHz
    BIOS CPU family:      1
    CPU family:           6
    Model:                106
    Thread(s) per core:   2
    Core(s) per socket:   2
    Socket(s):            1
    Stepping:             6
    BogoMIPS:             5399.99
    Flags:                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp l
                          m constant_tsc rep_good nopl nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq monitor ssse3 fma cx16 pcid sse4_1 sse4_2 x2
                          apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault ibrs_enhanced fsgsbase tsc_adjust bmi1
                           avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt
                           xsavec xgetbv1 xsaves wbnoinvd arat avx512vbmi pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcn
                          tdq rdpid fsrm arch_capabilities
Virtualization features:  
  Hypervisor vendor:      KVM
  Virtualization type:    full
Caches (sum of all):      
  L1d:                    96 KiB (2 instances)
  L1i:                    64 KiB (2 instances)
  L2:                     2.5 MiB (2 instances)
  L3:                     48 MiB (1 instance)
NUMA:                     
  NUMA node(s):           1
  NUMA node0 CPU(s):      0-3
Vulnerabilities:          
  Gather data sampling:   Unknown: Dependent on hypervisor status
  Itlb multihit:          Not affected
  L1tf:                   Not affected
  Mds:                    Not affected
  Meltdown:               Not affected
  Mmio stale data:        Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
  Reg file data sampling: Not affected
  Retbleed:               Not affected
  Spec rstack overflow:   Not affected
  Spec store bypass:      Vulnerable
  Spectre v1:             Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:             Mitigation; Enhanced / Automatic IBRS; RSB filling; PBRSB-eIBRS SW sequence; BHI SW loop, KVM SW loop
  Srbds:                  Not affected
  Tsx async abort:        Not affected