aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2021-08-30 16:29:12 -0400
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2021-08-30 16:29:12 -0400
commit6197d7b5383e69383801a4e1c6eed7b7dbc086a3 (patch)
treeea602047b84e2039cfbc88ccc47940c5f4a22af2
parent8ba3bad4c362ef71bf6a13ecf4ae5e26066a4876 (diff)
downloadpostgresql-6197d7b5383e69383801a4e1c6eed7b7dbc086a3.tar.gz
postgresql-6197d7b5383e69383801a4e1c6eed7b7dbc086a3.zip
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
-rw-r--r--src/backend/access/heap/heapam_handler.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c
index d1e0d53e6e4..5deceeb86e9 100644
--- a/src/backend/access/heap/heapam_handler.c
+++ b/src/backend/access/heap/heapam_handler.c
@@ -422,7 +422,11 @@ tuple_lock_retry:
if (TransactionIdIsValid(SnapshotDirty.xmin))
ereport(ERROR,
(errcode(ERRCODE_DATA_CORRUPTED),
- errmsg_internal("t_xmin is uncommitted in tuple to be updated")));
+ 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