From f6cdf958ca090bfc726716a66f536991a0299d4c Mon Sep 17 00:00:00 2001 From: MuJinqiang <1165845907@qq.com> Date: Mon, 1 Mar 2021 23:23:23 +0800 Subject: [PATCH] fix delay apply bug --- src/gausskernel/storage/access/transam/xlog.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gausskernel/storage/access/transam/xlog.cpp b/src/gausskernel/storage/access/transam/xlog.cpp index 07e8fa264..c4074264a 100755 --- a/src/gausskernel/storage/access/transam/xlog.cpp +++ b/src/gausskernel/storage/access/transam/xlog.cpp @@ -7628,7 +7628,7 @@ static bool RecoveryApplyDelay(const XLogReaderState *record) } xactInfo = XLogRecGetInfo(record) & (~XLR_INFO_MASK); - if (xactInfo == XLOG_XACT_COMMIT) { + if ((xactInfo == XLOG_XACT_COMMIT) || (xactInfo == XLOG_STANDBY_CSN_COMMITTING)) { xtime = ((xl_xact_commit *)XLogRecGetData(record))->xact_time; } else if (xactInfo == XLOG_XACT_COMMIT_COMPACT) { xtime = ((xl_xact_commit_compact *)XLogRecGetData(record))->xact_time; @@ -7659,6 +7659,9 @@ static bool RecoveryApplyDelay(const XLogReaderState *record) TimestampDifference(GetCurrentTimestamp(), t_thrd.xlog_cxt.recoveryDelayUntilTime, &secs, µsecs); + /* To clear LSNMarker item that has not been processed in pageworker*/ + ProcTxnWorkLoad(false); + /* NB: We're ignoring waits below min_apply_delay's resolution. */ if (secs <= 0 && microsecs / 1000 <= 0) { break;