Whamcloud - gitweb
LU-7227 tests: check dmesg for errors after test
[fs/lustre-release.git] / lustre / tests / test-framework.sh
index 43b17e9..eaa4878 100755 (executable)
@@ -4687,6 +4687,9 @@ error_noexit() {
                        echo "$@" > $LOGDIR/err
                fi
        fi
+
+       # cleanup the env for failed tests
+       reset_fail_loc
 }
 
 exit_status () {
@@ -4929,6 +4932,18 @@ banner() {
     log "$msg== $(date +"%H:%M:%S (%s)")"
 }
 
+check_dmesg_for_errors() {
+       local res
+       local errors="VFS: Busy inodes after unmount of\|\
+ldiskfs_check_descriptors: Checksum for group 0 failed\|\
+group descriptors corrupted"
+
+       res=$(do_nodes $(comma_list $(nodes_list)) "dmesg" | grep "$errors")
+       [ -z "$res" ] && return 0
+       echo "Kernel error detected: $res"
+       return 1
+}
+
 #
 # Run a single test function and cleanup after it.
 #
@@ -4950,6 +4965,7 @@ run_one() {
        reset_fail_loc
        check_grant ${testnum} || error "check_grant $testnum failed with $?"
        check_catastrophe || error "LBUG/LASSERT detected"
+       check_dmesg_for_errors || error "Error in dmesg detected"
        if [ "$PARALLEL" != "yes" ]; then
                ps auxww | grep -v grep | grep -q multiop &&
                                        error "multiop still running"
@@ -6070,19 +6086,21 @@ create_pool() {
 }
 
 add_pool_to_list () {
-    local fsname=${1%%.*}
-    local poolname=${1##$fsname.}
+       local fsname=${1%%.*}
+       local poolname=${1##$fsname.}
 
-    local listvar=${fsname}_CREATED_POOLS
-    eval export ${listvar}=$(expand_list ${!listvar} $poolname)
+       local listvar=${fsname}_CREATED_POOLS
+       local temp=${listvar}=$(expand_list ${!listvar} $poolname)
+       eval export $temp
 }
 
 remove_pool_from_list () {
-    local fsname=${1%%.*}
-    local poolname=${1##$fsname.}
+       local fsname=${1%%.*}
+       local poolname=${1##$fsname.}
 
-    local listvar=${fsname}_CREATED_POOLS
-    eval export ${listvar}=$(exclude_items_from_list ${!listvar} $poolname)
+       local listvar=${fsname}_CREATED_POOLS
+       local temp=${listvar}=$(exclude_items_from_list ${!listvar} $poolname)
+       eval export $temp
 }
 
 destroy_pool_int() {