From 91904cdb87bfdc7f7b925a2d15701a83251631f2 Mon Sep 17 00:00:00 2001 From: "suyu.cmj" Date: Mon, 5 Jun 2023 09:28:17 +0000 Subject: [PATCH] Fix missing initialization of delayChkptEnd Add initialization of delayChkptEnd to prevent new backend from using the previous value. --- src/backend/storage/ipc/procarray.c | 1 + src/backend/storage/lmgr/proc.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index 4e7e0934cb..b8b4ec00f0 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -947,6 +947,7 @@ ProcArrayClearTransaction(PGPROC *proc) Assert(!(proc->statusFlags & PROC_VACUUM_STATE_MASK)); Assert(!proc->delayChkpt); + Assert(!proc->delayChkptEnd); /* * Need to increment completion count even though transaction hasn't diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c index 55716ccaf5..4cefa306f6 100644 --- a/src/backend/storage/lmgr/proc.c +++ b/src/backend/storage/lmgr/proc.c @@ -394,7 +394,8 @@ InitProcess(void) MyProc->roleId = InvalidOid; MyProc->tempNamespaceId = InvalidOid; MyProc->isBackgroundWorker = IsBackgroundWorker; - MyProc->delayChkpt = 0; + MyProc->delayChkpt = false; + MyProc->delayChkptEnd = false; MyProc->statusFlags = 0; /* NB -- autovac launcher intentionally does not set IS_AUTOVACUUM */ if (IsAutoVacuumWorkerProcess()) @@ -579,7 +580,8 @@ InitAuxiliaryProcess(void) MyProc->roleId = InvalidOid; MyProc->tempNamespaceId = InvalidOid; MyProc->isBackgroundWorker = IsBackgroundWorker; - MyProc->delayChkpt = 0; + MyProc->delayChkpt = false; + MyProc->delayChkptEnd = false; MyProc->statusFlags = 0; MyProc->lwWaiting = false; MyProc->lwWaitMode = 0; -- 2.19.1.6.gb485710b