postgres.git / summary / log / commit / refs

commit    fa8ae19bea7f03a304705aba72b312cc2cea0d75
Author:   Alvaro Herrera <alvherre@alvh.no-ip.org>
Date:     Mon Aug 30 20:29:12 2021 +0000

    Report tuple address in data-corruption error message
    
    Most data-corruption reports mention the location of the problem, but
    this one failed to.  Add it.
    
    Backpatch all the way back.  In 12 and older, also assign the
    ERRCODE_DATA_CORRUPTED error code as was done in commit fd6ec93bf890 for
    13 and later.
    
    Discussion: https://postgr.es/m/202108191637.oqyzrdtnheir@alvherre.pgsql


src/backend/access/heap/heapam_handler.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c index 9fe426344b1..5add38d88e3 100644 --- a/src/backend/access/heap/heapam_handler.c +++ b/src/backend/access/heap/heapam_handler.c @@ -426,7 +426,13 @@ tuple_lock_retry: /* otherwise xmin should not be dirty... */ if (TransactionIdIsValid(SnapshotDirty.xmin)) - elog(ERROR, "t_xmin is uncommitted in tuple to be updated"); + ereport(ERROR, + (errcode(ERRCODE_DATA_CORRUPTED), + errmsg_internal("t_xmin %u is uncommitted in tuple (%u,%u) to be updated in table \"%s\"", + SnapshotDirty.xmin, + ItemPointerGetBlockNumber(&tuple->t_self), + ItemPointerGetOffsetNumber(&tuple->t_self), + RelationGetRelationName(relation)))); /* * If tuple is being updated by other transaction then we [parent: a3f6088c0298]