diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index f6f50be..031a6a2 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); + } } }