diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c index c4ca633918..b31906cbcf 100644 --- a/contrib/amcheck/verify_nbtree.c +++ b/contrib/amcheck/verify_nbtree.c @@ -721,7 +721,7 @@ bt_check_level_from_leftmost(BtreeCheckState *state, BtreeLevel level) else ereport(DEBUG1, (errcode(ERRCODE_NO_DATA), - errmsg_internal("block %u of index \"%s\" ignored", + errmsg_internal("block %u of index \"%s\" concurrently deleted", current, RelationGetRelationName(state->rel)))); goto nextpage; } @@ -1592,14 +1592,18 @@ bt_right_page_check_scankey(BtreeCheckState *state) if (!P_IGNORE(opaque) || P_RIGHTMOST(opaque)) break; - /* We landed on a deleted page, so step right to find a live page */ - targetnext = opaque->btpo_next; - ereport(DEBUG1, + /* + * We landed on a deleted or half-dead sibling page. Step right until + * we locate a live sibling page. + */ + ereport(DEBUG2, (errcode(ERRCODE_NO_DATA), - errmsg_internal("level %u leftmost page of index \"%s\" was found deleted or half dead", - opaque->btpo_level, RelationGetRelationName(state->rel)), + errmsg_internal("level %u sibling page in block %u of index \"%s\" was found deleted or half dead", + opaque->btpo_level, targetnext, RelationGetRelationName(state->rel)), errdetail_internal("Deleted page found when building scankey from right sibling."))); + targetnext = opaque->btpo_next; + /* Be slightly more pro-active in freeing this memory, just in case */ pfree(rightpage); } @@ -1722,7 +1726,7 @@ bt_right_page_check_scankey(BtreeCheckState *state) * possible that it's an internal page with only a negative infinity * item. */ - ereport(DEBUG1, + ereport(DEBUG2, (errcode(ERRCODE_NO_DATA), errmsg_internal("%s block %u of index \"%s\" has no first data item", P_ISLEAF(opaque) ? "leaf" : "internal", targetnext,