From: Darrick J. Wong <djwong@xxxxxxxxxx> While auditing the fuzz tester code, I noticed there were numerous problems with the offline repair strategy -- the stages of the strategy are not consistently logged to the kernel log, we don't actually check that repair -n finds the fuzzed field, and since this is an offline test, we don't need or want to mount or try to run the online scrubber. Also, disable prefetch to reduce the chance of an OOM kill. Rework the error messages to make reading the golden output easier. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> --- common/fuzzy | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/common/fuzzy b/common/fuzzy index 8b52d289d1..07f597627c 100644 --- a/common/fuzzy +++ b/common/fuzzy @@ -246,37 +246,26 @@ __scratch_xfs_fuzz_field_online() { __scratch_xfs_fuzz_field_offline() { local fuzz_action="$1" - # Mount or else we can't do anything offline - echo "+ Mount filesystem to try offline repair" - _try_scratch_mount 2>&1 - res=$? - if [ $res -ne 0 ]; then - (>&2 echo "mount failed ($res) with ${fuzz_action}.") - return 0 - fi - - # Make sure online scrub will catch whatever we fuzzed - echo "++ Online scrub" - _scratch_scrub -n -a 1 -e continue 2>&1 + # Make sure offline scrub will catch whatever we fuzzed + __fuzz_notify "+ Detect fuzzed field (offline)" + _scratch_xfs_repair -P -n 2>&1 res=$? test $res -eq 0 && \ - (>&2 echo "scrub didn't fail with ${fuzz_action}.") - - __scratch_xfs_fuzz_unmount + (>&2 echo "${fuzz_action}: offline scrub didn't fail.") # Repair the filesystem offline - echo "+ Try to repair the filesystem offline" - _repair_scratch_fs 2>&1 + __fuzz_notify "+ Try to repair the filesystem (offline)" + _repair_scratch_fs -P 2>&1 res=$? test $res -ne 0 && \ - (>&2 echo "offline repair failed ($res) with ${fuzz_action}.") + (>&2 echo "${fuzz_action}: offline repair failed ($res).") # See if repair finds a clean fs - echo "+ Make sure error is gone (offline)" - _scratch_xfs_repair -n 2>&1 + __fuzz_notify "+ Make sure error is gone (offline)" + _scratch_xfs_repair -P -n 2>&1 res=$? test $res -ne 0 && \ - (>&2 echo "offline re-scrub failed ($res) with ${fuzz_action}.") + (>&2 echo "${fuzz_action}: offline re-scrub failed ($res).") return 0 }