SAVE_PWD=$PWD
LUSTRE=${LUSTRE:-`dirname $0`/..}
RLUSTRE=${RLUSTRE:-$LUSTRE}
+LUSTRE_TESTS_API_DIR=${LUSTRE_TESTS_API_DIR:-${LUSTRE}/tests/clientapi}
export MULTIOP=${MULTIOP:-multiop}
. $LUSTRE/tests/test-framework.sh
run_test 21d "start mgs then ost and then mds"
test_22() {
- local num
-
start_mds
echo Client mount with ost in logs, but none running
start_ost
# wait until mds connected to ost and open client connection
- for num in $(seq 1 $MDSCOUNT); do
- wait_osc_import_state mds${num} ost FULL
- done
+ wait_osc_import_state mds ost FULL
stop_ost
mount_client $MOUNT
# check_mount will block trying to contact ost
sleep $((TIMEOUT + TIMEOUT + TIMEOUT))
fi
mount_client $MOUNT
- for num in $(seq 1 $MDSCOUNT); do
- wait_osc_import_state mds${num} ost FULL
- done
+ wait_osc_import_state mds ost FULL
wait_osc_import_state client ost FULL
check_mount || return 41
pass
}
t32_test_cleanup() {
- local node=$(facet_active_host $SINGLEMDS)
- local r="do_node $node"
local tmp=$TMP/t32
local rc=$?
if $shall_cleanup_ost; then
$r umount -d $tmp/mnt/ost || rc=$?
fi
- $r rm -rf $tmp || rc=$?
- rm -rf $tmp || rc=$?
+
+ $r rm -rf $tmp
+ rm -rf $tmp
return $rc
}
all_removed=true
do_rpc_nodes $node check_mem_leak || return 1
if $all_removed; then
- load_modules
+ do_rpc_nodes $node load_modules
return 0
fi
sleep 5
echo wait for devices to go
while ((i < 20)); do
devices=$(do_rpc_nodes $node $LCTL device_list | wc -l)
- echo $device
- ((devices == 0)) && return 1
+ ((devices == 0)) && return 0
sleep 5
i=$((i + 1))
done
local node=$(facet_active_host $SINGLEMDS)
local r="do_node $node"
local node2=$(facet_active_host mds2)
- local r2="do_node $node2"
local tmp=$TMP/t32
local img_commit
local img_kernel
shall_cleanup_mdt=true
if [ "$dne_upgrade" != "no" ]; then
- echo "mkfs new MDT...."
- add mds2 $(mkfs_opts mds2 $(mdsdevname 2) $fsname) --reformat \
- $(mdsdevname 2) $(mdsvdevname 2) > /dev/null || {
+ local fs2mdsdev=$(mdsdevname 1_2)
+ local fs2mdsvdev=$(mdsvdevname 1_2)
+
+ echo "mkfs new MDT on ${fs2mdsdev}...."
+ if [ $(facet_fstype mds1) == ldiskfs ]; then
+ mkfsoptions="--mkfsoptions=\\\"-J size=8\\\""
+ fi
+
+ add fs2mds $(mkfs_opts mds2 $fs2mdsdev $fsname) --reformat \
+ $mkfsoptions $fs2mdsdev $fs2mdsvdev > /dev/null || {
error_noexit "Mkfs new MDT failed"
return 1
}
- $r2 $TUNEFS --dryrun $(mdsdevname 2) || {
+ $r $TUNEFS --dryrun $fs2mdsdev || {
error_noexit "tunefs.lustre before mounting the MDT"
return 1
}
- echo "mount new MDT...."
- $r2 mkdir -p $tmp/mnt/mdt1
- $r2 mount -t lustre -o $mopts $(mdsdevname 2) $tmp/mnt/mdt1 || {
+ echo "mount new MDT....$fs2mdsdev"
+ $r mkdir -p $tmp/mnt/mdt1
+ $r mount -t lustre -o $mopts $fs2mdsdev $tmp/mnt/mdt1 || {
error_noexit "mount mdt1 failed"
return 1
}
}
shall_cleanup_lustre=false
else
+ if [ "$dne_upgrade" != "no" ]; then
+ $r umount -d $tmp/mnt/mdt1 || {
+ error_noexit "Unmounting the MDT2"
+ return 1
+ }
+ shall_cleanup_mdt1=false
+ fi
+
$r umount -d $tmp/mnt/mdt || {
error_noexit "Unmounting the MDT"
return 1
}
shall_cleanup_mdt=false
+
$r umount -d $tmp/mnt/ost || {
error_noexit "Unmounting the OST"
return 1
do_facet mgs $LCTL conf_param $FSNAME.sys.some_wrong_param=20
cleanup || error "stopping $FSNAME failed with invalid sys param"
+ load_modules
setup
check_mount || "client was not mounted with invalid sys param"
cleanup || error "stopping $FSNAME failed with invalid sys param"
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 mds "lctl set_param fail_loc=0x601"
+ do_facet $SINGLEMDS "lctl set_param fail_loc=0x601"
unlinkmany $DIR/$tdir/$tfile-%d 100
- stop mds
- local MNTDIR=$(facet_mntpt mds)
+ stop_mds
+
+ local MNTDIR=$(facet_mntpt $SINGLEMDS)
+ local devname=$(mdsdevname ${SINGLEMDS//mds/})
+ local opts=""
+ if ! do_facet $SINGLEMDS "test -b $devname"; then
+ opts="-o loop"
+ fi
+
# remove all files from the OBJECTS dir
- do_facet mds "mount -t ldiskfs $MDSDEV $MNTDIR"
- do_facet mds "find $MNTDIR/OBJECTS -type f -delete"
- do_facet mds "umount $MNTDIR"
+ do_facet $SINGLEMDS "mount -t ldiskfs $opts $devname $MNTDIR"
+ do_facet $SINGLEMDS "find $MNTDIR/O/1/d* -type f -delete"
+ do_facet $SINGLEMDS "umount $MNTDIR"
# restart MDS with missing llog files
start_mds
do_facet mds "lctl set_param fail_loc=0"
stop_mds || error "stopping mds failed"
if combined_mgs_mds; then
- start_mds "-o nosvc" ||
+ start_mdt 1 "-o nosvc" ||
error "starting mds with nosvc option failed"
fi
}
run_test 66 "replace nids"
+test_67() { #LU-2950
+ local legacy="$TMP/legacy_lnet_config"
+ local new="$TMP/new_routes_test"
+ local out="$TMP/config_out_file"
+ local verify="$TMP/conv_verify"
+ local verify_conf="$TMP/conf_verify"
+
+ # Create the legacy file that will be run through the
+ # lustre_routes_conversion script
+ cat <<- LEGACY_LNET_CONFIG > $legacy
+ tcp1 23 192.168.213.1@tcp:1; tcp5 34 193.30.4.3@tcp:4;
+ tcp2 54 10.1.3.2@tcp;
+ tcp3 10.3.4.3@tcp:3;
+ tcp4 10.3.3.4@tcp;
+ LEGACY_LNET_CONFIG
+
+ # Create the verification file to verify the output of
+ # lustre_routes_conversion script against.
+ cat <<- VERIFY_LNET_CONFIG > $verify
+ tcp1: { gateway: 192.168.213.1@tcp, hop: 23, priority: 1 }
+ tcp5: { gateway: 193.30.4.3@tcp, hop: 34, priority: 4 }
+ tcp2: { gateway: 10.1.3.2@tcp, hop: 54 }
+ tcp3: { gateway: 10.3.4.3@tcp, priority: 3 }
+ tcp4: { gateway: 10.3.3.4@tcp }
+ VERIFY_LNET_CONFIG
+
+ # Create the verification file to verify the output of
+ # lustre_routes_config script against
+ cat <<- VERIFY_LNET_CONFIG > $verify_conf
+ lctl --net tcp1 add_route 192.168.213.1@tcp 23 1
+ lctl --net tcp5 add_route 193.30.4.3@tcp 34 4
+ lctl --net tcp2 add_route 10.1.3.2@tcp 54 4
+ lctl --net tcp3 add_route 10.3.4.3@tcp 1 3
+ lctl --net tcp4 add_route 10.3.3.4@tcp 1 3
+ VERIFY_LNET_CONFIG
+
+ lustre_routes_conversion $legacy $new > /dev/null
+ if [ -f $new ]; then
+ # verify the conversion output
+ cmp -s $new $verify > /dev/null
+ if [ $? -eq 1 ]; then
+ error "routes conversion failed"
+ fi
+
+ lustre_routes_config --dry-run --verbose $new > $out
+ # check that the script succeeded
+ cmp -s $out $verify_conf > /dev/null
+ if [ $? -eq 1 ]; then
+ error "routes config failed"
+ fi
+ else
+ error "routes conversion test failed"
+ fi
+ # remove generated files
+ rm -f $new $legacy $verify $verify_conf $out
+}
+run_test 67 "test routes conversion and configuration"
+
test_70a() {
[ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return
local MDTIDX=1
skip "ldiskfs only test" && return
#tune MDT with "-O extents"
- add $SINGLEMDS \
- $(mkfs_opts $SINGLEMDS ${mdsdev}) --reformat $mdsdev ||
- error "add $SINGLEMDS failed"
- $TUNE2FS -O extents $mdsdev
+
+ for num in $(seq $MDSCOUNT); do
+ add mds${num} $(mkfs_opts mds$num $(mdsdevname $num)) \
+ --reformat $(mdsdevname $num) $(mdsvdevname $num) ||
+ error "add mds $num failed"
+ $TUNE2FS -O extents $(mdsdevname $num)
+ done
+
add ost1 $(mkfs_opts ost1 $ostdev) --reformat $ostdev ||
error "add $ostdev failed"
start_mgsmds || error "start mds failed"
}
run_test 72 "test fast symlink with extents flag enabled"
+test_73() { #LU-3006
+ load_modules
+ do_facet ost1 "$TUNEFS --failnode=1.2.3.4@tcp $(ostdevname 1)" ||
+ error "1st tunefs failed"
+ start_mgsmds || error "start mds failed"
+ start_ost || error "start ost failed"
+ mount_client $MOUNT || error "mount client failed"
+ lctl get_param -n osc.*OST0000-osc-[^M]*.import | grep failover_nids |
+ grep 1.2.3.4@tcp || error "failover nids haven't changed"
+ umount_client $MOUNT || error "umount client failed"
+ stopall
+ reformat
+}
+run_test 73 "failnode to update from mountdata properly"
+
+test_74() { # LU-1606
+ for TESTPROG in $LUSTRE_TESTS_API_DIR/*.c; do
+ gcc -Wall -Werror $LUSTRE_TESTS_API_DIR/simple_test.c \
+ -I$LUSTRE/include \
+ -L$LUSTRE/utils -llustreapi ||
+ error "client api broken"
+ done
+ cleanup || return $?
+}
+run_test 74 "Lustre client api program can compile and link"
+
if ! combined_mgs_mds ; then
stop mgs
fi