diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c index 8c3d84fbf23..788b961ef0e 100644 --- a/src/backend/access/transam/varsup.c +++ b/src/backend/access/transam/varsup.c @@ -159,7 +159,8 @@ GetNewTransactionId(bool isSubXact) /* Re-acquire lock and start over */ LWLockAcquire(XidGenLock, LW_EXCLUSIVE); - xid = XidFromFullTransactionId(ShmemVariableCache->nextFullXid); + full_xid = ShmemVariableCache->nextFullXid; + xid = XidFromFullTransactionId(full_xid); } /* diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 816fd626ece..8522a2f51c5 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -5151,7 +5151,7 @@ EstimateTransactionStateSpace(void) nxids = add_size(nxids, s->nChildXids); } - return add_size(size, sizeof(SerializedTransactionState) * nxids); + return add_size(size, mul_size(sizeof(TransactionId), nxids)); } /*