mirror_zfs/tests/zfs-tests/tests/functional
George Amanakis 6839ec6f10
Enable the head_errlog feature to remove errors
In case check_filesystem() does not error out and does not report
an error, remove that error block from error lists and logs
without requiring a scrub. This can happen when the original file and
all snapshots/clones referencing it have been removed.

Otherwise zpool status will still report that "Permanent errors have
been detected..." without actually reporting any of them.

To implement this change the functions introduced in corrective
receive were modified to take into account the head_errlog feature.

Before this change:
=============================
pool: test
 state: ONLINE
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
config:

        NAME                   STATE     READ WRITE CKSUM
        test                   ONLINE       0     0     0
          /home/user/vdev_a    ONLINE       0     0     2

errors: Permanent errors have been detected in the following files:

=============================

After this change:
=============================
  pool: test
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are
unaffected.
action: Determine if the device needs to be replaced, and clear the
errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
config:

        NAME                   STATE     READ WRITE CKSUM
        test                   ONLINE       0     0     0
          /home/user/vdev_a    ONLINE       0     0     2

errors: No known data errors
=============================

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Brian Atkinson <batkinson@lanl.gov>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #14813
2023-05-09 08:53:27 -07:00
..
acl Skip permission checks for extended attributes 2022-12-12 10:21:37 -08:00
alloc_class autoconf: use include directives instead of recursing down test data 2022-05-10 10:20:19 -07:00
append Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
arc Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
atime Enable relatime by default 2022-08-12 14:20:25 -07:00
bootfs Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
btree autoconf: use include directives instead of recursing down test data 2022-05-10 10:20:19 -07:00
cache Enable relatime by default 2022-08-12 14:20:25 -07:00
cachefile Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
casenorm autoconf: use include directives instead of recursing down test data 2022-05-10 10:20:19 -07:00
channel_program Add zfs.sync.snapshot_rename 2022-09-02 13:31:19 -07:00
chattr Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
checksum Add Linux posix_fadvise support 2022-09-08 10:29:41 -07:00
clean_mirror Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
cli_root Enable the head_errlog feature to remove errors 2023-05-09 08:53:27 -07:00
cli_user Add zilstat script to report zil kstats in a user friendly manner 2022-09-02 13:24:07 -07:00
compression Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
cp_files Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
crtime Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
ctime Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
deadman Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
delegate Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
devices Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
dos_attributes Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
events Configure zed's diagnosis engine with vdev properties 2023-01-23 13:14:25 -08:00
exec Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
fadvise Add Linux posix_fadvise support 2022-09-08 10:29:41 -07:00
fallocate ZTS: fallocate tests fail with hard coded values 2022-09-22 16:42:34 -06:00
fault zed: Prevent special vdev to be replaced by hot spare 2022-11-04 11:33:47 -07:00
features Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
grow Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
history Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
hkdf Enable -Wwrite-strings 2022-06-29 14:08:54 -07:00
idmap_mount Support idmapped mount in user namespace 2022-11-08 10:28:56 -08:00
inheritance Add options to zfs redundant_metadata property 2022-10-19 17:07:51 -07:00
inuse Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
io ZTS: Fix io_uring support check 2022-07-26 14:39:23 -07:00
l2arc arc_read()/arc_access() refactoring and cleanup 2022-12-22 12:10:24 -08:00
large_files Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
largest_pool Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
libzfs Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
limits autoconf: use include directives instead of recursing down test data 2022-05-10 10:20:19 -07:00
link_count Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
log_spacemap autoconf: use include directives instead of recursing down test data 2022-05-10 10:20:19 -07:00
migration ZTS: Minor fixes 2023-02-23 17:10:46 -08:00
mmap Fix buffered/direct/mmap I/O race 2023-02-23 10:57:24 -08:00
mmp Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
mount Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
mv_files Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
nestedfs Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
no_space EIO caused by encryption + recursive gang 2023-02-06 09:37:06 -08:00
nopwrite nopwrites on dmu_sync-ed blocks can result in a panic 2022-12-02 17:45:33 -08:00
online_offline Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
pam Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
pool_checkpoint autoconf: use include directives instead of recursing down test data 2022-05-10 10:20:19 -07:00
pool_names Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
poolversion Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
privilege Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
procfs Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
projectquota Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
pyzfs Python3: replace distutils with sysconfig 2022-11-28 11:39:41 -08:00
quota Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
raidz Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
redacted_send Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
redundancy Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
refquota Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
refreserv Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
removal nopwrites on dmu_sync-ed blocks can result in a panic 2022-12-02 17:45:33 -08:00
rename_dirs Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
renameat2 Replace dead opensolaris.org license links 2023-03-14 14:44:01 -07:00
replacement Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
reservation Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
rootpool Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
rsend ZTS: send-c_volume is flaky 2023-04-19 13:20:02 -07:00
scrub_mirror Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
simd Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
slog zfs_rename: support RENAME_* flags 2022-10-28 09:49:20 -07:00
snapshot Replace dead opensolaris.org license links 2023-03-14 14:44:01 -07:00
snapused Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
sparse Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
stat Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
suid Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
tmpfile Fix oversights from 4170ae4e 2022-10-31 10:01:04 -07:00
trim arc_read()/arc_access() refactoring and cleanup 2022-12-22 12:10:24 -08:00
truncate Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
upgrade Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
user_namespace Fix minor issues in namespace delegation support 2022-09-20 15:25:21 -07:00
userquota Handle and detect #13709's unlock regression (#14161) 2022-11-15 14:44:12 -08:00
vdev_zaps Create zap for root vdev 2023-04-20 10:07:56 -07:00
write_dirs Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
xattr Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zpool_influxdb autoconf: use include directives instead of recursing down test data 2022-05-10 10:20:19 -07:00
zvol ZTS: zvol_misc_trim retry busy export 2023-04-20 10:25:16 -07:00