Hi,
在 2025/05/19 21:55, Zdenek Kabelac 写道:
Dne 19. 05. 25 v 13:07 Yu Kuai napsal(a):
Hi,
在 2025/05/19 18:45, Zdenek Kabelac 写道:
Dne 19. 05. 25 v 12:10 Mikulas Patocka napsal(a):
On Mon, 19 May 2025, Yu Kuai wrote:
Hi,
在 2025/05/19 9:11, Yu Kuai 写道:
Hi,
在 2025/05/17 0:00, Mikulas Patocka 写道:
Hi
The commit e879a0d9cb086c8e52ce6c04e5bfa63825a6213c breaks the test
shell/lvcreate-large-raid.sh in the lvm2 testsuite.
The breakage is caused by removing the line "read_bio->bi_opf = op |
do_sync;"
Do I need some special setup to run this test? I got following
result in my VM, and I don't understand why it failed.
Ask Zdenek Kabelac - he is expert in the testsuite.
Mikulas
Hi
Lvm2 test suite is creating 'virtual' disk setup - it usually tries
first build something with 'brd' - if this device is 'in-use' it
fallback to create some files in LVM_TEST_DIR.
This dir however must allow creation of device - by default nowdays
/dev/shm & /tmp are mounted with 'nodev' mount option.
So a dir which does allow dev creation must be passed to the test -
so either remount dir without 'nodev' or set LVM_TEST_DIR to the
filesystem which allows creation of devices.
Yes, I know that, and I set LVM_TEST_DIR to a new mounted nvme, as use
can see in the attached log:
[ 0:02.335] ## DF_H: /dev/nvme0n1 98G 64K 93G 1% /mnt/test
Hi
Please check the output of 'mount' command whether your mount point
/mnt/test
allows creation of devices (i.e. does not use 'nodev' as setting for
this mountpoint)
In 'lvm2/test' run 'make help' to see all possible settings -
useful one could be LVM_TEST_AUX_TRACE to expose shell traces from
test internals - helps with debugging...
The log do have shell trace, I think, it stoped here, I just don't know
why :(
[ 0:01.709] ## - /root/lvm2/test/shell/lvcreate-large-raid.sh:31
[ 0:01.710] ## 1 STACKTRACE() called from
/root/lvm2/test/shell/lvcreate- large-raid.sh:31
Run:
'make check_local T=lvcreate-large-raid LVM_TEST_AUX_TRACE=1 VERBOSE=1'
for more closer look why it is failing when preparing devices.
My best guess is the use of 'nodev' flag (thus mount with '-o dev')
nodev is not the cause here, and other tests like lvcreate-large-raid10
can pass. Following is the results after adding LVM_TEST_AUX_TRACE=1
VERBOSE=1:
[ 0:04.201] + local slash
[ 0:04.201] + test -f LOOP
[ 0:04.201] + echo -n '## preparing loop device...'
[ 0:04.201] ## preparing loop device...+ test -f SCSI_DEBUG_DEV
[ 0:04.201] + test '!' -e LOOP
[ 0:04.206] + test -n /mnt/test/LVMTEST4022.LI2unegZz8/dev
[ 0:04.206] + for i in 0 1 2 3 4 5 6 7
[ 0:04.206] + test -e /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop0
[ 0:04.206] + mknod /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop0 b 7 0
[ 0:04.206] + for i in 0 1 2 3 4 5 6 7
[ 0:04.266] + test -e /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop1
[ 0:04.267] + mknod /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop1 b 7 1
[ 0:04.267] + for i in 0 1 2 3 4 5 6 7
[ 0:04.300] + test -e /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop2
[ 0:04.300] + mknod /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop2 b 7 2
[ 0:04.301] + for i in 0 1 2 3 4 5 6 7
[ 0:04.351] + test -e /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop3
[ 0:04.351] + mknod /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop3 b 7 3
[ 0:04.351] + for i in 0 1 2 3 4 5 6 7
[ 0:04.405] + test -e /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop4
[ 0:04.405] + mknod /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop4 b 7 4
[ 0:04.407] + for i in 0 1 2 3 4 5 6 7
[ 0:04.452] + test -e /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop5
[ 0:04.453] + mknod /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop5 b 7 5
[ 0:04.453] + for i in 0 1 2 3 4 5 6 7
[ 0:04.503] + test -e /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop6
[ 0:04.503] + mknod /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop6 b 7 6
[ 0:04.505] + for i in 0 1 2 3 4 5 6 7
[ 0:04.555] + test -e /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop7
[ 0:04.555] + mknod /mnt/test/LVMTEST4022.LI2unegZz8/dev/loop7 b 7 7
[ 0:04.558] + echo -n .
[ 0:04.607] .+ local LOOPFILE=/mnt/test/LVMTEST4022.LI2unegZz8/test.img
[ 0:04.607] + rm -f /mnt/test/LVMTEST4022.LI2unegZz8/test.img
[
0:04.608] + dd if=/dev/zero of=/mnt/test/LVMTEST4022.LI2unegZz8/test.img
bs=1048576 count=0 seek=5000000003
[ 0:04.650] set +vx; STACKTRACE; set -vx
[ 0:04.702] ##lvcreate-large-raid.sh:31+ set +vx
[ 0:04.703] ## - /root/lvm2/test/shell/lvcreate-large-raid.sh:31
[ 0:04.705] ## 1 STACKTRACE() called from
/root/lvm2/test/shell/lvcreate-large-raid.sh:31
Then I tried the dd cmd myself:
dd if=/dev/zero of=/mnt/test/test.img bs=1048576 count=0 seek=5000000003
dd: failed to truncate to 5242880003145728 bytes in output file
'/mnt/test/test.img': File too large
And this is because ext4 has hard limit of file size, 2^48:
fs/ext4/super.c: sb->s_maxbytes =
ext4_max_size(sb->s_blocksize_bits, has_huge_files);
So, I can't use ext4 for this testcase. :(
Thanks,
Kuai
Regards
Zdenek
.