From e0f9e2b648c8e6f237549c353b7b3179654451d1 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Thu, 11 Mar 2010 09:26:59 +0000 Subject: [PATCH] Fix bug in KnownAssignedXidsMany(). I saw this when looking at the assertion failure reported by Erik Rijkers, but this alone doesn't explain the failure. --- src/backend/storage/ipc/procarray.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index baa2e43f50..e927759258 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -37,7 +37,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.60 2010/02/26 02:01:00 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.61 2010/03/11 09:26:59 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -448,6 +448,7 @@ ProcArrayApplyRecoveryInfo(RunningTransactions running) /* * Remove stale transactions, if any. */ + Assert(TransactionIdIsValid(running->oldestRunningXid)); ExpireOldKnownAssignedTransactionIds(running->oldestRunningXid); StandbyReleaseOldLocks(running->oldestRunningXid); @@ -2518,7 +2519,7 @@ KnownAssignedXidsRemoveMany(TransactionId xid, bool keepPreparedXacts) if (!TransactionIdIsValid(xid) || TransactionIdPrecedes(removeXid, xid)) { - if (keepPreparedXacts && StandbyTransactionIdIsPrepared(xid)) + if (keepPreparedXacts && StandbyTransactionIdIsPrepared(removeXid)) continue; else { -- 2.11.0