From: Simon Riggs Date: Sun, 24 Jan 2016 18:22:11 +0000 (-0800) Subject: Correct comment in GetConflictingVirtualXIDs() X-Git-Tag: REL9_6_BETA1~821 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1129c2b0ad2732f301f696ae2cf98fb063a4c1f8;p=thirdparty%2Fpostgresql.git Correct comment in GetConflictingVirtualXIDs() We use Share lock because it is safe to do so. --- diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index 813cea21a5d..bd0c96124e3 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -2540,8 +2540,11 @@ GetConflictingVirtualXIDs(TransactionId limitXmin, Oid dbOid) /* * We ignore an invalid pxmin because this means that backend has - * no snapshot and cannot get another one while we hold exclusive - * lock. + * no snapshot currently. We hold a Share lock to avoid contention + * with users taking snapshots. That is not a problem because + * the current xmin is always at least one higher than the latest + * removed xid, so any new snapshot would never conflict with the + * test here. */ if (!TransactionIdIsValid(limitXmin) || (TransactionIdIsValid(pxmin) && !TransactionIdFollows(pxmin, limitXmin)))