From 86f40280e27474c666fea75cc705caeaf94f6346 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Fri, 10 Feb 2012 21:58:46 +0100 Subject: [PATCH] Change iolog overlap assert to a debug dump Signed-off-by: Jens Axboe --- iolog.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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); -- 2.25.1