From 0a377d08e3b7330cc8cbbd10fa4c23cc82e822ed Mon Sep 17 00:00:00 2001 From: xue_meng_en <1836611252@qq.com> Date: Mon, 5 Jun 2023 21:13:20 +0800 Subject: [PATCH] =?UTF-8?q?cm=5Fagent=E8=BF=9E=E6=8E=A5=E6=97=A0=E9=9C=80?= =?UTF-8?q?=E7=AD=89=E5=BE=85=E8=8E=B7=E5=8F=96snapshot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gausskernel/storage/ipc/procarray.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/gausskernel/storage/ipc/procarray.cpp b/src/gausskernel/storage/ipc/procarray.cpp index ceb079a78a..933d898db4 100755 --- a/src/gausskernel/storage/ipc/procarray.cpp +++ b/src/gausskernel/storage/ipc/procarray.cpp @@ -2018,10 +2018,13 @@ RETRY: } #ifndef ENABLE_MULTIPLE_NODES bool retry_get = false; + uint64 retry_count = 0; + const static uint64 WAIT_COUNT = 0x7FFFF; /* reset xmin before acquiring lwlock, in case blocking redo */ t_thrd.pgxact->xmin = InvalidTransactionId; RETRY_GET: - if (snapshot->takenDuringRecovery && !StreamThreadAmI()) { + if (snapshot->takenDuringRecovery && !StreamThreadAmI() && + !u_sess->proc_cxt.clientIsCMAgent) { if (InterruptPending) { (void)pgstat_report_waitstatus(oldStatus); } @@ -2030,7 +2033,17 @@ RETRY_GET: pg_usleep(100L); } XLogRecPtr redoEndLsn = GetXLogReplayRecPtr(NULL, NULL); - if (u_sess->proc_cxt.clientIsCMAgent || (u_sess->proc_cxt.gsqlRemainCopyNum > 0 && retry_get)) { + retry_count++; + if ((retry_count & WAIT_COUNT) == WAIT_COUNT) { + ereport(LOG, (errmsg("standbyRedoCleanupXmin = %ld, " + "standbyRedoCleanupXminLsn = %ld, " + "standbyXmin = %ld, redoEndLsn = %ld", + t_thrd.xact_cxt.ShmemVariableCache->standbyRedoCleanupXmin, + t_thrd.xact_cxt.ShmemVariableCache->standbyRedoCleanupXminLsn, + t_thrd.xact_cxt.ShmemVariableCache->standbyXmin, + redoEndLsn))); + } + if ((u_sess->proc_cxt.gsqlRemainCopyNum > 0 && retry_get)) { LWLockAcquire(ProcArrayLock, LW_SHARED); if ((t_thrd.xact_cxt.ShmemVariableCache->standbyXmin <= t_thrd.xact_cxt.ShmemVariableCache->standbyRedoCleanupXmin) -- Gitee