From 2ee8de1eeb598611d730cae18722f513d947322a Mon Sep 17 00:00:00 2001 From: xiong_xjun Date: Wed, 12 Aug 2020 10:31:01 +0800 Subject: [PATCH] fix could not open csnlog file when do vacuum --- src/gausskernel/storage/ipc/procarray.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gausskernel/storage/ipc/procarray.cpp b/src/gausskernel/storage/ipc/procarray.cpp index 5e7d069cda..9264425504 100644 --- a/src/gausskernel/storage/ipc/procarray.cpp +++ b/src/gausskernel/storage/ipc/procarray.cpp @@ -4054,6 +4054,12 @@ void CalculateLocalLatestSnapshot(bool forceCalc) volatile PGXACT* pgxact = &g_instance.proc_base_all_xacts[pgprocno]; TransactionId xid; + /* Update globalxmin to be the smallest valid xmin */ + xid = pgxact->xmin; /* fetch just once */ + + if (TransactionIdIsNormal(xid) && TransactionIdPrecedes(xid, globalxmin)) + globalxmin = xid; + /* * Backend is doing logical decoding which manages xmin * separately, check below. @@ -4065,12 +4071,6 @@ void CalculateLocalLatestSnapshot(bool forceCalc) if (pgxact->vacuumFlags & PROC_IN_VACUUM) continue; - /* Update globalxmin to be the smallest valid xmin */ - xid = pgxact->xmin; /* fetch just once */ - - if (TransactionIdIsNormal(xid) && TransactionIdPrecedes(xid, globalxmin)) - globalxmin = xid; - /* Fetch xid just once - see GetNewTransactionId */ xid = pgxact->xid; -- Gitee