-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
OpenZFS 9403 - assertion failed in arc_buf_destroy() when concurrentl…
…y reading block with checksum error Porting notes: * zio_decompress_fail_fraction has been set to (1 << 18) by default in ztest. * The ability to zinject decompression errors has been added, but this only works at the zio_decompress() level, where we have all of the inf we need to match against the user's zinject options. * The decompress_fault test has been added to test the new zinject functionality Authored by: Matt Ahrens <mahrens@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Paul Dagnelie <pcd@delphix.com> Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Approved by: Matt Ahrens <mahrens@delphix.com> Ported-by: Tom Caputi <tcaputi@datto.com> OpenZFS-issue: https://illumos.org/issues/9403 OpenZFS-commit: openzfs/openzfs@fa98e487a9
- Loading branch information
Tom Caputi
committed
Aug 24, 2018
1 parent
4338c5c
commit c27703e
Showing
12 changed files
with
172 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
55 changes: 55 additions & 0 deletions
55
tests/zfs-tests/tests/functional/fault/decompress_fault.ksh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#!/bin/ksh -p | ||
# | ||
# This file and its contents are supplied under the terms of the | ||
# Common Development and Distribution License ("CDDL"), version 1.0. | ||
# You may only use this file in accordance with the terms of version | ||
# 1.0 of the CDDL. | ||
# | ||
# A full copy of the text of the CDDL should have accompanied this | ||
# source. A copy of the CDDL is also available via the Internet at | ||
# http://www.illumos.org/license/CDDL. | ||
# | ||
|
||
# | ||
# Copyright (c) 2018 by Datto Inc. | ||
# All rights reserved. | ||
# | ||
|
||
. $STF_SUITE/include/libtest.shlib | ||
. $STF_SUITE/tests/functional/fault/fault.cfg | ||
|
||
# | ||
# DESCRIPTION: | ||
# Test that injected decompression errors are handled correctly. | ||
# | ||
# STRATEGY: | ||
# 1. Create an compressed dataset with a test file | ||
# 2. Inject decompression errors on the file 20% of the time | ||
# 3. Read the file to confirm that errors are handled correctly | ||
# 4. Confirm that the decompression injection was added to the ZED logs | ||
# | ||
|
||
log_assert "Testing that injected decompression errors are handled correctly" | ||
|
||
function cleanup | ||
{ | ||
log_must eval "echo 1 > /sys/module/zfs/parameters/zfs_compressed_arc_enabled" | ||
log_must zinject -c all | ||
default_cleanup_noexit | ||
} | ||
|
||
log_onexit cleanup | ||
|
||
default_mirror_setup_noexit $DISK1 $DISK2 | ||
log_must eval "echo 0 > /sys/module/zfs/parameters/zfs_compressed_arc_enabled" | ||
log_must zfs create -o compression=on $TESTPOOL/fs | ||
mntpt=$(get_prop mountpoint $TESTPOOL/fs) | ||
write_compressible $mntpt 32m 1 0 "testfile" | ||
log_must sync | ||
log_must zfs umount $TESTPOOL/fs | ||
log_must zfs mount $TESTPOOL/fs | ||
log_must zinject -a -t data -e decompress -f 20 $mntpt/testfile.0 | ||
log_mustnot eval "cat $mntpt/testfile.0 > /dev/null" | ||
log_must eval "zpool events $TESTPOOL | grep -q 'data'" | ||
|
||
log_pass "Injected decompression errors are handled correctly" |
Oops, something went wrong.