X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftests%2Fconf-sanity.sh;h=d937c31eb94188e44f398a24fc0f216676d6869f;hp=05eec2632f3896d22d10c3cfcc3058cd9b366eef;hb=5d0201db65d366d8905a28d103a2a9b511c22ca7;hpb=f426fb920e3b97298a603a142d56be89c12f2006 diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh index 05eec26..d937c31 100644 --- a/lustre/tests/conf-sanity.sh +++ b/lustre/tests/conf-sanity.sh @@ -54,8 +54,12 @@ for facet in MGS MDS OST; do opts=${facet}_MKFS_OPTS if [[ ${!opts} != *lazy_itable_init* ]]; then eval SAVED_${facet}_MKFS_OPTS=\"${!opts}\" - eval ${facet}_MKFS_OPTS=\"${!opts} \ ---mkfsoptions='\\\"-E lazy_itable_init\\\"'\" + if [[ ${!opts} != *mkfsoptions* ]]; then + eval ${facet}_MKFS_OPTS=\"${!opts} --mkfsoptions='\\\"-E lazy_itable_init\\\"'\" + else + val=${!opts//--mkfsoptions=\\\"/--mkfsoptions=\\\"-E lazy_itable_init } + eval ${facet}_MKFS_OPTS='${val}' + fi fi done @@ -735,6 +739,7 @@ test_21d() { stop_mgs #writeconf to remove all ost2 traces for subsequent tests writeconf + start_mgs } run_test 21d "start mgs then ost and then mds" @@ -764,6 +769,8 @@ test_22() { sleep $((TIMEOUT + TIMEOUT + TIMEOUT)) fi mount_client $MOUNT + wait_osc_import_state mds ost FULL + wait_osc_import_state client ost FULL check_mount || return 41 pass @@ -954,7 +961,7 @@ set_and_check() { FINAL=$(($ORIG + 5)) fi echo "Setting $PARAM from $ORIG to $FINAL" - do_facet $SINGLEMDS "$LCTL conf_param $PARAM='$FINAL'" || error conf_param failed + do_facet mgs "$LCTL conf_param $PARAM='$FINAL'" || error conf_param failed wait_update $(facet_host $myfacet) "$TEST" "$FINAL" || error check failed! } @@ -1203,7 +1210,7 @@ test_32a() { { skip_env "Cannot untar $DISK1_8" && return 0; } load_modules - $LCTL set_param debug=$PTLDEBUG + $LCTL set_param debug="$PTLDEBUG" $TUNEFS $tmpdir/mds || error "tunefs failed" @@ -1270,11 +1277,13 @@ test_32b() { { skip_env "Cannot untar $DISK1_8" && return ; } load_modules - $LCTL set_param debug="config" + $LCTL set_param debug="+config" local NEWNAME=lustre # writeconf will cause servers to register with their current nids - $TUNEFS --writeconf --fsname=$NEWNAME $tmpdir/mds || error "tunefs failed" + $TUNEFS --writeconf --erase-params \ + --param mdt.identity_upcall=$L_GETIDENTITY \ + --fsname=$NEWNAME $tmpdir/mds || error "tunefs failed" combined_mgs_mds || stop mgs start32 mds1 $tmpdir/mds "-o loop" && \ @@ -1284,7 +1293,8 @@ test_32b() { echo MDS uuid $UUID [ "$UUID" == "${NEWNAME}-MDT0000_UUID" ] || error "UUID is wrong: $UUID" - $TUNEFS --mgsnode=$HOSTNAME --writeconf --fsname=$NEWNAME $tmpdir/ost1 ||\ + $TUNEFS --writeconf --erase-params \ + --mgsnode=$HOSTNAME --fsname=$NEWNAME $tmpdir/ost1 ||\ error "tunefs failed" start32 ost1 $tmpdir/ost1 "-o loop" || return 5 UUID=$($LCTL get_param -n obdfilter.${NEWNAME}-OST0000.uuid) @@ -1439,7 +1449,7 @@ test_35a() { # bug 12459 log "Set up a fake failnode for the MDS" FAKENID="127.0.0.2" local device=$(do_facet $SINGLEMDS "lctl get_param -n devices" | awk '($3 ~ "mdt" && $4 ~ "MDT") { print $4 }' | head -1) - do_facet $SINGLEMDS $LCTL conf_param ${device}.failover.node=$FAKENID || return 4 + do_facet mgs $LCTL conf_param ${device}.failover.node=$FAKENID || return 4 log "Wait for RECONNECT_INTERVAL seconds (10s)" sleep 10 @@ -1493,7 +1503,7 @@ test_35b() { # bug 18674 FAKENID="127.0.0.2" local device=$(do_facet $SINGLEMDS "$LCTL get_param -n devices" | \ awk '($3 ~ "mdt" && $4 ~ "MDT") { print $4 }' | head -1) - do_facet $SINGLEMDS "$LCTL conf_param ${device}.failover.node=$FAKENID" || \ + do_facet mgs "$LCTL conf_param ${device}.failover.node=$FAKENID" || \ return 1 local at_max_saved=0 @@ -1767,6 +1777,8 @@ run_test 41a "mount mds with --nosvc and --nomgs" test_41b() { echo $MDS_MOUNT_OPTS | grep "loop" && skip " loop devices does not work with nosvc option" && return + ! combined_mgs_mds && skip "needs combined mgs device" && return 0 + stopall reformat local MDSDEV=$(mdsdevname ${SINGLEMDS//mds/}) @@ -1978,13 +1990,13 @@ test_46a() { # wait until osts in sync for (( i=2; i<=$OSTCOUNT; i++ )); do wait_osc_import_state mds ost$i FULL + wait_osc_import_state client ost$i FULL done - #second client see all ost's mount_client $MOUNT2 || return 8 - $LFS setstripe $MOUNT2 -c -1 || return 9 + $LFS setstripe -c -1 $MOUNT2 || return 9 $LFS getstripe $MOUNT2 || return 10 echo "ok" > $MOUNT2/widestripe @@ -2052,9 +2064,9 @@ cleanup_48() { test_48() { # bug 17636 reformat setup_noconfig - check_mount || return 2 + check_mount || return 2 - $LFS setstripe $MOUNT -c -1 || return 9 + $LFS setstripe -c -1 $MOUNT || return 9 $LFS getstripe $MOUNT || return 10 echo "ok" > $MOUNT/widestripe @@ -2413,7 +2425,7 @@ test_52() { [ $? -eq 0 ] || { error "Unable to mount client"; return 3; } local nrfiles=8 - local ost1mnt=${MOUNT%/*}/ost1 + local ost1mnt=$(facet_mntpt ost1) local ost1node=$(facet_active_host ost1) local ost1tmp=$TMP/conf52 @@ -2427,7 +2439,7 @@ test_52() { [ $? -eq 0 ] || { error "Unable to create temporary file"; return 6; } sleep 1 - $LFS setstripe $DIR/$tdir -c -1 -s 1M + $LFS setstripe -c -1 -S 1M $DIR/$tdir [ $? -eq 0 ] || { error "lfs setstripe failed"; return 7; } for (( i=0; i < nrfiles; i++ )); do @@ -2449,6 +2461,8 @@ test_52() { [ $? -eq 0 ] || { error "Unable to stop ost1"; return 11; } echo mount ost1 as ldiskfs + do_node $ost1node mkdir -p $ost1mnt + [ $? -eq 0 ] || { error "Unable to create $ost1mnt"; return 23; } do_node $ost1node mount -t $FSTYPE $ost1_dev $ost1mnt $OST_MOUNT_OPTS [ $? -eq 0 ] || { error "Unable to mount ost1 as ldiskfs"; return 12; } @@ -2471,7 +2485,7 @@ test_52() { diff_files_xattrs $ost1node $ost1tmp/objects $ost1tmp/object_xattrs $objects [ $? -eq 0 ] || { error "Unable to diff objects"; return 16; } - do_node $ost1node "umount $ost1_dev" + do_node $ost1node "umount $ost1mnt" [ $? -eq 0 ] || { error "Unable to umount ost1 as ldiskfs"; return 17; } start_ost @@ -2622,7 +2636,7 @@ test_55() { setup_noconfig stopall - setup + setup_noconfig sync echo checking size of lov_objid for ost index $i LOV_OBJID_SIZE=$(do_facet mds1 "$DEBUGFS -R 'stat lov_objid' $mdsdev 2>/dev/null" | grep ^User | awk '{print $6}') @@ -2644,7 +2658,7 @@ test_56() { add ost1 $OST_MKFS_OPTS --index=1000 --reformat $(ostdevname 1) add ost2 $OST_MKFS_OPTS --index=10000 --reformat $(ostdevname 2) - start_mds + start_mgsmds start_ost start_ost2 || error "Unable to start second ost" mount_client $MOUNT || error "Unable to mount client" @@ -2681,8 +2695,8 @@ count_osts() { } test_58() { # bug 22658 - [ "$FSTYPE" != "ldiskfs" ] && skip "not supported for $FSTYPE" && return - setup + [ "$FSTYPE" != "ldiskfs" ] && skip "not supported for $FSTYPE" && return + setup_noconfig mkdir -p $DIR/$tdir createmany -o $DIR/$tdir/$tfile-%d 100 # make sure that OSTs do not cancel llog cookies before we unmount the MDS @@ -2751,6 +2765,84 @@ test_60() { # LU-471 } run_test 60 "check mkfs.lustre --mkfsoptions -E -O options setting" +test_61() { # LU-80 + local reformat=false + + [ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.1.53) ] || + { skip "Need MDS version at least 2.1.53"; return 0; } + + if ! large_xattr_enabled; then + reformat=true + local mds_dev=$(mdsdevname ${SINGLEMDS//mds/}) + add $SINGLEMDS $MDS_MKFS_OPTS --mkfsoptions='\"-O large_xattr\"' \ + --reformat $mds_dev || error "reformatting $mds_dev failed" + fi + + setup_noconfig || error "setting up the filesystem failed" + client_up || error "starting client failed" + + local file=$DIR/$tfile + touch $file + + local large_value="$(generate_string $(max_xattr_size))" + local small_value="bar" + + local name="trusted.big" + log "save large xattr $name on $file" + setfattr -n $name -v $large_value $file || + error "saving $name on $file failed" + + local new_value=$(get_xattr_value $name $file) + [[ "$new_value" != "$large_value" ]] && + error "$name different after saving" + + log "shrink value of $name on $file" + setfattr -n $name -v $small_value $file || + error "shrinking value of $name on $file failed" + + new_value=$(get_xattr_value $name $file) + [[ "$new_value" != "$small_value" ]] && + error "$name different after shrinking" + + log "grow value of $name on $file" + setfattr -n $name -v $large_value $file || + error "growing value of $name on $file failed" + + new_value=$(get_xattr_value $name $file) + [[ "$new_value" != "$large_value" ]] && + error "$name different after growing" + + log "check value of $name on $file after remounting MDS" + fail $SINGLEMDS + new_value=$(get_xattr_value $name $file) + [[ "$new_value" != "$large_value" ]] && + error "$name different after remounting MDS" + + log "remove large xattr $name from $file" + setfattr -x $name $file || error "removing $name from $file failed" + + rm -f $file + stopall + $reformat && reformat +} +run_test 61 "large xattr" + +test_62() { + # MRP-118 + local mdsdev=$(mdsdevname 1) + local ostdev=$(ostdevname 1) + + echo "disable journal for mds" + do_facet mds tune2fs -O ^has_journal $mdsdev || error "tune2fs failed" + start_mds && error "MDT start should fail" + echo "disable journal for ost" + do_facet ost1 tune2fs -O ^has_journal $ostdev || error "tune2fs failed" + start_ost && error "OST start should fail" + cleanup || return $? + reformat_and_config +} +run_test 62 "start with disabled journal" + if ! combined_mgs_mds ; then stop mgs fi