If fio is run against a zoned device that has any zones in OFFLINE condition, the following assertion is raised - fio: zbd.c:473: parse_zone_info: Assertion `z->wp <= z->start + zone_size' failed. This happens because offline zones have no valid write pointer and it is reported by libzbc and blkzoned as (uint64_t)(-1). To avoid violating this assertion, set the write pointer in all offline zones to point at the start of the zone. Signed-off-by: Dmitry Fomichev <dmitry.fomichev@xxxxxxx> --- engines/libzbc.c | 3 ++- oslib/linux-blkzoned.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/engines/libzbc.c b/engines/libzbc.c index 4b900233..1b362ca0 100644 --- a/engines/libzbc.c +++ b/engines/libzbc.c @@ -283,7 +283,8 @@ static int libzbc_report_zones(struct thread_data *td, struct fio_file *f, default: /* Treat all these conditions as offline (don't use!) */ zbdz->cond = ZBD_ZONE_COND_OFFLINE; - break; + zbdz->wp = zbdz->start; + continue; } } diff --git a/oslib/linux-blkzoned.c b/oslib/linux-blkzoned.c index 0a8a577a..eee327dd 100644 --- a/oslib/linux-blkzoned.c +++ b/oslib/linux-blkzoned.c @@ -203,7 +203,8 @@ int blkzoned_report_zones(struct thread_data *td, struct fio_file *f, default: /* Treat all these conditions as offline (don't use!) */ z->cond = ZBD_ZONE_COND_OFFLINE; - break; + z->wp = z->start; + continue; } } -- 2.21.0