Mention standby.signal in FATALs for checkpoint record missing at recovery
authorMichael Paquier <michael@paquier.xyz>
Mon, 30 Oct 2023 04:56:02 +0000 (13:56 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 30 Oct 2023 04:56:02 +0000 (13:56 +0900)
When beginning recovery from a base backup by reading a backup_label
file, it may be possible that no checkpoint record is available
depending on the method used when the case backup was taken, which would
prevent recovery from beginning.  In this case, the FATAL messages
issued, initially added by c900c15269f0f, mentioned recovery.signal as
an option to do recovery but not standby.signal.  Let's add it as an
available option, for clarity.

Per suggestion from Bowen Shi, extracted from a larger patch by me.

Author: Michael Paquier
Discussion: https://postgr.es/m/CAM_vCudkSjr7NsNKSdjwtfAm9dbzepY6beZ5DP177POKy8=2aw@mail.gmail.com

src/backend/access/transam/xlogrecovery.c

index 49bb3fe452060a5e9be318f95a9ad401ef7b7a79..0840fc73d3bbc31cd7a1adbe3b3033033771573b 100644 (file)
@@ -651,20 +651,20 @@ InitWalRecovery(ControlFileData *ControlFile, bool *wasShutdown_ptr,
                                checkPoint.ThisTimeLineID))
                    ereport(FATAL,
                            (errmsg("could not find redo location referenced by checkpoint record"),
-                            errhint("If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n"
+                            errhint("If you are restoring from a backup, touch \"%s/recovery.signal\" or \"%s/standby.signal\" and add required recovery options.\n"
                                     "If you are not restoring from a backup, try removing the file \"%s/backup_label\".\n"
                                     "Be careful: removing \"%s/backup_label\" will result in a corrupt cluster if restoring from a backup.",
-                                    DataDir, DataDir, DataDir)));
+                                    DataDir, DataDir, DataDir, DataDir)));
            }
        }
        else
        {
            ereport(FATAL,
                    (errmsg("could not locate required checkpoint record"),
-                    errhint("If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n"
+                    errhint("If you are restoring from a backup, touch \"%s/recovery.signal\" or \"%s/standby.signal\" and add required recovery options.\n"
                             "If you are not restoring from a backup, try removing the file \"%s/backup_label\".\n"
                             "Be careful: removing \"%s/backup_label\" will result in a corrupt cluster if restoring from a backup.",
-                            DataDir, DataDir, DataDir)));
+                            DataDir, DataDir, DataDir, DataDir)));
            wasShutdown = false;    /* keep compiler quiet */
        }