Commit e0f9e2b6 authored by Heikki Linnakangas's avatar Heikki Linnakangas

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.
parent daaeac88
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
* *
* *
* IDENTIFICATION * 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) ...@@ -448,6 +448,7 @@ ProcArrayApplyRecoveryInfo(RunningTransactions running)
/* /*
* Remove stale transactions, if any. * Remove stale transactions, if any.
*/ */
Assert(TransactionIdIsValid(running->oldestRunningXid));
ExpireOldKnownAssignedTransactionIds(running->oldestRunningXid); ExpireOldKnownAssignedTransactionIds(running->oldestRunningXid);
StandbyReleaseOldLocks(running->oldestRunningXid); StandbyReleaseOldLocks(running->oldestRunningXid);
...@@ -2518,7 +2519,7 @@ KnownAssignedXidsRemoveMany(TransactionId xid, bool keepPreparedXacts) ...@@ -2518,7 +2519,7 @@ KnownAssignedXidsRemoveMany(TransactionId xid, bool keepPreparedXacts)
if (!TransactionIdIsValid(xid) || TransactionIdPrecedes(removeXid, xid)) if (!TransactionIdIsValid(xid) || TransactionIdPrecedes(removeXid, xid))
{ {
if (keepPreparedXacts && StandbyTransactionIdIsPrepared(xid)) if (keepPreparedXacts && StandbyTransactionIdIsPrepared(removeXid))
continue; continue;
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment