From 887531f6a6d905d2d432ca1955400ec79a82043c Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Mon, 27 Apr 2020 13:20:38 -0400 Subject: [PATCH] lib/blob: provide better log on blob_load failures Added blobid and metadata page number to the log. Previously only number within particular blobs md chain was displayed. Signed-off-by: Tomasz Zawadzki Change-Id: I8e881c5824c9d2eadca9f3ac8ee2ac9ffc0e5cae Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2058 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/blob/blobstore.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/blob/blobstore.c b/lib/blob/blobstore.c index 1b64cb301..247a0fb7d 100644 --- a/lib/blob/blobstore.c +++ b/lib/blob/blobstore.c @@ -1399,9 +1399,19 @@ _spdk_blob_load_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserrno) struct spdk_blob_md_page *page; int rc; uint32_t crc; + uint32_t current_page; + + if (ctx->num_pages == 1) { + current_page = _spdk_bs_blobid_to_page(blob->id); + } else { + assert(ctx->num_pages != 0); + page = &ctx->pages[ctx->num_pages - 2]; + current_page = page->next; + } if (bserrno) { - SPDK_ERRLOG("Metadata page read failed: %d\n", bserrno); + SPDK_ERRLOG("Metadata page %d read failed for blobid %lu: %d\n", + current_page, blob->id, bserrno); _spdk_blob_load_final(ctx, bserrno); return; } @@ -1409,7 +1419,8 @@ _spdk_blob_load_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserrno) page = &ctx->pages[ctx->num_pages - 1]; crc = _spdk_blob_md_page_calc_crc(page); if (crc != page->crc) { - SPDK_ERRLOG("Metadata page %d crc mismatch\n", ctx->num_pages); + SPDK_ERRLOG("Metadata page %d crc mismatch for blobid %lu\n", + current_page, blob->id); _spdk_blob_load_final(ctx, -EINVAL); return; }