Whamcloud - gitweb
LU-7443 llog: remove unused and empty llog
[fs/lustre-release.git] / lustre / tests / sanity.sh
index d150cf3..2c239e4 100755 (executable)
@@ -9429,7 +9429,8 @@ run_test 133e "Verifying OST {read,write}_bytes nid stats ================="
 
 proc_dirs=""
 for dir in /proc/fs/lustre/ /proc/sys/lnet/ /proc/sys/lustre/ \
-          /sys/fs/lustre/ /sys/fs/lnet/ /sys/kernel/debug/lustre/; do
+          /sys/fs/lustre/ /sys/fs/lnet/ /sys/kernel/debug/lnet/ \
+          /sys/kernel/debug/lustre/; do
        [[ -d $dir ]] && proc_dirs+=" $dir"
 done
 
@@ -9440,7 +9441,7 @@ test_133f() {
        find $proc_dirs -exec cat '{}' \; &> /dev/null
 
        # Second verifying readability.
-       $LCTL get_param -R &> /dev/null || error "proc file read failed"
+       $LCTL get_param -R '*' &> /dev/null || error "proc file read failed"
 
        # eventually, this can also be replaced with "lctl get_param -R",
        # but not until that option is always available on the server
@@ -13561,6 +13562,69 @@ test_252() {
 }
 run_test 252 "check lr_reader tool"
 
+test_256() {
+       local cl_user
+       local cat_sl
+       local mdt_dev
+
+       [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
+       remote_mds_nodsh && skip "remote MDS with nodsh" && return
+       [ "$(facet_fstype mds1)" != "ldiskfs" ] &&
+               skip "non-ldiskfs backend" && return
+
+       mdt_dev=$(mdsdevname 1)
+       echo $mdt_dev
+       cl_user=$(do_facet mds1 \
+       "$LCTL get_param -n mdd.$MDT0.changelog_users | grep cl")
+       if [[ -n $cl_user ]]; then
+               skip "active changelog user"
+               return
+       fi
+
+       cl_user=$(do_facet mds1 $LCTL --device $MDT0 changelog_register -n)
+       echo "Registered as changelog user $cl_user"
+
+       rm -rf $DIR/$tdir
+       mkdir -p $DIR/$tdir
+
+       $LFS changelog_clear $MDT0 $cl_user 0
+
+       # change something
+       touch $DIR/$tdir/{1..10}
+
+       # stop the MDT
+       stop mds1 || error "Fail to stop MDT."
+
+       # remount the MDT
+       start mds1 $mdt_dev $MDS_MOUNT_OPTS || error "Fail to start MDT."
+
+       #after mount new plainllog is used
+       touch $DIR/$tdir/{11..19}
+       cat_sl=$(do_facet mds1 \
+       "$DEBUGFS -R \\\"dump changelog_catalog cat.dmp\\\" $mdt_dev; \
+        llog_reader cat.dmp | grep \\\"type=1064553b\\\" | wc -l")
+
+       if (( cat_sl != 2 )); then
+               do_facet mds1 $LCTL --device $MDT0 changelog_deregister $cl_user
+               error "Changelog catalog has wrong number of slots $cat_sl"
+       fi
+
+       $LFS changelog_clear $MDT0 $cl_user 0
+
+       cat_sl=$(do_facet mds1 \
+       "$DEBUGFS -R \\\"dump changelog_catalog cat.dmp\\\" $mdt_dev; \
+        llog_reader cat.dmp | grep \\\"type=1064553b\\\" | wc -l")
+
+       do_facet mds1 $LCTL --device $MDT0 changelog_deregister $cl_user
+
+       if (( cat_sl == 2 )); then
+               error "Empty plain llog was not deleted from changelog catalog"
+       fi
+       if (( cat_sl != 1 )); then
+               error "Active plain llog shouldn\`t be deleted from catalog"
+       fi
+}
+run_test 256 "Check llog delete for empty and not full state"
 
 cleanup_test_300() {
        trap 0
@@ -14311,7 +14375,8 @@ test_401() { #LU-7437
        #count the number of parameters by "list_param -R"
        local params=$($LCTL list_param -R '*' 2>/dev/null | wc -l)
        #count the number of parameters by listing proc files
-       local procs=$(find -L $proc_dirs -mindepth 1 2>/dev/null | wc -l)
+       local procs=$(find -L $proc_dirs -mindepth 1 -printf '%P\n' 2>/dev/null |
+                     sort -u | wc -l)
 
        [ $params -eq $procs ] ||
                error "found $params parameters vs. $procs proc files"