aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/transam/xlog.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2021-10-25 09:49:46 -0400
committerRobert Haas <rhaas@postgresql.org>2021-10-25 10:02:36 -0400
commita75dbf7f9ee6ff0c0e2ab4b224b04fc50c4e6577 (patch)
tree04734fcd8828162f8f2fa11272c5a20c01be7330 /src/backend/access/transam/xlog.c
parent166f94377c886516ca986ef8a623cd2e854fe911 (diff)
downloadpostgresql-a75dbf7f9ee6ff0c0e2ab4b224b04fc50c4e6577.tar.gz
postgresql-a75dbf7f9ee6ff0c0e2ab4b224b04fc50c4e6577.zip
StartupXLOG: Call CleanupAfterArchiveRecovery after XLogReportParameters.
This does a better job grouping related operations together, since all of the WAL records that we need to write prior to allowing WAL writes generally and written by a single uninterrupted stretch of code. Since CleanupAfterArchiveRecovery() just (1) runs recovery_end_command, (2) removes non-parent xlog files, and (3) archives any final partial segment, this should be safe, because all of those things are pretty much unrelated to the WAL record written by XLogReportParameters(). Amul Sul, per a suggestion from me Discussion: http://postgr.es/m/CAAJ_b97fysj6sRSQEfOHj-y8Jfd5uPqOgO74qast89B4WfD+TA@mail.gmail.com
Diffstat (limited to 'src/backend/access/transam/xlog.c')
-rw-r--r--src/backend/access/transam/xlog.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 62862255fca..12157766724 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -8094,10 +8094,6 @@ StartupXLOG(void)
if (!XLogRecPtrIsInvalid(XLogCtl->lastReplayedEndRecPtr))
promoted = PerformRecoveryXLogAction();
- /* If this is archive recovery, perform post-recovery cleanup actions. */
- if (ArchiveRecoveryRequested)
- CleanupAfterArchiveRecovery(EndOfLogTLI, EndOfLog);
-
/*
* If any of the critical GUCs have changed, log them before we allow
* backends to write WAL.
@@ -8105,6 +8101,10 @@ StartupXLOG(void)
LocalSetXLogInsertAllowed();
XLogReportParameters();
+ /* If this is archive recovery, perform post-recovery cleanup actions. */
+ if (ArchiveRecoveryRequested)
+ CleanupAfterArchiveRecovery(EndOfLogTLI, EndOfLog);
+
/*
* Local WAL inserts enabled, so it's time to finish initialization of
* commit timestamp.