Skip to content

Commit

Permalink
Updating dio_read_verify ZTS test
Browse files Browse the repository at this point in the history
There was a recent CI ZTS test failure on FreeBSD 14 for the
dio_read_verify test case. The failure reported there was no ARC reads
while the buffer wes being manipulated. All checksum verify errors for
Direct I/O reads are rerouted through the ARC, so there should be ARC
reads accounted for. In order to help debug any future failures of this
test case, the order of checks has been changed. First there is a check
for DIO verify failures for the reads and then ARC read counts are
checked.

This PR also contains general cleanup of the comments in the test
script.

Signed-off-by: Brian Atkinson <[email protected]>
  • Loading branch information
bwatkinson committed Dec 3, 2024
1 parent f29dcc2 commit e85ba3d
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions tests/zfs-tests/tests/functional/direct/dio_read_verify.ksh
Original file line number Diff line number Diff line change
Expand Up @@ -82,25 +82,28 @@ for type in "" "mirror" "raidz" "draid"; do
log_must manipulate_user_buffer -f "$mntpnt/direct-write.iso" \
-n $NUMBLOCKS -b $BS -r

# Getting new Direct I/O and ARC Write counts.
# Getting new Direct I/O and ARC read counts.
curr_dio_rd=$(get_iostats_stat $TESTPOOL1 direct_read_count)
curr_arc_rd=$(get_iostats_stat $TESTPOOL1 arc_read_count)
total_dio_rd=$((curr_dio_rd - prev_dio_rd))
total_arc_rd=$((curr_arc_rd - prev_arc_rd))

log_note "Making sure there are no checksum errors with the ZPool"
log_must check_pool_status $TESTPOOL "errors" "No known data errors"

log_note "Making sure we have Direct I/O and ARC reads logged"
log_note "Making sure we have Direct I/O reads logged"
if [[ $total_dio_rd -lt 1 ]]; then
log_fail "No Direct I/O reads $total_dio_rd"
fi

log_note "Making sure there are no checksum errors with the ZPool"
log_must check_pool_status $TESTPOOL "errors" "No known data errors"

log_note "Making sure we have Direct I/O read checksum verifies with ZPool"
check_dio_chksum_verify_failures "$TESTPOOL1" "$vdev_type" 1 "rd"

log_note "Making sure we have ARC reads logged"
if [[ $total_arc_rd -lt 1 ]]; then
log_fail "No ARC reads $total_arc_rd"
fi

log_note "Making sure we have Direct I/O write checksum verifies with ZPool"
check_dio_chksum_verify_failures "$TESTPOOL1" "$vdev_type" 1 "rd"
destroy_pool $TESTPOOL1
done

Expand Down

0 comments on commit e85ba3d

Please sign in to comment.