zinject: "no-op" error injection

When injected, this causes the matching IO to appear to succeed, but the
actual work is never submitted to the physical device. This can be used
to simulate a write-back cache servicing a write, but the backing device
has failed and the cache cannot complete the operation in the
background.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
Closes #16085
This commit is contained in:
Rob N
2024-04-16 06:52:20 +10:00
committed by GitHub
parent f22b110f60
commit 4725e543be
4 changed files with 19 additions and 6 deletions
@@ -47,7 +47,7 @@ function cleanup
function test_device_fault
{
typeset -a errno=("io" "decompress" "decrypt" "nxio" "dtl" "corrupt")
typeset -a errno=("io" "decompress" "decrypt" "nxio" "dtl" "corrupt" "noop")
for e in ${errno[@]}; do
log_must eval \
"zinject -d $DISK1 -e $e -T read -f 0.001 $TESTPOOL"