From 134754ef6c0e82b2e654de6e9b13c9a1a9a3b673 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Wed, 8 May 2019 14:44:32 +1200 Subject: [PATCH] Fix SxactGlobalXmin tracking. Commit bb16aba50 broke the code that maintains SxactGlobalXmin, so that could get stuck. When it stops advancing, later transactions effectively leak resources. Reported-by: Tom Lane Discussion: https://postgr.es/m/16170.1557251214%40sss.pgh.pa.us --- src/backend/storage/lmgr/predicate.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/backend/storage/lmgr/predicate.c b/src/backend/storage/lmgr/predicate.c index 4e4d04bae37..15ef221c143 100644 --- a/src/backend/storage/lmgr/predicate.c +++ b/src/backend/storage/lmgr/predicate.c @@ -3635,8 +3635,7 @@ ReleasePredicateLocks(bool isCommit, bool isReadOnlySafe) * was launched. */ needToClear = false; - if (!isReadOnlySafe && - TransactionIdEquals(MySerializableXact->xmin, PredXact->SxactGlobalXmin)) + if (TransactionIdEquals(MySerializableXact->xmin, PredXact->SxactGlobalXmin)) { Assert(PredXact->SxactGlobalXminCount > 0); if (--(PredXact->SxactGlobalXminCount) == 0) -- 2.21.0