*** a/src/backend/access/transam/xlog.c --- b/src/backend/access/transam/xlog.c *************** *** 6256,6262 **** StartupXLOG(void) } /* ! * set backupStartupPoint if we're starting archive recovery from a * base backup */ if (haveBackupLabel) --- 6256,6262 ---- } /* ! * set backupStartPoint if we're starting recovery from a * base backup */ if (haveBackupLabel) *************** *** 6610,6616 **** StartupXLOG(void) * be further ahead --- ControlFile->minRecoveryPoint cannot have been * advanced beyond the WAL we processed. */ ! if (InArchiveRecovery && (XLByteLT(EndOfLog, minRecoveryPoint) || !XLogRecPtrIsInvalid(ControlFile->backupStartPoint))) { --- 6610,6616 ---- * be further ahead --- ControlFile->minRecoveryPoint cannot have been * advanced beyond the WAL we processed. */ ! if (InRecovery && (XLByteLT(EndOfLog, minRecoveryPoint) || !XLogRecPtrIsInvalid(ControlFile->backupStartPoint))) { *************** *** 8311,8318 **** xlog_redo(XLogRecPtr lsn, XLogRecord *record) * record, the backup was cancelled and the end-of-backup record will * never arrive. */ ! if (InArchiveRecovery && ! !XLogRecPtrIsInvalid(ControlFile->backupStartPoint)) ereport(ERROR, (errmsg("online backup was cancelled, recovery cannot continue"))); --- 8311,8317 ---- * record, the backup was cancelled and the end-of-backup record will * never arrive. */ ! if (!XLogRecPtrIsInvalid(ControlFile->backupStartPoint)) ereport(ERROR, (errmsg("online backup was cancelled, recovery cannot continue")));