local nm=$1
local key=$2
local val=$3
+ local facets=""
local i
if [ "$nm" == "active" ]; then
else
proc_param="$nm.$key"
fi
- is_sync=false
- for i in $(seq 1 20); do
- out=$(do_facet mds1 $LCTL get_param -n \
+ # check all MDS nodes, in reverse order to privilege remote ones first
+ for i in $(seq $MDSCOUNT); do
+ facets="mds$i $facets"
+ done
+ for facet in $facets; do
+ is_sync=false
+ for i in {1..20}; do
+ out=$(do_facet $facet $LCTL get_param -n \
nodemap.$proc_param 2>/dev/null)
- echo "On mds1, ${proc_param} = $out"
- [ "$val" == "$out" ] && is_sync=true && break
- sleep 1
+ echo "On $facet, ${proc_param} = $out"
+ [ "$val" == "$out" ] && is_sync=true && break
+ sleep 1
+ done
+ if ! $is_sync; then
+ error "$proc_param not updated on $facet after 20 secs"
+ fi
done
- if ! $is_sync; then
- error "$proc_param not updated on mds1 after 20 secs"
- fi
}
create_nodemap() {
check_nodemap $nm admin_nodemap 1
check_nodemap $nm trusted_nodemap 1
+ sleep 10
sepol=$(l_getsepol | cut -d':' -f2- | xargs)
- do_facet mgs $LCTL set_param nodemap.$nm.sepol="$sepol"
do_facet mgs $LCTL set_param -P nodemap.$nm.sepol="$sepol"
check_nodemap $nm sepol $sepol
do_facet mgs $LCTL nodemap_del $nm
+ wait_update_facet --verbose mds1 \
+ "$LCTL get_param nodemap.$nm.id 2>/dev/null | \
+ grep -c $nm || true" 0 30 ||
+ error "nodemap $nm could not be removed"
+
do_facet mgs $LCTL nodemap_activate 0
check_nodemap active x 0
# store wrong sepol in nodemap
sepol="0:policy:0:0000000000000000000000000000000000000000000000000000000000000000"
- do_facet mgs $LCTL set_param nodemap.c0.sepol="$sepol"
do_facet mgs $LCTL set_param -P nodemap.c0.sepol="$sepol"
check_nodemap c0 sepol $sepol
# store wrong sepol in nodemap
sepol="0:policy:0:0000000000000000000000000000000000000000000000000000000000000000"
- do_facet mgs $LCTL set_param nodemap.c0.sepol="$sepol"
do_facet mgs $LCTL set_param -P nodemap.c0.sepol="$sepol"
check_nodemap c0 sepol $sepol
# reset correct sepol
sepol=$(l_getsepol | cut -d':' -f2- | xargs)
- do_facet mgs $LCTL set_param nodemap.c0.sepol="$sepol"
do_facet mgs $LCTL set_param -P nodemap.c0.sepol="$sepol"
check_nodemap c0 sepol $sepol
- # metadata ops with sepol every 10 seconds only
- echo 10 > /sys/module/ptlrpc/parameters/send_sepol
+ # metadata ops with sepol every 1000 seconds only
+ echo 1000 > /sys/module/ptlrpc/parameters/send_sepol
+ local before=$(date +%s)
touch $DIR/$tdir/f6 || error "touch (4)"
lfs setstripe -c1 $DIR/$tdir/f7 || error "lfs setstripe (4)"
mkdir $DIR/$tdir/d6 || error "mkdir (4)"
ln $DIR/$tdir/toopen $DIR/$tdir/toopen_hl5 || error "hardlink (5)"
echo 3 > /proc/sys/vm/drop_caches
- sleep 10
+ local after=$(date +%s)
+ # change send_sepol to a smaller, already expired, value
+ echo $((after-before-1)) > /sys/module/ptlrpc/parameters/send_sepol
# metadata ops without matching sepol: should fail now
touch $DIR/$tdir/f10 && error "touch (6)"
lfs setstripe -c1 $DIR/$tdir/f11 && error "lfs setstripe (6)"