fix-KnownAssignedXidsRemoveMany-1.patch

text/x-diff

Filename: fix-KnownAssignedXidsRemoveMany-1.patch
Type: text/x-diff
Part: 0
Message: Re: Assertion failure twophase.c (testing HS/SR)

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
File+
src/backend/storage/ipc/procarray.c 2 1
diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c
index 12de877..4691c51 100644
--- a/src/backend/storage/ipc/procarray.c
+++ b/src/backend/storage/ipc/procarray.c
@@ -2317,6 +2317,7 @@ ExpireAllKnownAssignedTransactionIds(void)
 void
 ExpireOldKnownAssignedTransactionIds(TransactionId xid)
 {
+	Assert(TransactionIdIsValid(xid));
 	LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
 	KnownAssignedXidsRemoveMany(xid, true);
 	LWLockRelease(ProcArrayLock);
@@ -2512,7 +2513,7 @@ KnownAssignedXidsRemoveMany(TransactionId xid, bool keepPreparedXacts)
 
 		if (!TransactionIdIsValid(xid) || TransactionIdPrecedes(removeXid, xid))
 		{
-			if (keepPreparedXacts && StandbyTransactionIdIsPrepared(xid))
+			if (keepPreparedXacts && StandbyTransactionIdIsPrepared(removeXid))
 				continue;
 			else
 			{