X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=iolog.c;h=c1764bac76f8e56568d77af112353d31ccc3d12f;hp=1d61ba23ac3ba82b6334ad45dc0a16aee7babd49;hb=86f40280e27474c666fea75cc705caeaf94f6346;hpb=f1d64553c9dc0e99c038cf3a5f0cb2a50026e7d3 diff --git a/iolog.c b/iolog.c index 1d61ba23..c1764bac 100644 --- a/iolog.c +++ b/iolog.c @@ -176,6 +176,12 @@ void prune_io_piece_log(struct thread_data *td) } } +static void dump_ipo(struct io_piece *ipo, const char *msg) +{ + printf("%s\n", msg); + printf("\toffset %llu, len %lu, fl %x, ddir %d\n", ipo->offset, ipo->len, ipo->flags, ipo->ddir); +} + /* * log a successful write, so we can unwind the log for verify */ @@ -239,7 +245,12 @@ restart: else if (ipo->offset > __ipo->offset) p = &(*p)->rb_right; else { - assert(ipo->len == __ipo->len); + if (ipo->len != __ipo->len) { + log_err("fio: unexpected ipo overlap!\n"); + log_err("fio: please report this issue.\n"); + dump_ipo(ipo, "ipo"); + dump_ipo(__ipo, "__ipo"); + } td->io_hist_len--; rb_erase(parent, &td->io_hist_tree); remove_trim_entry(td, __ipo);