diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 6c69eb6..c57dcc6 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -5461,7 +5461,6 @@ validateRecoveryParameters(void) static void exitArchiveRecovery(TimeLineID endTLI, XLogRecPtr endOfLog) { - char recoveryPath[MAXPGPATH]; char xlogfname[MAXFNAMELEN]; XLogSegNo endLogSegNo; XLogSegNo startLogSegNo; @@ -5542,17 +5541,6 @@ exitArchiveRecovery(TimeLineID endTLI, XLogRecPtr endOfLog) XLogArchiveCleanup(xlogfname); /* - * Since there might be a partial WAL segment named RECOVERYXLOG, get rid - * of it. - */ - snprintf(recoveryPath, MAXPGPATH, XLOGDIR "/RECOVERYXLOG"); - unlink(recoveryPath); /* ignore any error */ - - /* Get rid of any remaining recovered timeline-history file, too */ - snprintf(recoveryPath, MAXPGPATH, XLOGDIR "/RECOVERYHISTORY"); - unlink(recoveryPath); /* ignore any error */ - - /* * Remove the signal files out of the way, so that we don't accidentally * re-enter archive recovery mode in a subsequent crash. */ @@ -7608,6 +7596,19 @@ StartupXLOG(void) if (ArchiveRecoveryRequested) { + char recoveryPath[MAXPGPATH]; + + /* + * We exited from archive mode. Since there might be a partial WAL + * segment named RECOVERYXLOG, get rid of it. + */ + snprintf(recoveryPath, MAXPGPATH, XLOGDIR "/RECOVERYXLOG"); + unlink(recoveryPath); /* ignore any error */ + + /* Get rid of any remaining recovered timeline-history file, too */ + snprintf(recoveryPath, MAXPGPATH, XLOGDIR "/RECOVERYHISTORY"); + unlink(recoveryPath); /* ignore any error */ + /* * We switched to a new timeline. Clean up segments on the old * timeline.