From 1129c2b0ad2732f301f696ae2cf98fb063a4c1f8 Mon Sep 17 00:00:00 2001 From: Simon Riggs Date: Sun, 24 Jan 2016 10:22:11 -0800 Subject: [PATCH] Correct comment in GetConflictingVirtualXIDs() We use Share lock because it is safe to do so. --- src/backend/storage/ipc/procarray.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index 813cea21a5..bd0c96124e 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)))