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
pull/3/head
Simon Riggs 13 years ago
parent e1c1e21732
commit 072521b8c8
  1. 8
      src/backend/access/transam/xlog.c

@ -5777,7 +5777,13 @@ StartupXLOG(void)
if (fast_promote)
{
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)
{
checkpoint_wait = false;

Loading…
Cancel
Save