Enable all zfs_destroy test cases

* zfs_destroy_001_pos - Unable to reproduce the failures locally.
  Re-enabled to determine observed buildbot failure rate.

* zfs_destroy_005_neg - Updated for expected Linux behavior.
  Busy mount points, even snapshots, are expected to fail.

* zfs_destroy_010_pos - Resolved transient EBUSY with retry.

Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #5635 
Issue #5893 
Closes #6091
This commit is contained in:
Brian Behlendorf
2017-05-03 18:27:59 -07:00
committed by GitHub
parent dddef7d600
commit 35b7842f68
3 changed files with 22 additions and 14 deletions
@@ -187,9 +187,12 @@ pidlist=""
#
# Create the clones for test environment and make the snapshot busy.
# Then verify 'zfs destroy $snap' succeeds without '-f'.
#
# Then verify the snapshot and clone are destroyed, but nothing else is.
# For Linux verify 'zfs destroy $snap' fails due to the busy mount point. Then
# verify the snapshot remains and the clone was destroyed, but nothing else is.
#
# Under illumos verify 'zfs destroy $snap' succeeds without '-f'. Then verify
# the snapshot and clone are destroyed, but nothing else is.
#
mntpt=$(snapshot_mountpoint $FSSNAP)
@@ -199,9 +202,16 @@ log_note "mkbusy $mntpt (pidlist: $pidlist)"
for option in -R -rR ; do
setup_testenv clone
log_must zfs destroy $option $FSSNAP
check_dataset datasetexists $CTR $FS $VOL
check_dataset datasetnonexists $FSSNAP $FSCLONE
if is_linux; then
log_mustnot zfs destroy $option $FSSNAP
check_dataset datasetexists $CTR $FS $VOL $FSSNAP
check_dataset datasetnonexists $FSCLONE
else
log_must zfs destroy $option $FSSNAP
check_dataset datasetexists $CTR $FS $VOL
check_dataset datasetnonexists $FSSNAP $FSCLONE
fi
done
log_must kill $pidlist
@@ -54,7 +54,7 @@ function test_clone_run
clone=$(eval echo \$${dstype}CLONE)
log_must zfs destroy -d $snap
log_must datasetexists $snap
log_must zfs destroy -R $clone
log_must_busy zfs destroy -R $clone
log_mustnot datasetexists $snap
log_mustnot datasetexists $clone
}