ZTS: harden xattr/cleanup.ksh

When the xattr/cleanup.ksh script is unable to remove the test group
due to an active process then it will not call default_cleanup.  This
will result in a zvol_ENOSPC/setup failure when attempting to create
the /mnt/testdir directory which will already exist.

Resolve the issue by performing the default_cleanup before removing
the test user and group to ensure this step always happens.  Also
allow one more retry to further minimize the likelihood of the
cleanup failing.

Reviewed-by: Ryan Moeller <ryan@ixsystems.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #9358
This commit is contained in:
Brian Behlendorf 2019-09-25 09:24:45 -07:00 committed by Tony Hutter
parent 055238d2eb
commit 988b040476
2 changed files with 7 additions and 5 deletions

View File

@ -2355,7 +2355,7 @@ function del_user #<logname> <basedir>
fi
if id $user > /dev/null 2>&1; then
log_must_retry "currently used" 5 userdel $user
log_must_retry "currently used" 6 userdel $user
fi
[[ -d $basedir/$user ]] && rm -fr $basedir/$user

View File

@ -30,9 +30,6 @@
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/functional/xattr/xattr_common.kshlib
del_user $ZFS_USER
del_group $ZFS_GROUP
USES_NIS=$(cat $TEST_BASE_DIR/zfs-xattr-test-nis.txt)
rm $TEST_BASE_DIR/zfs-xattr-test-nis.txt
@ -41,4 +38,9 @@ then
svcadm enable svc:/network/nis/client:default
fi
default_cleanup
default_cleanup_noexit
del_user $ZFS_USER
del_group $ZFS_GROUP
log_pass