diff options
-rw-r--r-- | src/backend/storage/ipc/procarray.c | 11 |
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); + } } } |