Re: Verification errors when write phase is aborted midway

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/1/24 06:36, Prasad Boddupalli wrote:
Hello All,

I am running fio verification in two phases:

(1) Write phase, with do_verify=0, on the block device /dev/sdb using
--direct=1 flag. While the write phase is running, the disk is
disconnected physically. Since data got written to the block device,
the journal (state file) was created. After the disk was disconnected,
errors were in-flight writes were reported as follows:

fio: io_u error on file /dev/sdb: Input/output error: write
offset=2112716800, buflen=8192
fio: io_u error on file /dev/sdb: Input/output error: write
offset=2112724992, buflen=8192
fio: io_u error on file /dev/sdb: Input/output error: write
offset=2112733184, buflen=8192
fio: io_u error on file /dev/sdb: Input/output error: write
offset=2112741376, buflen=8192

(2) When I run the verification phase, the verification fails with the
following errors:

verify: bad magic header 0, wanted acca at file /dev/sdb offset
2112716800, length 8192 (requested block: offset=2112716800,
length=8192)
verify: bad magic header 0, wanted acca at file /dev/sdb offset
2112724992, length 8192 (requested block: offset=2112724992,
length=8192)
verify: bad magic header 0, wanted acca at file /dev/sdb offset
2112733184, length 8192 (requested block: offset=2112733184,
length=8192)

The offsets reported in the errors in the verification phase
correspond more or less to the errors reported in the write phase.

I am assuming that information in the state file will correspond to
successful writes, writes that were persisted on the disk and
acknowledged. If so, why was the verification done for data at offsets
whose writes failed in-flight ?

Following are the options to write and verification phase:

write:

' --rw=write'
' --bs=8K'
' --direct=1'
' --ioengine=libaio'
' --iodepth=16'
' --verify=crc32c'
' --filename={device_name}'
' --size={disk_size}G'
' --offset={write_offset}'
' --runtime=20m'
' --time_based=1'
' --do_verify=0'

verify:
' --rw=read'
' --bs=8K'
' --direct=1'
' --ioengine=libaio'
' --iodepth=16'
' --verify=crc32c'
' --filename={device_name}'
' --size={disk_size}G'
' --offset={write_offset}'
' --verify_only=1'
' --verify_state_load=1'
' --verify_dump=1'


When you build fio from source there is a t/fio-verify-state utility to display the contents of the verify state file. Are you able to run it to display the contents of your verify state file?

Are you running on a big ending platform? This feature was broken on such platforms until recently.

https://github.com/vincentkfu/fio-blog/wiki/Testing-on-a-big-endian-platform

Vincent





[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux