basic_ios() {
local flvr=$1
- mkdir -p $DIR/$tdir || error "mkdir $flvr"
- touch $DIR/$tdir/f0 || error "touch $flvr"
- ls $DIR/$tdir || error "ls $flvr"
- dd if=/dev/zero of=$DIR/$tdir/f0 conv=fsync bs=1M count=10 \
+ mkdir -p $DIR/$tdir/dir0 || error "mkdir $flvr"
+ touch $DIR/$tdir/dir0/f0 || error "touch $flvr"
+ ls $DIR/$tdir/dir0 || error "ls $flvr"
+ dd if=/dev/zero of=$DIR/$tdir/dir0/f0 conv=fsync bs=1M count=10 \
>& /dev/null || error "dd $flvr"
- rm -f $DIR/$tdir/f0 || error "rm $flvr"
- rmdir $DIR/$tdir || error "rmdir $flvr"
+ rm -f $DIR/$tdir/dir0/f0 || error "rm $flvr"
+ rmdir $DIR/$tdir/dir0 || error "rmdir $flvr"
sync ; sync
echo 3 > /proc/sys/vm/drop_caches
}
+cleanup_30b() {
+ # restore clients' idle_timeout
+ for c in ${clients//,/ }; do
+ param=IDLETIME_$(echo $c | cut -d'.' -f1 | sed s+-+_+g)
+ do_node $c "lctl set_param osc.*.idle_timeout=${!param}"
+ done
+}
+
test_30b() {
local save_flvr=$SK_FLAVOR
skip "need shared key feature for this test"
fi
+ # save clients' idle_timeout, and set all to 0 for this test,
+ # as we do not want connections to go idle
+ for c in ${clients//,/ }; do
+ param=IDLETIME_$(echo $c | cut -d'.' -f1 | sed s+-+_+g)
+ idle=$(do_node $c lctl get_param -n osc.*.idle_timeout |
+ head -n1)
+ eval export $param=\$idle
+ do_node $c lctl set_param osc.*.idle_timeout=0
+ done
+
+ stack_trap cleanup_30b EXIT
stack_trap restore_to_default_flavor EXIT
+ lfs mkdir -i 0 -c 1 $DIR/$tdir || error "mkdir $DIR/$tdir failed"
+ lfs setstripe -c -1 $DIR/$tdir/fileA ||
+ error "setstripe $DIR/$tdir/fileA failed"
+ echo 30b > $DIR/$tdir/fileA ||
+ error "wrtie to $DIR/$tdir/fileA failed"
+
for flvr in skn ska ski skpi; do
# set flavor
SK_FLAVOR=$flvr
echo $cnt
}
+flvr_dump_cli2mdt()
+{
+ local clients=${CLIENTS:-$HOSTNAME}
+
+ for c in ${clients//,/ }; do
+ do_node $c lctl get_param \
+ mdc.*-*-mdc-*.$PROC_CLI 2>/dev/null
+
+ if $GSS_SK; then
+ do_node $c lctl get_param \
+ mdc.*-MDT*-mdc-*.$PROC_CON 2>/dev/null
+ fi
+ done
+}
+
flvr_cnt_cli2ost()
{
local flavor=$1
echo $cnt
}
+flvr_dump_cli2ost()
+{
+ local clients=${CLIENTS:-$HOSTNAME}
+
+ for c in ${clients//,/ }; do
+ do_node $c lctl get_param \
+ osc.*OST*-osc-[^M][^D][^T]*.$PROC_CLI 2>/dev/null
+
+ if $GSS_SK; then
+ do_node $c lctl get_param \
+ osc.*OST*-osc-[^M][^D][^T]*.$PROC_CON 2>/dev/null
+ fi
+ done
+}
+
flvr_cnt_mdt2mdt()
{
local flavor=$1
echo $cnt;
}
+flvr_dump_mdt2mdt()
+{
+ for num in `seq $MDSCOUNT`; do
+ do_facet mds$num lctl get_param \
+ osp.*-MDT*osp-MDT*.$PROC_CLI 2>/dev/null
+
+ if $GSS_SK; then
+ do_facet mds$num lctl get_param \
+ osp.*-MDT*osp-MDT*.$PROC_CON 2>/dev/null
+ fi
+ done
+}
+
flvr_cnt_mdt2ost()
{
local flavor=$1
echo $cnt;
}
+flvr_dump_mdt2ost()
+{
+ for num in `seq $MDSCOUNT`; do
+ mdtosc=$(get_mdtosc_proc_path mds$num)
+ mdtosc=${mdtosc/-MDT*/-MDT\*}
+ do_facet mds$num lctl get_param \
+ os[cp].$mdtosc.$PROC_CLI 2>/dev/null
+
+ if $GSS_SK; then
+ do_facet mds$num lctl get_param \
+ os[cp].$mdtosc.$PROC_CON 2>/dev/null
+ fi
+ done
+}
+
flvr_cnt_mgc2mgs()
{
local flavor=$1
echo $res
}
+do_dump_imp_state()
+{
+ local clients=${CLIENTS:-$HOSTNAME}
+ local type=$1
+
+ for c in ${clients//,/ }; do
+ [ "$type" == "osc" ] &&
+ do_node $c lctl get_param osc.*.idle_timeout
+ do_node $c lctl get_param $type.*.import |
+ grep -E "name:|state:"
+ done
+}
+
+do_dump_flavor()
+{
+ local dir=$1 # from to
+
+ if [ $dir == "cli2mdt" ]; then
+ do_dump_imp_state mdc
+ flvr_dump_cli2mdt
+ elif [ $dir == "cli2ost" ]; then
+ do_dump_imp_state osc
+ flvr_dump_cli2ost
+ elif [ $dir == "mdt2mdt" ]; then
+ flvr_dump_mdt2mdt
+ elif [ $dir == "mdt2ost" ]; then
+ flvr_dump_mdt2ost
+ elif [ $dir == "all2ost" ]; then
+ flvr_dump_mdt2ost
+ do_dump_imp_state osc
+ flvr_dump_cli2ost
+ elif [ $dir == "all2mdt" ]; then
+ flvr_dump_mdt2mdt
+ do_dump_imp_state mdc
+ flvr_dump_cli2mdt
+ elif [ $dir == "all2all" ]; then
+ flvr_dump_mdt2ost
+ do_dump_imp_state osc
+ flvr_dump_cli2ost
+ flvr_dump_mdt2mdt
+ do_dump_imp_state mdc
+ flvr_dump_cli2mdt
+ fi
+}
+
wait_flavor()
{
local dir=$1 # from to
done
echo "Error checking $flavor of $dir: expect $expect, actual $res"
-# echo "Dumping additional logs for SK debug.."
do_nodes $(comma_list $(all_server_nodes)) "keyctl show"
+ do_dump_flavor $dir
if $dump; then
gather_logs $(comma_list $(nodes_list))
fi