From 1eadfbdd7eb0679ba8d45787aa8b2f06e76de20a Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Mon, 6 Feb 2023 11:16:03 -0500 Subject: [PATCH] Revert "Disable STARTUP_PROGRESS_TIMEOUT in standby mode." This reverts commit 98e7234242a652497c99d4d0d6f2bf9a75d4e921. I forgot that we're about to wrap a release, and this fix isn't critical enough to justify committing it right before we wrap a release. Discussion: http://postgr.es/m/2676424.1675700113@sss.pgh.pa.us --- src/backend/access/transam/xlogrecovery.c | 25 +++---------------- src/backend/postmaster/startup.c | 30 +++-------------------- src/include/postmaster/startup.h | 2 -- 3 files changed, 6 insertions(+), 51 deletions(-) diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c index a0e984aae0..958e85366c 100644 --- a/src/backend/access/transam/xlogrecovery.c +++ b/src/backend/access/transam/xlogrecovery.c @@ -383,7 +383,6 @@ static bool recoveryStopAfter; /* prototypes for local functions */ static void ApplyWalRecord(XLogReaderState *xlogreader, XLogRecord *record, TimeLineID *replayTLI); -static void EnableStandbyMode(void); static void readRecoverySignalFile(void); static void validateRecoveryParameters(void); static bool read_backup_label(XLogRecPtr *checkPointLoc, @@ -468,24 +467,6 @@ XLogRecoveryShmemInit(void) ConditionVariableInit(&XLogRecoveryCtl->recoveryNotPausedCV); } -/* - * A thin wrapper to enable StandbyMode and do other preparatory work as - * needed. - */ -static void -EnableStandbyMode(void) -{ - StandbyMode = true; - - /* - * To avoid server log bloat, we don't report recovery progress in a - * standby as it will always be in recovery unless promoted. We disable - * startup progress timeout in standby mode to avoid calling - * startup_progress_timeout_handler() unnecessarily. - */ - disable_startup_progress_timeout(); -} - /* * Prepare the system for WAL recovery, if needed. * @@ -619,7 +600,7 @@ InitWalRecovery(ControlFileData *ControlFile, bool *wasShutdown_ptr, */ InArchiveRecovery = true; if (StandbyModeRequested) - EnableStandbyMode(); + StandbyMode = true; /* * When a backup_label file is present, we want to roll forward from @@ -756,7 +737,7 @@ InitWalRecovery(ControlFileData *ControlFile, bool *wasShutdown_ptr, { InArchiveRecovery = true; if (StandbyModeRequested) - EnableStandbyMode(); + StandbyMode = true; } /* Get the last valid checkpoint record. */ @@ -3134,7 +3115,7 @@ ReadRecord(XLogPrefetcher *xlogprefetcher, int emode, (errmsg_internal("reached end of WAL in pg_wal, entering archive recovery"))); InArchiveRecovery = true; if (StandbyModeRequested) - EnableStandbyMode(); + StandbyMode = true; SwitchIntoArchiveRecovery(xlogreader->EndRecPtr, replayTLI); minRecoveryPoint = xlogreader->EndRecPtr; diff --git a/src/backend/postmaster/startup.c b/src/backend/postmaster/startup.c index 5c856c5261..f99186eab7 100644 --- a/src/backend/postmaster/startup.c +++ b/src/backend/postmaster/startup.c @@ -314,22 +314,11 @@ startup_progress_timeout_handler(void) startup_progress_timer_expired = true; } -void -disable_startup_progress_timeout(void) -{ - /* Feature is disabled. */ - if (log_startup_progress_interval == 0) - return; - - disable_timeout(STARTUP_PROGRESS_TIMEOUT, false); - startup_progress_timer_expired = false; -} - /* * Set the start timestamp of the current operation and enable the timeout. */ void -enable_startup_progress_timeout(void) +begin_startup_progress_phase(void) { TimestampTz fin_time; @@ -337,6 +326,8 @@ enable_startup_progress_timeout(void) if (log_startup_progress_interval == 0) return; + disable_timeout(STARTUP_PROGRESS_TIMEOUT, false); + startup_progress_timer_expired = false; startup_progress_phase_start_time = GetCurrentTimestamp(); fin_time = TimestampTzPlusMilliseconds(startup_progress_phase_start_time, log_startup_progress_interval); @@ -344,21 +335,6 @@ enable_startup_progress_timeout(void) log_startup_progress_interval); } -/* - * A thin wrapper to first disable and then enable the startup progress - * timeout. - */ -void -begin_startup_progress_phase(void) -{ - /* Feature is disabled. */ - if (log_startup_progress_interval == 0) - return; - - disable_startup_progress_timeout(); - enable_startup_progress_timeout(); -} - /* * Report whether startup progress timeout has occurred. Reset the timer flag * if it did, set the elapsed time to the out parameters and return true, diff --git a/src/include/postmaster/startup.h b/src/include/postmaster/startup.h index 12897531c3..d66ec1fcb1 100644 --- a/src/include/postmaster/startup.h +++ b/src/include/postmaster/startup.h @@ -32,8 +32,6 @@ extern void PostRestoreCommand(void); extern bool IsPromoteSignaled(void); extern void ResetPromoteSignaled(void); -extern void enable_startup_progress_timeout(void); -extern void disable_startup_progress_timeout(void); extern void begin_startup_progress_phase(void); extern void startup_progress_timeout_handler(void); extern bool has_startup_progress_timeout_expired(long *secs, int *usecs);