]> granicus.if.org Git - postgresql/commitdiff
Fix thinko introduced in 2bef06d516460 et al.
authorAndres Freund <andres@anarazel.de>
Sun, 6 Aug 2017 03:52:53 +0000 (20:52 -0700)
committerAndres Freund <andres@anarazel.de>
Sun, 6 Aug 2017 21:21:22 +0000 (14:21 -0700)
The callers for GetOldestSafeDecodingTransactionId() all inverted the
argument for the argument introduced in 2bef06d516460. Luckily this
appears to be inconsequential for the moment, as we wait for
concurrent in-progress transaction when assembling a
snapshot. Additionally this could only make a difference when adding a
second logical slot, because only a pre-existing slot could cause an
issue by lowering the returned xid dangerously much.

Reported-By: Antonin Houska
Discussion: https://postgr.es/m/32704.1496993134@localhost
Backport: 9.4-, where 2bef06d516460 was backpatched to.

src/backend/replication/logical/logical.c
src/backend/replication/logical/snapbuild.c

index 1b92c056b89af8c8f90153a2193313aa6d5329e1..855f0035410b36e3f07c9d7ec71a9dcc8b744b0a 100644 (file)
@@ -327,7 +327,7 @@ CreateInitDecodingContext(char *plugin,
         */
        LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
 
-       xmin_horizon = GetOldestSafeDecodingTransactionId(need_full_snapshot);
+       xmin_horizon = GetOldestSafeDecodingTransactionId(!need_full_snapshot);
 
        slot->effective_catalog_xmin = xmin_horizon;
        slot->data.catalog_xmin = xmin_horizon;
index 981f3978323ea5cbac40e4a7ab25cac417c7bcbb..f4b1fea0f8459e8777337884a7446cd68cf96d3d 100644 (file)
@@ -594,7 +594,7 @@ SnapBuildExportSnapshot(SnapBuild *builder)
                TransactionId safeXid;
 
                LWLockAcquire(ProcArrayLock, LW_SHARED);
-               safeXid = GetOldestSafeDecodingTransactionId(true);
+               safeXid = GetOldestSafeDecodingTransactionId(false);
                LWLockRelease(ProcArrayLock);
 
                Assert(TransactionIdPrecedesOrEquals(safeXid, snap->xmin));