From 0ed02e6bc4fa915993131d3f6aeff765766eb235 Mon Sep 17 00:00:00 2001
From: grev <grev>
Date: Fri, 29 Aug 2008 12:44:45 +0000
Subject: [PATCH] b=16716 i=Nathan.Rutman restore the original at_max on all
 nodes

---
 lustre/tests/replay-single.sh  | 31 ++++++++++++++++++++++++-------
 lustre/tests/test-framework.sh | 10 +++++++++-
 2 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/lustre/tests/replay-single.sh b/lustre/tests/replay-single.sh
index 80efc4ba12..0ee493670e 100755
--- a/lustre/tests/replay-single.sh
+++ b/lustre/tests/replay-single.sh
@@ -1462,19 +1462,29 @@ run_test 62 "don't mis-drop resent replay"
 
 #Adaptive Timeouts (bug 3055)
 AT_MAX_SET=0
+# Suppose that all osts have the same at_max
+for facet in mds client ost; do
+    eval AT_MAX_SAVE_${facet}=$(at_max_get $facet)
+done
 
 at_start()
 {
+    local at_max_new=600
     if ! at_is_valid; then
         skip "AT env is invalid"
         return 1
     fi
 
-    if ! at_is_enabled; then
-        echo "AT is disabled, enable it by force temporarily"
-        at_max_set 600 mds ost client
-        AT_MAX_SET=1
-    fi
+    local at_max
+
+    for facet in mds client ost; do
+        at_max=$(at_max_get $facet)
+        if [ $at_max -ne $at_max_new ]; then
+            echo "AT value on $facet is $at_max, set it by force temporarily to $at_max_new"
+            at_max_set $at_max_new $facet
+            AT_MAX_SET=1
+        fi
+    done
 
     if [ -z "$ATOLDBASE" ]; then
 	local at_history=$(do_facet mds "find /sys/ -name at_history")
@@ -1654,8 +1664,15 @@ if [ -n "$ATOLDBASE" ]; then
 fi
 
 if [ $AT_MAX_SET -ne 0 ]; then
-    echo "restore AT status to be disabled"
-    at_max_set 0 mds ost client
+    for facet in mds client ost; do
+        var=AT_MAX_SAVE_${facet}
+        echo restore AT on $facet to saved value ${!var}
+        at_max_set ${!var} $facet
+        AT_NEW=$(at_max_get $facet)
+        echo Restored AT value on $facet $AT_NEW 
+        [ $AT_NEW -ne ${!var} ] && \
+            error "$facet : AT value was not restored SAVED ${!var} NEW $AT_NEW"
+    done
 fi
 
 # end of AT tests includes above lines
diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh
index f8f234d8d9..b692fe5518 100644
--- a/lustre/tests/test-framework.sh
+++ b/lustre/tests/test-framework.sh
@@ -1295,9 +1295,16 @@ at_is_enabled() {
 }
 
 at_max_get() {
+    local facet=$1
+
     at_is_valid || error "invalid call"
 
-    do_facet $1 "cat $AT_MAX_PATH"
+    # suppose that all ost-s has the same at_max set
+    if [ $facet == "ost" ]; then
+        do_facet ost1 "cat $AT_MAX_PATH"
+    else
+        do_facet $facet "cat $AT_MAX_PATH"
+    fi
 }
 
 at_max_set() {
@@ -1306,6 +1313,7 @@ at_max_set() {
 
     at_is_valid || error "invalid call"
 
+    local facet
     for facet in $@; do
         if [ $facet == "ost" ]; then
             for i in `seq $OSTCOUNT`; do
-- 
GitLab