[LU-14321] Interop: sanityn test 106a fails with '/mnt/lustre/f106a.sanityn btime (0:1608796627) diff' Created: 11/Jan/21  Updated: 07/Dec/23  Resolved: 25/Aug/21

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.14.0
Fix Version/s: Lustre 2.15.0

Type: Bug Priority: Minor
Reporter: James Nunez (Inactive) Assignee: James Nunez (Inactive)
Resolution: Fixed Votes: 0
Labels: interop
Environment:

Lustre clients >= 2.13.53.242 and Lustre servers < 2.13.53.242


Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

sanityn test_106a was added by patch 3f7853b31ef6 “LU-10934 llite: integrate statx() API with Lustre” to Lustre 2.13.53.242 on 27 MAY 2020. When we test Lustre clients >= 2.13.53.242 and Lustre servers < 2.13.53.242, this test will fail.

Looking at the suite_log for https://testing.whamcloud.com/test_sets/cd04c059-55e9-475b-88de-2cbef096f515, we see the error message

== sanityn test 106a: Verify the btime via statx() =================================================== 07:57:06 (1608796626)
1+0 records in
1+0 records out
1024 bytes (1.0 kB, 1.0 KiB) copied, 0.00144256 s, 710 kB/s
CMD: trevis-19vm4 debugfs -c -R 'stat ROOT/f106a.sanityn' /dev/mapper/mds1_flakey
trevis-19vm4: debugfs 1.45.6.wc3 (28-Sep-2020)
trevis-19vm4: /dev/mapper/mds1_flakey: catastrophic mode - not reading inode or group bitmaps
Inode: 14506 Type: regular Mode: 0644 Flags: 0x0 Generation: 660653283 Version: 0x00000012:0028819f User: 0 Group: 0 Project: 0 Size: 0 File ACL: 0 Links: 1 Blockcount: 0 Fragment: Address: 0 Number: 0 Size: 0 ctime: 0x5fe449d3:829350f0 -- Thu Dec 24 07:57:07 2020 atime: 0x5fe449d3:829350f0 -- Thu Dec 24 07:57:07 2020 mtime: 0x5fe449d3:829350f0 -- Thu Dec 24 07:57:07 2020 crtime: 0x5fe449d3:829350f0 -- Thu Dec 24 07:57:07 2020 Size of extra inode fields: 32 Extended attributes: trusted.lma (24) = 00 00 00 00 00 00 00 00 d4 88 00 00 02 00 00 00 00 9f 00 00 00 00 00 00 lma: fid=[0x2000088d4:0x9f00:0x0] compat=0 incompat=0 trusted.lov (56) trusted.link (55) trusted.som (24) = 04 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BLOCKS:
 sanityn test_106a: @@@@@@ FAIL: /mnt/lustre/f106a.sanityn btime (0:1608796627) diff 

In addition, the same patch added a call to ‘lfs setstripe’ that is failing for the same Lustre client/server combinations. The code added is

3090 
3091         $LFS setstripe -E 1M -c 1 -E -1 --extension-size 64M $DIR1/$tfile ||
3092                 error "Create $DIR1/$tfile failed"
3093 

with error

== sanityn test 51b: layout lock: glimpse should be able to restart if layout changed ================ 07:36:53 (1608795413)
lfs setstripe: cannot create composite file '/mnt/lustre/f51b.sanityn': Invalid argument
 sanityn test_51b: @@@@@@ FAIL: Create /mnt/lustre/f51b.sanityn failed 
  Trace dump:
  = /usr/lib64/lustre/tests/test-framework.sh:6273:error()
  = /usr/lib64/lustre/tests/sanityn.sh:3092:test_51b()

We need to skip sanityn test 106a for servers with Lustre version < 2.13.53.242.

For test 51b, should we just skip the ‘lfs setstripe’ for Lustre servers with version < 2.13.53.242?



 Comments   
Comment by Andreas Dilger [ 11/Jan/21 ]

The btime test was added in the statx patch, but the setstripe is from a probably from the SEL patch?

Also, I thought I had added version checks around the btime check already?

Comment by James Nunez (Inactive) [ 11/Jan/21 ]

In master, sanityn test 106a does not have a version check:

5354 test_106a() {
5355         [ "$mds1_FSTYPE" == "ldiskfs" ] && statx_supported ||
5356                 skip_env "Test only for ldiskfs and statx() supported"
5357 
5358         local btime
5359         local mdt_btime
5360         local output
5361         local mdtdev=$(mdsdevname ${SINGLEMDS//mds/})
5362 
5363         dd if=/dev/zero of=$DIR/$tfile bs=1k count=1 conv=notrunc
5364         btime=$($STATX -c %W $DIR/$tfile)
5365         output=$(do_facet mds1 "$DEBUGFS -c -R 'stat ROOT/$tfile' $mdtdev")
5366         echo $output
5367         ((mdt_btime=$(awk -F ':' /crtime/'{ print $2 }' <<< "$output")))
5368         [[ $btime == $mdt_btime ]] ||
5369                 error "$DIR/$tfile btime ($btime:$mdt_btime) diff"
5370 
5371 }
Comment by Andreas Dilger [ 06/Feb/21 ]

Sorry, I was confused with adding checks to sanity test_56oc:

        [[ $MDS1_VERSION -lt $(version_code 2.13.54) ||
           $CLIENT_VERSION -lt $(version_code 2.13.54) ]] &&
                ! btime_supported && echo "btime unsupported" && return 0

in patch https://review.whamcloud.com/39890 "LU-13665 tests: skip sanity subtests for new features", which also skipped test_165. I don't know why this test was not skipped at the same time.

Comment by Gerrit Updater [ 17/Jun/21 ]

James Nunez (jnunez@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/44027
Subject: LU-14321 tests: skip sanityn 51b for old servers
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: a43230b1c36ed811cefbbedda5c1f0c4995d7060

Comment by Gerrit Updater [ 25/Aug/21 ]

"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/44027/
Subject: LU-14321 tests: create PFL file in sanityn 51b
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 82d1c06b0c12a724817fa82ff4b3ef088679cdff

Comment by Peter Jones [ 25/Aug/21 ]

Landed for 2.15

Generated at Sat Feb 10 03:08:44 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.