We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 0034757 commit 1129c2bCopy full SHA for 1129c2b
src/backend/storage/ipc/procarray.c
@@ -2540,8 +2540,11 @@ GetConflictingVirtualXIDs(TransactionId limitXmin, Oid dbOid)
2540
2541
/*
2542
* We ignore an invalid pxmin because this means that backend has
2543
- * no snapshot and cannot get another one while we hold exclusive
2544
- * lock.
+ * no snapshot currently. We hold a Share lock to avoid contention
+ * with users taking snapshots. That is not a problem because
2545
+ * the current xmin is always at least one higher than the latest
2546
+ * removed xid, so any new snapshot would never conflict with the
2547
+ * test here.
2548
*/
2549
if (!TransactionIdIsValid(limitXmin) ||
2550
(TransactionIdIsValid(pxmin) && !TransactionIdFollows(pxmin, limitXmin)))
0 commit comments