diff options
Diffstat (limited to 'src/backend/storage/ipc/procarray.c')
-rw-r--r-- | src/backend/storage/ipc/procarray.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index 9e8b6756fe0..283517d9566 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -3337,12 +3337,17 @@ GetCurrentVirtualXIDs(TransactionId limitXmin, bool excludeXmin0, * GetConflictingVirtualXIDs -- returns an array of currently active VXIDs. * * Usage is limited to conflict resolution during recovery on standby servers. - * limitXmin is supplied as either latestRemovedXid, or InvalidTransactionId - * in cases where we cannot accurately determine a value for latestRemovedXid. + * limitXmin is supplied as either a cutoff with snapshotConflictHorizon + * semantics, or InvalidTransactionId in cases where caller cannot accurately + * determine a safe snapshotConflictHorizon value. * * If limitXmin is InvalidTransactionId then we want to kill everybody, * so we're not worried if they have a snapshot or not, nor does it really - * matter what type of lock we hold. + * matter what type of lock we hold. Caller must avoid calling here with + * snapshotConflictHorizon style cutoffs that were set to InvalidTransactionId + * during original execution, since that actually indicates that there is + * definitely no need for a recovery conflict (the snapshotConflictHorizon + * convention for InvalidTransactionId values is the opposite of our own!). * * All callers that are checking xmins always now supply a valid and useful * value for limitXmin. The limitXmin is always lower than the lowest |