summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/storage/ipc/procarray.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c
index f6f50be01d..031a6a26a0 100644
--- a/src/backend/storage/ipc/procarray.c
+++ b/src/backend/storage/ipc/procarray.c
@@ -2561,8 +2561,15 @@ KnownAssignedXidsRemove(TransactionId xid, bool report_error)
if (!found && report_error)
{
- KnownAssignedXidsDisplay(LOG);
- elog(ERROR, "cannot remove KnownAssignedXid %u", xid);
+ /*
+ * Check to see whether we have updated subtrans with this xid.
+ * If we did, its OK that it is no longer present in KnownAssignedXids
+ */
+ if (!TransactionIdIsValid(SubTransGetParent(xid)))
+ {
+ KnownAssignedXidsDisplay(LOG);
+ elog(ERROR, "cannot remove KnownAssignedXid %u", xid);
+ }
}
}