ZTS: Fix and reenable zfs_rename tests

zfs_rename_006_pos has been flaky in the past because it was
missing a call to block_device_wait to ensure the zvols it creates
are present before running dd. Whenever this this happened,
zfs_rename_009_neg would also fail because the first test would
leak a zvol clone that it did not know how to clean up. This patch
fixes the root cause and reenables the test. It also fixes some
minor grammar errors.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #5647 
Closes #5648 
Closes #8088
This commit is contained in:
Tom Caputi 2018-11-07 19:59:27 -05:00 committed by Brian Behlendorf
parent c2bcfa71f4
commit d8244d34bd
3 changed files with 8 additions and 9 deletions

View File

@ -214,8 +214,6 @@
'cli_root/zdb/zdb_006_pos': ['FAIL', known_reason],
'cli_root/zfs_get/zfs_get_004_pos': ['FAIL', known_reason],
'cli_root/zfs_get/zfs_get_009_pos': ['SKIP', '5479'],
'cli_root/zfs_rename/zfs_rename_006_pos': ['FAIL', '5647'],
'cli_root/zfs_rename/zfs_rename_009_neg': ['FAIL', '5648'],
'cli_root/zfs_rollback/zfs_rollback_001_pos': ['FAIL', '6415'],
'cli_root/zfs_rollback/zfs_rollback_002_pos': ['FAIL', '6416'],
'cli_root/zfs_share/setup': ['SKIP', share_reason],

View File

@ -69,6 +69,7 @@ rename_dataset ${vol}-new $vol
clone=$TESTPOOL/${snap}_clone
create_clone $vol@$snap $clone
block_device_wait
#verify data integrity
for input in $VOL_R_PATH $ZVOL_RDEVDIR/$clone; do

View File

@ -33,13 +33,13 @@
#
# DESCRIPTION:
# A snapshot already exists with the new name, then none of the
# snapshots is renamed.
# When renaming a set of snapshots, if a snapshot already exists with
# the new name, then none of the snapshots is renamed.
#
# STRATEGY:
# 1. Create snapshot for a set of datasets.
# 1. Create a snapshot for a set of datasets.
# 2. Create a new snapshot for one of datasets.
# 3. Using rename -r command with exists snapshot name.
# 3. Attempt to "zfs rename -r" with the second snapshot's name.
# 4. Verify none of the snapshots is renamed.
#
@ -54,7 +54,7 @@ function cleanup
done
}
log_assert "zfs rename -r failed, when snapshot name is already existing."
log_assert "Verify zfs rename -r failed when the snapshot name already exists."
log_onexit cleanup
set -A datasets $TESTPOOL $TESTPOOL/$TESTCTR \
@ -71,7 +71,7 @@ while ((i < ${#datasets[@]})); do
log_mustnot zfs rename -r ${TESTPOOL}@snap ${TESTPOOL}@snap2
log_must zfs destroy ${datasets[$i]}@snap2
# Check datasets, make sure none of them was renamed.
# Check datasets, make sure none of them have snap2.
typeset -i j=0
while ((j < ${#datasets[@]})); do
if datasetexists ${datasets[$j]}@snap2 ; then
@ -83,4 +83,4 @@ while ((i < ${#datasets[@]})); do
((i += 1))
done
log_pass "zfs rename -r failed, when snapshot name is already existing passed."
log_pass "zfs rename -r failed when the snapshot name already exists."