Skip to content

Fio verify failling when running with verify_backlog  #792

Open
@Vladyyy

Description

@Vladyyy

Hi,

When running the below FIO config with the config below on a raw block device, fio verification fails.

[global]
direct=1
ioengine=libaio
verify=crc32c
verify_fatal=1
verify_dump=1
rw=randrw
iodepth=16
time_based=1
verify_backlog=10
bs=256k
runtime=${RUNTIME}

[/dev/datalog]

When looking at the debug log it seems there there is a race between the write and the read that verifies the data. The read is submitted before the write completes.

io 12112 fill: io_u 0x953f00: off=0x30c0000,len=0x40000,ddir=1,file=/dev/xvdbd
io 12112 prep: io_u 0x953f00: off=0x30c0000,len=0x40000,ddir=1,file=/dev/xvdbd
io 12112 queue: io_u 0x953f00: off=0x30c0000,len=0x40000,ddir=1,file=/dev/xvdbd
….
io 12112 prep: io_u 0x954240: off=0x30c0000,len=0x40000,ddir=0,file=/dev/xvdbd
io 12112 queue: io_u 0x954240: off=0x30c0000,len=0x40000,ddir=0,file=/dev/xvdbd
….
io 12112 complete: io_u 0x954240: off=0x30c0000,len=0x40000,ddir=0,file=/dev/xvdbd


crc32c: verify failed at file /dev/xvdbd offset 51118080, length 262144 (requested block: offset=51118080, length=262144)
/dev/xvdbd: (groupid=0, jobs=1): err=84 (file:io_u.c:2068, func=io_u_queued_complete, error=Invalid or incomplete multibyte or wide character): pid=12112: Fri Jun 14 11:27:37 2019
?io 12112 complete: io_u 0x951ec0: off=0x2b80000,len=0x40000,ddir=0,file=/dev/xvdbd

I'm wondering if the above behavior is expected.
Running with serialize_overlap solves the issue, however my understanding is that verify_backlog should work without specifying serialize_overlap.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needsattentiontriagedIssue cause is understood but a patch is needed to fix it

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions