From d07df1a7397777fa0f0ac80377d69fd2e24dab0e Mon Sep 17 00:00:00 2001 From: tappro <tappro> Date: Wed, 3 Sep 2008 08:11:46 +0000 Subject: [PATCH] - export handling for VBR b:15391 i:rread, bzzz --- lustre/tests/replay-single.sh | 110 ++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/lustre/tests/replay-single.sh b/lustre/tests/replay-single.sh index 33e7efcfc9..2c1c50c091 100755 --- a/lustre/tests/replay-single.sh +++ b/lustre/tests/replay-single.sh @@ -1686,6 +1686,116 @@ test_70b () { run_test 70b "mds recovery; $CLIENTCOUNT clients" # end multi-client tests +# vbr export handling +create_fake_exports () +{ + local facet=$1 + local num=$2 +#obd_fail_val = num; +#define OBD_FAIL_TGT_FAKE_EXP 0x708 + do_facet $facet "lctl set_param fail_val=$num" + do_facet $facet "lctl set_param fail_loc=0x80000708" + fail $facet +} + +test_71a() { + do_facet mds $LCTL get_param version | grep -q ^lustre.*1.6 && \ + skip "skipping test for old 1.6 servers" && return 0 + UUID=$(lctl dl | awk '/mdc.*-mdc-/ { print $5 }') + echo "Client UUID is $UUID" + replay_barrier mds + umount $DIR + facet_failover mds + zconf_mount `hostname` $DIR || error "mount fails" + df $DIR || error "post-failover df failed" + do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|grep $UUID" || \ + error "no delayed exports" + OLD_AGE=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_export_age") + NEW_AGE=10 + do_facet mds "lctl set_param mds.${mds_svc}.stale_export_age=$NEW_AGE" + sleep $NEW_AGE + do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|grep \"$UUID.*EXPIRED\"" || \ + error "exports didn't expire" + do_facet mds "lctl set_param mds.${mds_svc}.evict_client=$UUID" + do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|grep $UUID" && \ + error "Export wasn't removed manually" + do_facet mds "lctl set_param mds.${mds_svc}.stale_export_age=$OLD_AGE" + return 0; +} +run_test 71a "lost client export is kept" + +test_71b() { + do_facet mds $LCTL get_param version | grep -q ^lustre.*1.6 && \ + skip "skipping test for old 1.6 servers" && return 0 + FAKE_NUM=10 + create_fake_exports mds $FAKE_NUM + NUM=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|wc -l") + [ $NUM -eq 0 ] && error "no fake exports $NUM - $FAKE_NUM" + OLD_AGE=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_export_age") + NEW_AGE=10 + do_facet mds "lctl set_param mds.${mds_svc}.stale_export_age=$NEW_AGE" + sleep $NEW_AGE + EX_NUM=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|grep -c EXPIRED") + [ "$EX_NUM" -eq "$NUM" ] || error "not all exports are expired $EX_NUM != $NUM" + do_facet mds "lctl set_param mds.${mds_svc}.flush_stale_exports=1" + do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|grep EXPIRED" && \ + error "Exports weren't flushed" + do_facet mds "lctl set_param mds.${mds_svc}.stale_export_age=$OLD_AGE" + return 0; +} +run_test 71b "stale exports are expired, lctl flushes them" + +test_71c() { + do_facet mds $LCTL get_param version | grep -q ^lustre.*1.6 && \ + skip "skipping test for old 1.6 servers" && return 0 + FAKE_NUM=10 + create_fake_exports mds $FAKE_NUM + NUM=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|wc -l") + [ "$NUM" -eq "$FAKE_NUM" ] || error "no fake exports $NUM - $FAKE_NUM" + OLD_AGE=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_export_age") + NEW_AGE=10 + do_facet mds "lctl set_param mds.${mds_svc}.stale_export_age=$NEW_AGE" + sleep $NEW_AGE + EX_NUM=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|grep -c EXPIRED") + [ "$EX_NUM" -eq "$NUM" ] || error "not all exports are expired $EX_NUM != $NUM" + + umount $DIR + zconf_mount `hostname` $DIR || error "mount fails" + + NUM=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|wc -l") + [ $NUM -eq 0 ] || error "$NUM fake exports are still exists" + do_facet mds "lctl set_param mds.${mds_svc}.stale_export_age=$OLD_AGE" + return 0; +} +run_test 71c "stale exports are expired, new client connection flush them" + +test_71d() { + do_facet mds $LCTL get_param version | grep -q ^lustre.*1.6 && \ + skip "skipping test for old 1.6 servers" && return 0 + FAKE_NUM=10 + create_fake_exports mds $FAKE_NUM + NUM=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|wc -l") + [ "$NUM" -eq "$FAKE_NUM" ] || error "no fake exports $NUM - $FAKE_NUM" + OLD_AGE=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_export_age") + NEW_AGE=10 + do_facet mds "lctl conf_param ${mds_svc}.mdt.stale_export_age=$NEW_AGE" + sleep $NEW_AGE + EX_NUM=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|grep -c EXPIRED") + [ "$EX_NUM" -eq "$NUM" ] || error "not all exports are expired $EX_NUM != $NUM" + + fail mds + + FAIL_AGE=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_export_age") + [ $FAIL_AGE -eq $NEW_AGE ] || error "new age wasn't set after recovery" + NUM=$(do_facet mds "lctl get_param -n mds.${mds_svc}.stale_exports|wc -l") + [ $NUM -eq 0 ] || error "$NUM fake exports are still exists" + do_facet mds "lctl conf_param ${mds_svc}.mdt.stale_export_age=$OLD_AGE" + return 0; +} +run_test 71d "expired exports, server init removes them, conf_param works" + +# end vbr exports tests + equals_msg `basename $0`: test complete, cleaning up check_and_cleanup_lustre [ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true -- GitLab