diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 5b156f9c70e009b28cf8f1dc7d6fdc5b3997e8e2..d7e83a937c991e154a16438c15df55387e0b5119 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -2901,7 +2901,12 @@ RemoveOldXlogFiles(XLogSegNo segno, XLogRecPtr endptr) errmsg("could not open transaction log directory \"%s\": %m", XLOGDIR))); - XLogFileName(lastoff, ThisTimeLineID, segno); + /* + * Construct a filename of the last segment to be kept. The timeline ID + * doesn't matter, we ignore that in the comparison. (During recovery, + * ThisTimeLineID isn't set, so we can't use that.) + */ + XLogFileName(lastoff, 0, segno); elog(DEBUG2, "attempting to remove WAL segments older than log file %s", lastoff); diff --git a/src/backend/postmaster/bgwriter.c b/src/backend/postmaster/bgwriter.c index ff0a9cb560117173b41dec5d0a9e03b9bbafc9bf..ee0889ed3ee99c493891940d36675fa3d86cbc6a 100644 --- a/src/backend/postmaster/bgwriter.c +++ b/src/backend/postmaster/bgwriter.c @@ -224,12 +224,6 @@ BackgroundWriterMain(void) */ PG_SETMASK(&UnBlockSig); - /* - * Use the recovery target timeline ID during recovery - */ - if (RecoveryInProgress()) - ThisTimeLineID = GetRecoveryTargetTLI(); - /* * Reset hibernation state after any error. */ diff --git a/src/backend/postmaster/checkpointer.c b/src/backend/postmaster/checkpointer.c index c8a68a1b22710aee0c5feaabfd653d9740ee82d8..0f05c7ee58cd17f253360dfb361b12308338e798 100644 --- a/src/backend/postmaster/checkpointer.c +++ b/src/backend/postmaster/checkpointer.c @@ -346,12 +346,6 @@ CheckpointerMain(void) */ PG_SETMASK(&UnBlockSig); - /* - * Use the recovery target timeline ID during recovery - */ - if (RecoveryInProgress()) - ThisTimeLineID = GetRecoveryTargetTLI(); - /* * Ensure all shared memory values are set correctly for the config. Doing * this here ensures no race conditions from other concurrent updaters.