Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
When parent directory provides striping information which includes a pool, missing layout components should not be taken from root directory striping (in lod_ah_init()). Otherwise, pool configuration and root layout mismatch leads to create failure.
Test to illustrate the issue:
test_27H() { local POOL=${POOL:-testpool} local ostrange="1 1 1" $SETSTRIPE -c 2 -i 0 $MOUNT pool_add $POOL || error "pool_add failed" pool_add_targets $POOL $ostrange || "pool_add_targets failed" test_mkdir $DIR/$tdir $SETSTRIPE -p $POOL $DIR/$tdir $MULTIOP $DIR/$tdir/$tfile Oc || error "multiop failed" $GETSTRIPE $DIR/$tdir/$tfile } run_test 27H "check that root dir striping does not break parent dir one"
The test's output:
== sanity test 27H: check that root dir striping does not break parent dir one ======================= 09:28:20 (1552199300) Creating new pool Pool lustre.testpool created Adding targets to pool OST lustre-OST0001_UUID added to pool lustre.testpool open(O_RDWR|O_CREAT): Invalid argument sanity test_27H: @@@@@@ FAIL: multiop failed