Commit 072521b8 authored by Simon Riggs's avatar Simon Riggs

Rely only on checkpoint 1 at end of recovery.

Searching for checkpoint 2 (previous) is not
correct in all cases.

Bug report from Heikki Linnakangas
parent e1c1e217
...@@ -5777,7 +5777,13 @@ StartupXLOG(void) ...@@ -5777,7 +5777,13 @@ StartupXLOG(void)
if (fast_promote) if (fast_promote)
{ {
checkPointLoc = ControlFile->prevCheckPoint; checkPointLoc = ControlFile->prevCheckPoint;
record = ReadCheckpointRecord(xlogreader, checkPointLoc, 2, false);
/*
* Confirm the last checkpoint is available for us to recover
* from if we fail. Note that we don't check for the secondary
* checkpoint since that isn't available in most base backups.
*/
record = ReadCheckpointRecord(xlogreader, checkPointLoc, 1, false);
if (record != NULL) if (record != NULL)
{ {
checkpoint_wait = false; checkpoint_wait = false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment