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