}
run_test 133e "Verifying OST {read,write}_bytes nid stats ================="
-proc_regexp="/{proc,sys}/{fs,sys,kernel/debug}/{lustre,lnet}/"
-
-# Some versions of find (4.5.11, 4.5.14) included in CentOS 7.3-7.5 do
-# not honor the -ignore_readdir_race option correctly. So we call
-# error_ignore() rather than error() in these cases. See LU-11152.
-error_133() {
- if (find --version; do_facet mds1 find --version) |
- grep -q '\b4\.5\.1[1-4]\b'; then
- error_ignore LU-11152 "$@"
- else
- error "$@"
- fi
-}
-
test_133f() {
- # First without trusting modes.
- local proc_dirs=$(eval \ls -d $proc_regexp 2>/dev/null)
- echo "proc_dirs='$proc_dirs'"
- [ -n "$proc_dirs" ] || error "no proc_dirs on $HOSTNAME"
- find $proc_dirs -exec cat '{}' \; &> /dev/null
+ [[ $(lustre_version_code $facet) -ge $(version_code 2.7.65) ]] ||
+ skip "too old lustre for get_param -R ($facet_ver)"
- # Second verifying readability.
+ # verifying readability.
$LCTL get_param -R '*' &> /dev/null
# Verifing writability with badarea_io.
- find $proc_dirs \
- -ignore_readdir_race \
- -type f \
- -not -name force_lbug \
- -not -name changelog_mask \
- -exec badarea_io '{}' \; ||
- error_133 "find $proc_dirs failed"
+ $LCTL list_param -FR '*' | grep '=' | tr -d = |
+ egrep -v 'force_lbug|changelog_mask' | xargs badarea_io ||
+ error "client badarea_io failed"
+
+ # remount the FS in case writes/reads /proc break the FS
+ cleanup || error "failed to unmount"
+ setup || error "failed to setup"
}
run_test 133f "Check reads/writes of client lustre proc files with bad area io"
log "$facet: too old lustre for get_param -R"
fi
if [ $facet_ver -ge $(version_code 2.5.54) ]; then
- do_facet $facet "$LCTL list_param -R '*' | grep '=' |
+ do_facet $facet "$LCTL list_param -FR '*' | grep '=' |
tr -d = | egrep -v 'force_lbug|changelog_mask' |
xargs badarea_io" ||
- error_133 "$facet badarea_io failed"
+ error "$facet badarea_io failed"
else
skip_noexit "$facet: too old lustre for get_param -R"
fi
# remount the FS in case writes/reads /proc break the FS
cleanup || error "failed to unmount"
setup || error "failed to setup"
- true
}
run_test 133g "Check reads/writes of server lustre proc files with bad area io"
local facet
for facet in client mds1 ost1; do
- local facet_proc_dirs=$(do_facet $facet \
- \\\ls -d $proc_regexp 2> /dev/null)
- [ -z "$facet_proc_dirs" ] && error "no proc_dirs on $facet"
- echo "${facet}_proc_dirs='$facet_proc_dirs'"
# Get the list of files that are missing the terminating newline
- local missing=($(do_facet $facet \
- find ${facet_proc_dirs} -type f \| \
- while read F\; do \
- awk -v FS='\v' -v RS='\v\v' \
- "'END { if(NR>0 && \
- \\\$NF !~ /.*\\\n\$/) \
- print FILENAME}'" \
- '\$F'\; \
- done 2>/dev/null))
- [ ${#missing[*]} -eq 0 ] ||
- error "files do not end with newline: ${missing[*]}"
+ #local missing=($(do_facet $facet \
+ local plist=$(do_facet $facet
+ $LCTL list_param -FR '*' | grep '=' | tr -d =)
+ local ent
+ for ent in $plist; do
+ local missing=$(do_facet $facet $LCTL get_param $ent \|\
+ awk -v FS='\v' -v RS='\v\v' \
+ "'END { if(NR>0 && \\\$NF !~ /.*\\\n\$/) \
+ print FILENAME}'" 2>/dev/null)
+ [ -z $missing ] ||
+ error "files do not end with newline: $missing"
+ done
done
}
run_test 133h "Proc files should end with newlines"
#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 proc_regexp="/{proc,sys}/{fs,sys,kernel/debug}/{lustre,lnet}/"
local proc_dirs=$(eval \ls -d $proc_regexp 2>/dev/null)
echo "proc_dirs='$proc_dirs'"
[ -n "$proc_dirs" ] || error "no proc_dirs on $HOSTNAME"