mirror of
https://github.com/postgres/postgres.git
synced 2025-10-24 01:29:19 +03:00
Fix thinko introduced in 2bef06d516 et al.
The callers for GetOldestSafeDecodingTransactionId() all inverted the argument for the argument introduced in2bef06d516. 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-, where2bef06d516was backpatched to.
This commit is contained in:
@@ -327,7 +327,7 @@ CreateInitDecodingContext(char *plugin,
|
|||||||
*/
|
*/
|
||||||
LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
|
LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
|
||||||
|
|
||||||
xmin_horizon = GetOldestSafeDecodingTransactionId(need_full_snapshot);
|
xmin_horizon = GetOldestSafeDecodingTransactionId(!need_full_snapshot);
|
||||||
|
|
||||||
slot->effective_catalog_xmin = xmin_horizon;
|
slot->effective_catalog_xmin = xmin_horizon;
|
||||||
slot->data.catalog_xmin = xmin_horizon;
|
slot->data.catalog_xmin = xmin_horizon;
|
||||||
|
|||||||
@@ -594,7 +594,7 @@ SnapBuildExportSnapshot(SnapBuild *builder)
|
|||||||
TransactionId safeXid;
|
TransactionId safeXid;
|
||||||
|
|
||||||
LWLockAcquire(ProcArrayLock, LW_SHARED);
|
LWLockAcquire(ProcArrayLock, LW_SHARED);
|
||||||
safeXid = GetOldestSafeDecodingTransactionId(true);
|
safeXid = GetOldestSafeDecodingTransactionId(false);
|
||||||
LWLockRelease(ProcArrayLock);
|
LWLockRelease(ProcArrayLock);
|
||||||
|
|
||||||
Assert(TransactionIdPrecedesOrEquals(safeXid, snap->xmin));
|
Assert(TransactionIdPrecedesOrEquals(safeXid, snap->xmin));
|
||||||
|
|||||||
Reference in New Issue
Block a user