X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fconf-sanity.sh;h=d4ada595335f478a5528327e4d014590f81d7b2d;hb=083d62ee6de5ac6cee95c1d2f86b62b75034093b;hp=7bb19a209d33e6ae692b38536f0ec2f6aee80ebd;hpb=3f5abc6fa30e7c0256077ccf6a149d1809450465;p=fs%2Flustre-release.git diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh index 7bb19a2..d4ada59 100644 --- a/lustre/tests/conf-sanity.sh +++ b/lustre/tests/conf-sanity.sh @@ -4,17 +4,10 @@ set -e ONLY=${ONLY:-"$*"} -# bug number for skipped test: LU-8972 -ALWAYS_EXCEPT="$CONF_SANITY_EXCEPT 101" +# bug number for skipped test: +ALWAYS_EXCEPT="$CONF_SANITY_EXCEPT" # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT! -if [ "$FAILURE_MODE" = "HARD" ]; then - CONFIG_EXCEPTIONS="24a " && - echo "Except the tests: $CONFIG_EXCEPTIONS for " \ - "FAILURE_MODE=$FAILURE_MODE, b=23573" && - ALWAYS_EXCEPT="$ALWAYS_EXCEPT $CONFIG_EXCEPTIONS" -fi - # bug number for skipped test: # a tool to create lustre filesystem images ALWAYS_EXCEPT="32newtarball $ALWAYS_EXCEPT" @@ -38,7 +31,9 @@ init_test_env $@ STORED_MDSSIZE=$MDSSIZE STORED_OSTSIZE=$OSTSIZE MDSSIZE=200000 +[ $(facet_fstype $SINGLEMDS) = "zfs" ] && MDSSIZE=400000 OSTSIZE=200000 +[ $(facet_fstype ost1) = "zfs" ] && OSTSIZE=400000 fs2mds_HOST=$mds_HOST fs2ost_HOST=$ost_HOST @@ -65,6 +60,7 @@ fi [ $(facet_fstype $SINGLEMDS) = "zfs" ] && # bug number for skipped test: ALWAYS_EXCEPT="$ALWAYS_EXCEPT" +# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT! init_logging @@ -571,22 +567,6 @@ test_9() { } run_test 9 "test ptldebug and subsystem for mkfs" -is_blkdev () { - local facet=$1 - local dev=$2 - local size=${3:-""} - - local rc=0 - do_facet $facet "test -b $dev" || rc=1 - if [[ "$size" ]]; then - local in=$(do_facet $facet "dd if=$dev of=/dev/null bs=1k \ - count=1 skip=$size 2>&1" | - awk '($3 == "in") { print $1 }') - [[ $in = "1+0" ]] || rc=1 - fi - return $rc -} - # # Test 16 was to "verify that lustre will correct the mode of OBJECTS". # But with new MDS stack we don't care about the mode of local objects @@ -857,7 +837,7 @@ test_22() { fi mount_client $MOUNT || error "mount_client $MOUNT failed" wait_osc_import_state mds ost FULL - wait_osc_import_state client ost FULL + wait_osc_import_ready client ost check_mount || error "check_mount failed" pass @@ -915,14 +895,10 @@ test_23a() { # was test_23 "MOUNT_LUSTRE_PID $MOUNT_LUSTRE_PID still not killed in $WAIT secs" ps -ef | grep mount fi - stop_mds || error "stopping MDSes failed" - stop_ost || error "stopping OSSes failed" + cleanup || error "cleanup failed with rc $?" } run_test 23a "interrupt client during recovery mount delay" -umount_client $MOUNT -cleanup_nocli - test_23b() { # was test_23 start_mds || error "MDS start failed" start_ost || error "Unable to start OST1" @@ -1540,16 +1516,22 @@ t32_reload_modules() { local node=$1 local all_removed=false local i=0 + local fstype=$(facet_fstype $SINGLEMDS) + + [ $fstype == "zfs" ] && do_rpc_nodes $node "service zed stop" while ((i < 20)); do echo "Unloading modules on $node: Attempt $i" - do_rpc_nodes $node $LUSTRE_RMMOD $(facet_fstype $SINGLEMDS) && + do_rpc_nodes $node $LUSTRE_RMMOD $fstype && all_removed=true do_rpc_nodes $node check_mem_leak || return 1 if $all_removed; then do_rpc_nodes $node load_modules return 0 fi + if [ $fstype == "zfs" ]; then + do_rpc_nodes $node "$ZPOOL status -v" + fi sleep 5 i=$((i + 1)) done @@ -2230,7 +2212,7 @@ t32_test() { # migrate files/dirs to remote MDT, then move them back if [ $(lustre_version_code mds1) -ge $(version_code 2.7.50) -a \ - $dne_upgrade != "no" ]; then + $dne_upgrade != "no" -a 1 -eq 0 ]; then $r $LCTL set_param -n \ mdt.${fsname}*.enable_remote_dir=1 2>/dev/null @@ -2296,6 +2278,9 @@ t32_test() { error_noexit "Unmounting the MDT2" return 1 } + if [[ $fstype == zfs ]]; then + $r "$ZPOOL export t32fs-mdt2" + fi shall_cleanup_mdt1=false fi @@ -2303,12 +2288,18 @@ t32_test() { error_noexit "Unmounting the MDT" return 1 } + if [[ $fstype == zfs ]]; then + $r "$ZPOOL export t32fs-mdt1" + fi shall_cleanup_mdt=false $r $UMOUNT $tmp/mnt/ost || { error_noexit "Unmounting the OST" return 1 } + if [[ $fstype == zfs ]]; then + $r "$ZPOOL export t32fs-ost1" + fi shall_cleanup_ost=false t32_reload_modules $node || { @@ -3286,12 +3277,10 @@ test_43b() { # LU-5690 --reformat $fs2mgsdev $fs2mgsvdev || error "add fs2mgs failed" start $fs2mgs $fs2mgsdev $MGS_MOUNT_OPTS || error "start fs2mgs failed" stop $fs2mgs -f || error "stop fs2mgs failed" + cleanup || error "cleanup failed with $?" } run_test 43b "parse nosquash_nids with commas in expr_list" -umount_client $MOUNT -cleanup_nocli - test_44() { # 16317 setup check_mount || error "check_mount" @@ -3365,7 +3354,7 @@ 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 + wait_osc_import_ready client ost$i done #second client see all ost's @@ -3559,7 +3548,7 @@ lazystatfs() { [ $RC1 -ne 0 ] && log "lazystatfs multiop failed" wait $PID || { RC1=$?; log "multiop return error "; } - $LFS df & + $LFS df -l & PID=$! sleep 5 kill -s 0 $PID @@ -3731,7 +3720,7 @@ test_50g() { setup start_ost2 || error "Unable to start OST2" wait_osc_import_state mds ost2 FULL - wait_osc_import_state client ost2 FULL + wait_osc_import_ready client ost2 local PARAM="${FSNAME}-OST0001.osc.active" @@ -3960,6 +3949,10 @@ test_52() { done echo + # sync all the data and make sure no pending data on the client, + # thus the SOM xattr would not be changed any more. + cancel_lru_locks osc + # backup files echo backup files to $TMP/$tdir local files=$(find $DIR/$tdir -type f -newer $TMP/modified_first) @@ -4387,9 +4380,6 @@ test_58() { # bug 22658 setup_noconfig mkdir $DIR/$tdir || error "mkdir $DIR/$tdir failed" createmany -o $DIR/$tdir/$tfile-%d 100 - # make sure that OSTs do not cancel llog cookies before we unmount the MDS -#define OBD_FAIL_OBD_LOG_CANCEL_NET 0x601 - do_facet $SINGLEMDS "$LCTL set_param fail_loc=0x601" unlinkmany $DIR/$tdir/$tfile-%d 100 stop_mds || error "Unable to stop MDS" @@ -4669,6 +4659,13 @@ test_66() { local OST1_NID=$(do_facet ost1 $LCTL list_nids | head -1) local MDS_NID=$(do_facet $SINGLEMDS $LCTL list_nids | head -1) + # add EXCLUDE records to config log, they are not to be + # removed by lctl replace_nids + set_conf_param_and_check mds \ + "$LCTL get_param -n osc.$FSNAME-OST0000-osc-MDT0000.active" \ + "$FSNAME-OST0000.osc.active" \ + "0" + echo "replace_nids should fail if MDS, OSTs and clients are UP" do_facet mgs $LCTL replace_nids $FSNAME-OST0000 $OST1_NID && error "replace_nids fail" @@ -4724,7 +4721,14 @@ test_66() { stop_mds || error "Unable to stop MDS" fi - setup_noconfig + start_mgsmds || error "start mgsmds failed" + set_conf_param_and_check mds \ + "$LCTL get_param -n osc.$FSNAME-OST0000-osc-MDT0000.active" \ + "$FSNAME-OST0000.osc.active" \ + "1" + start_ost || error "unable to start OST" + mount_client $MOUNT || error "mount client failed" + check_mount || error "error after nid replace" cleanup || error "cleanup failed" reformat @@ -5335,7 +5339,7 @@ test_76a() { local MAX_DIRTY_MB=$($LCTL get_param -n $MDMB_PARAM | head -1) echo "max_dirty_mb: $MAX_DIRTY_MB" - local NEW_MAX_DIRTY_MB=$((MAX_DIRTY_MB + MAX_DIRTY_MB)) + local NEW_MAX_DIRTY_MB=$((MAX_DIRTY_MB - 10)) echo "new_max_dirty_mb: $NEW_MAX_DIRTY_MB" do_facet mgs $LCTL set_param -P $MDMB_PARAM=$NEW_MAX_DIRTY_MB wait_update $HOSTNAME "$LCTL get_param -n $MDMB_PARAM | @@ -5891,17 +5895,21 @@ test_82a() { # LU-4665 echo -e "\n$cmd" eval $cmd && error "index $start_ost_idx should be in $ost_indices" - # 5. Specifying OST indices for directory should fail with ENOSUPP. + # 5. Specifying OST indices for directory should succeed. local dir=$DIR/$tdir/$tdir mkdir $dir || error "mkdir $dir failed" cmd="$SETSTRIPE -o $ost_indices $dir" - echo -e "\n$cmd" - eval $cmd && error "$cmd should fail, specifying OST indices" \ - "for directory is not supported" + if [[ $(lustre_version_code $SINGLEMDS) -gt $(version_code 2.11.53) && + $(lustre_version_code client -gt $(version_code 2.11.53)) ]]; then + echo -e "\n$cmd" + eval $cmd || error "unable to specify OST indices on directory" + else + echo "need MDS+client version at least 2.11.53" + fi restore_ostindex } -run_test 82a "specify OSTs for file (succeed) or directory (fail)" +run_test 82a "specify OSTs for file (succeed) or directory (succeed)" cleanup_82b() { trap 0 @@ -6192,7 +6200,7 @@ test_86() { run_test 86 "Replacing mkfs.lustre -G option" test_87() { #LU-6544 - [[ $(lustre_version_code $SINGLEMDS1) -ge $(version_code 2.9.51) ]] || + [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.9.51) ]] || { skip "Need MDS version at least 2.9.51" && return; } [[ $(facet_fstype $SINGLEMDS) != ldiskfs ]] && { skip "ldiskfs only test" && return; } @@ -7553,7 +7561,7 @@ test_106() { #shows that osp code is buggy do_facet mds1 $LCTL set_param fail_loc=0 fail_val=0 - cleanupall + stopall } run_test 106 "check osp llog processing when catalog is wrapped" @@ -8046,6 +8054,74 @@ test_115() { } run_test 115 "Access large xattr with inodes number over 2TB" +test_116() { + [ $(facet_fstype $SINGLEMDS) != "ldiskfs" ] && + skip "ldiskfs only test" && return + + [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.10.59) ] && + skip "Need server version at least 2.10.59" && return + + do_facet $SINGLEMDS which mkfs.xfs || { + skip_env "No mkfs.xfs installed" + return + } + + stopall + load_modules + + local tmpmnt=$TMP/$tdir + local mdtimg=$tfile-mdt0 + + do_facet $SINGLEMDS mkdir -p $tmpmnt + stack_trap "do_facet $SINGLEMDS rmdir $tmpmnt" EXIT + + do_facet $SINGLEMDS touch $TMP/$mdtimg + stack_trap "do_facet $SINGLEMDS rm -f $TMP/$mdtimg" EXIT + do_facet $SINGLEMDS mkfs -t xfs -d file,size=1t,name=$TMP/$mdtimg || + error "mkfs temporary xfs image" + + do_facet $SINGLEMDS mount $TMP/$mdtimg $tmpmnt || + error "mount temporary xfs image" + stack_trap "do_facet $SINGLEMDS umount $tmpmnt" EXIT + local old_mdssize=$MDSSIZE + local old_mdsisize=$MDSISIZE + + MDSSIZE=$((17 * 1024 * 1024 * 1024)) # 17T MDT + MDSISIZE=$((16 << 20)) + local opts17t="$(mkfs_opts $SINGLEMDS)" + + MDSSIZE=$old_mdssize + MDSISIZE=$old_mdsisize + do_facet $SINGLEMDS $MKFS $opts17t $tmpmnt/$mdtimg || + error "failed to mkfs for $tmpmnt/$mdtimg" + + do_facet $SINGLEMDS $TUNE2FS -l $tmpmnt/$mdtimg | + grep -qw 'features.*extent' || error "extent should be enabled" +} +run_test 116 "big size MDT support" + +test_122() { + [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return + [[ $(lustre_version_code ost1) -ge $(version_code 2.11.53) ]] || + { skip "Need OST version at least 2.11.53" && return 0; } + + + reformat + LOAD_MODULES_REMOTE=true load_modules +#define OBD_FAIL_OFD_SET_OID 0x1e0 + do_facet ost1 $LCTL set_param fail_loc=0x00001e0 + + setupall + $LFS mkdir -i1 -c1 $DIR/$tdir + $LFS setstripe -i0 -c1 $DIR/$tdir + do_facet ost1 $LCTL set_param fail_loc=0 + createmany -o $DIR/$tdir/file_ 1000 || + error "Fail to create a new sequence" + + reformat +} +run_test 122 "Check OST sequence update" + if ! combined_mgs_mds ; then stop mgs fi @@ -8058,4 +8134,5 @@ OSTSIZE=$STORED_OSTSIZE reformat complete $SECONDS +check_and_cleanup_lustre exit_status