ZTS: pool_checkpoint improvements
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 #11832
This commit is contained in:
parent
ca7af7f675
commit
e2f5074c0f
|
@ -52,6 +52,7 @@ fragment_after_checkpoint_and_verify
|
||||||
log_must zpool export $NESTEDPOOL
|
log_must zpool export $NESTEDPOOL
|
||||||
log_must zpool import -d $FILEDISKDIR --rewind-to-checkpoint $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."
|
log_pass "Rewind to checkpoint on a stressed pool."
|
||||||
|
|
|
@ -80,13 +80,14 @@ log_mustnot dd if=/dev/urandom of=$NESTEDFS0FILE bs=1M count=300
|
||||||
#
|
#
|
||||||
log_must zpool list $NESTEDPOOL
|
log_must zpool list $NESTEDPOOL
|
||||||
|
|
||||||
log_must zdb -kc $NESTEDPOOL
|
|
||||||
|
|
||||||
log_must zpool export $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 zpool import -d $FILEDISKDIR --rewind-to-checkpoint $NESTEDPOOL
|
||||||
|
|
||||||
log_must [ "$(head -c 100 $NESTEDFS0FILE)" = "$FILE0INTRO" ]
|
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."
|
log_pass "Do not reuse checkpointed space at low capacity."
|
||||||
|
|
|
@ -104,7 +104,8 @@ set_tunable64 SPA_DISCARD_MEMORY_LIMIT 16777216
|
||||||
|
|
||||||
nested_wait_discard_finish
|
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 " \
|
log_pass "Can export/import but not rewind/checkpoint/discard or " \
|
||||||
"change pool's config while discarding."
|
"change pool's config while discarding."
|
||||||
|
|
|
@ -154,13 +154,18 @@ function setup_nested_pools
|
||||||
|
|
||||||
function cleanup_nested_pool
|
function cleanup_nested_pool
|
||||||
{
|
{
|
||||||
|
if poolexists $NESTEDPOOL; then
|
||||||
log_must zpool destroy $NESTEDPOOL
|
log_must zpool destroy $NESTEDPOOL
|
||||||
|
fi
|
||||||
|
|
||||||
log_must rm -f $FILEDISKS
|
log_must rm -f $FILEDISKS
|
||||||
}
|
}
|
||||||
|
|
||||||
function cleanup_test_pool
|
function cleanup_test_pool
|
||||||
{
|
{
|
||||||
|
if poolexists $TESTPOOL; then
|
||||||
log_must zpool destroy $TESTPOOL
|
log_must zpool destroy $TESTPOOL
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# We always clear the labels of all disks
|
# We always clear the labels of all disks
|
||||||
|
|
Loading…
Reference in New Issue