Revert "Disable STARTUP_PROGRESS_TIMEOUT in standby mode."
authorRobert Haas <[email protected]>
Mon, 6 Feb 2023 16:16:03 +0000 (11:16 -0500)
committerRobert Haas <[email protected]>
Mon, 6 Feb 2023 16:16:03 +0000 (11:16 -0500)
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
src/backend/postmaster/startup.c
src/include/postmaster/startup.h

index a0e984aae04d21ea13db09c57ad8613c366d3f9d..958e85366c1583a57a400ac7d2174721ce7054a8 100644 (file)
@@ -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;
index 5c856c5261bb8aeaf60343e310282356d89d9cf0..f99186eab7dbe9b7cf1954559930b4a027ee3a5c 100644 (file)
@@ -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,
index 12897531c396c5e5ccfaa6c18c63a93bc54ac673..d66ec1fcb12fc8ad92f933dbcd971ddaf973f46b 100644 (file)
@@ -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);