Skip to content

Commit f6661d3

Browse files
committed
Fix use of wrong index in ComputeXidHorizons().
This bug, recently introduced in 941697c, at least lead to vacuum failing because it found tuples inserted by a running transaction, but below the freeze limit. The freeze limit in turn is directly affected by the aforementioned bug. Thanks to Tom Lane figuring how to make the bug reproducible. We should add a few more assertions to make sure this type of bug isn't as hard to notice, but it's not yet clear how to best do so. Co-Diagnosed-By: Tom Lane <tgl@sss.pgh.pa.us> Author: Andres Freund <andres@anarazel.de> Discussion: https://postgr.es/m/1013484.1597609043@sss.pgh.pa.us
1 parent 49967da commit f6661d3

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/backend/storage/ipc/procarray.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1663,7 +1663,7 @@ ComputeXidHorizons(ComputeXidHorizonsResult *h)
16631663
TransactionId xmin;
16641664

16651665
/* Fetch xid just once - see GetNewTransactionId */
1666-
xid = UINT32_ACCESS_ONCE(other_xids[pgprocno]);
1666+
xid = UINT32_ACCESS_ONCE(other_xids[index]);
16671667
xmin = UINT32_ACCESS_ONCE(proc->xmin);
16681668

16691669
/*

0 commit comments

Comments
 (0)