Skip to content

Commit

Permalink
ZTS: pool_checkpoint improvements
Browse files Browse the repository at this point in the history
The pool_checkpoint tests may incorrectly fail because several of
them invoke zdb for an imported pool.  In this scenario it's not
unexpected for zdb to fail if the pool is modified.  To resolve
this these zdb checks are now done after the pool has been exported.

Additionally, the default cleanup functions assumed the pool would
be imported when they were run.  If this was not the case they're
exit early and fail to cleanup all of the test state causing
subsequent tests to fail.  Add a check to only destroy the pool
when it is imported.

Reviewed-by: John Kennedy <john.kennedy@delphix.com>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Serapheim Dimitropoulos <serapheim@delphix.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#11832
  • Loading branch information
behlendorf authored and Ryan Moeller committed May 10, 2021
1 parent 3d34801 commit ca7fe9a
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ fragment_after_checkpoint_and_verify
log_must zpool export $NESTEDPOOL
log_must zpool import -d $FILEDISKDIR --rewind-to-checkpoint $NESTEDPOOL

log_must zdb $NESTEDPOOL
log_must zpool export $NESTEDPOOL
log_must zdb -e -p $FILEDISKDIR $NESTEDPOOL

log_pass "Rewind to checkpoint on a stressed pool."
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,14 @@ log_mustnot dd if=/dev/urandom of=$NESTEDFS0FILE bs=1M count=300
#
log_must zpool list $NESTEDPOOL

log_must zdb -kc $NESTEDPOOL

log_must zpool export $NESTEDPOOL
log_must zdb -e -p $FILEDISKDIR -kc $NESTEDPOOL

log_must zpool import -d $FILEDISKDIR --rewind-to-checkpoint $NESTEDPOOL

log_must [ "$(head -c 100 $NESTEDFS0FILE)" = "$FILE0INTRO" ]

log_must zdb $NESTEDPOOL
log_must zpool export $NESTEDPOOL
log_must zdb -e -p $FILEDISKDIR $NESTEDPOOL

log_pass "Do not reuse checkpointed space at low capacity."
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ set_tunable64 SPA_DISCARD_MEMORY_LIMIT 16777216

nested_wait_discard_finish

log_must zdb $NESTEDPOOL
log_must zpool export $NESTEDPOOL
log_must zdb -e -p $FILEDISKDIR $NESTEDPOOL

log_pass "Can export/import but not rewind/checkpoint/discard or " \
"change pool's config while discarding."
Original file line number Diff line number Diff line change
Expand Up @@ -154,13 +154,18 @@ function setup_nested_pools

function cleanup_nested_pool
{
log_must zpool destroy $NESTEDPOOL
if poolexists $NESTEDPOOL; then
log_must zpool destroy $NESTEDPOOL
fi

log_must rm -f $FILEDISKS
}

function cleanup_test_pool
{
log_must zpool destroy $TESTPOOL
if poolexists $TESTPOOL; then
log_must zpool destroy $TESTPOOL
fi

#
# We always clear the labels of all disks
Expand Down

0 comments on commit ca7fe9a

Please sign in to comment.