HomeFreeBSD

Add zpool_destroy_004_pos test case.

Description

Add zpool_destroy_004_pos test case.

This test targets the ability of 'zpool destroy -f' to tear down the pool
even if there is activity on it. In particular, this tests a background zfs
send | zfs receive.

zpool_destroy_004_pos tests the following combinations:

  • Data size of 1GB: sleep times 0.1 0.3 0.5 0.75 1 2 3 The goal is to test the race conditions at various points during the process of 'zfs send' and 'zfs receive', with respect to when the 'zpool destroy -f' takes place.
  • Data size of 4/3 physical memory: sleep time 15 The goal is to validate that the destroy process teardown time is orthagonal to the send stream size.

Each test point above looks like this:

for sleeptime in <sleep times>; do
  Run the tests where the sender and receiver are the same pool
  Run the tests where they differ; destroy the sender
  Run the tests where they differ; destroy the receiver
done

The tests in each step above perform the following:

  • Create the sender pool (and receiver pool if applicable)
  • Create a dataset on the sender, populate it, then snapshot it
  • Start the send | receive in the background
  • Sleep $sleeptime seconds
  • Do the forced destroy of the target pool, must succeed
  • Wait for the background subshell to exit non-zero
  • Verify that the target pool is indeed no longer visible

Submitted by: Will
Sponsored by: Spectra Logic Corp

Details

Provenance
asomersAuthored on
Parents
rS292296: Collect 6 different copies of set_disks() into libtest.kshlib. Make a few
Branches
Unknown
Tags
Unknown