}
restore_krb5_cred() {
+ keyctl reap
cp $KRB5_CRED_SAVE $KRB5_CRED
chown $RUNAS_ID:$RUNAS_ID $KRB5_CRED
chmod 0600 $KRB5_CRED
local gssd_name=$(basename $gssd)
for ((i = 0; i < 10; i++)); do
- do_facet $facet "$gssd -v &"
+ do_facet $facet "$gssd -v"
done
# wait daemons entering "stable" status
# flush context, and touch
$RUNAS $LFS flushctx $MOUNT || error "can't flush context on $MOUNT"
- $RUNAS touch $file2 &
- TOUCHPID=$!
-
- # wait certain time
- echo "waiting $wait_time seconds for touch pid $TOUCHPID"
- sleep $wait_time
- num=$(ps --no-headers -p $TOUCHPID | wc -l)
- [ $num -eq 1 ] || error "touch already ended ($num)"
- echo "process $TOUCHPID still hanging there... OK"
+ $RUNAS touch $file2 && error 'should fail without lsvcgssd'
# restart lsvcgssd, expect touch suceed
echo "restart lsvcgssd and recovering"
start_gss_daemons $(comma_list $(mdts_nodes)) "$LSVCGSSD -v"
sleep 5
check_gss_daemon_nodes $(comma_list $(mdts_nodes)) lsvcgssd
- wait $TOUCHPID || error "touch fail"
+ $RUNAS keyctl reap
+ $RUNAS touch $file2 || error 'should not fail now'
[ -f $file2 ] || error "$file2 not found"
}
-run_test 5 "lsvcgssd dead, operations lead to recovery"
+run_test 5 "lsvcgssd dead, operations fail"
test_6() {
local nfile=10
do_facet $SINGLEMDS $LCTL set_param fail_loc=0
wait $TOUCHPID || error "touch should have succeeded"
- $LCTL dk | grep "Early reply #" || error "No early reply"
+ $LCTL dk | grep -i "Early reply #" || error "No early reply"
debugrestore
do_facet $SINGLEMDS "echo $ATOLDBASE >> $ATHISTORY" || true
echo "original general rules: $nrule_old"
for ((i = $nrule_old; i < $max; i++)); do
- set_rule $FSNAME elan$i any krb5n || error "set rule $i"
+ set_rule $FSNAME ${NETTYPE}$i any krb5n || error "set rule $i"
done
for ((i = $nrule_old; i < $max; i++)); do
- set_rule $FSNAME elan$i any || error "remove rule $i"
+ set_rule $FSNAME ${NETTYPE}$i any || error "remove rule $i"
done
nrule_new=$(do_facet mgs lctl get_param -n mgs.MGS.live.$FSNAME \
echo "original target rules: $nrule_old"
for ((i = $nrule_old; i < $max; i++)); do
- set_rule $FSNAME-MDT0000 elan$i any krb5i || error "set rule $i"
+ set_rule $FSNAME-MDT0000 ${NETTYPE}$i any krb5i || error "set rule $i"
done
for ((i = $nrule_old; i < $max; i++)); do
- set_rule $FSNAME-MDT0000 elan$i any || error "remove rule $i"
+ set_rule $FSNAME-MDT0000 ${NETTYPE}$i any || error "remove rule $i"
done
nrule_new=$(do_facet mgs lctl get_param -n mgs.MGS.live.$FSNAME \
# umount everything, modules still loaded
stopall
+ # start gss daemon on mgs node
+ combined_mgs_mds || start_gss_daemons $mgs_HOST "$LSVCGSSD -v"
+
+ # start mgs
+ start mgs $(mgsdevname 1) $MDS_MOUNT_OPTS
+
# mount mgs with default flavor, in current framework it means mgs+mdt1.
# the connection of mgc of mdt1 to mgs is expected fail.
DEVNAME=$(mdsdevname 1)
- start mds1 $DEVNAME $MDS_MOUNT_OPTS &&
+ start mds1 $DEVNAME $MDS_MOUNT_OPTS
+ wait_mgc_import_state mds FULL 0 &&
error "mount with default flavor should have failed"
+ stop mds1
# mount with unauthorized flavor should fail
save_opts=$MDS_MOUNT_OPTS
+ if [ -z "$MDS_MOUNT_OPTS" ]; then
+ MDS_MOUNT_OPTS="-o mgssec=null"
+ else
MDS_MOUNT_OPTS="$MDS_MOUNT_OPTS,mgssec=null"
- start mds1 $DEVNAME $MDS_MOUNT_OPTS &&
+ fi
+ start mds1 $DEVNAME $MDS_MOUNT_OPTS
+ wait_mgc_import_state mds FULL 0 &&
error "mount with unauthorized flavor should have failed"
MDS_MOUNT_OPTS=$save_opts
+ stop mds1
# mount with designated flavor should succeed
save_opts=$MDS_MOUNT_OPTS
+ if [ -z "$MDS_MOUNT_OPTS" ]; then
+ MDS_MOUNT_OPTS="-o mgssec=krb5p"
+ else
MDS_MOUNT_OPTS="$MDS_MOUNT_OPTS,mgssec=krb5p"
- start mds1 $DEVNAME $MDS_MOUNT_OPTS ||
+ fi
+ start mds1 $DEVNAME $MDS_MOUNT_OPTS
+ wait_mgc_import_state mds FULL 0 ||
error "mount with designated flavor should have succeeded"
MDS_MOUNT_OPTS=$save_opts