Details
-
Bug
-
Resolution: Fixed
-
Major
-
Lustre 2.10.0, Lustre 2.11.0, Lustre 2.12.0
-
None
-
3
-
9223372036854775807
Description
While investigating LU-10961 I have found that component instantiation is not replayed. Test showing the problem:
test_132a() { [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.9.90) ] && skip "Do not support PFL files before 2.10" $LFS setstripe -E 1M -c 1 -E EOF -c 2 $DIR/$tfile replay_barrier $SINGLEMDS # write over the first component size cause next component instantiation dd if=/dev/urandom of=$DIR/$tfile bs=1M count=1 seek=1 || error "dd to $DIR/$tfile failed" cksum=$(md5sum $DIR/$tfile | awk '{print $1}') $LFS getstripe -I2 $DIR/$tfile | grep -q lmm_objects || error "Component #1 was not instantiated" fail $SINGLEMDS cksum2=$(md5sum $DIR/$tfile | awk '{print $1}') if [ $cksum != $cksum2 ] ; then error_noexit "New checksum $cksum2 does not match original $cksum" fi $LFS getstripe -I2 $DIR/$tfile | grep -q lmm_objects || error "Component #1 instantiation was not replayed" } run_test 132a "PFL new component instantiate replay"
it is double checked here - with checksums and by checking that next component has lmm_objects assigned. Both are failing in master.
Yes, there usually exists layout intent in file's layout, but there also exist cases that the file only has partially layout defined.
The philosophy behind the design is that the MDS should decide what layout it will allocate and how many components it should instantiate, so client technically doesn't know the actual EA size. Does this make sense to you?