@@ -5941,11 +5941,14 @@ StartupXLOG(void)
59415941ereport (PANIC ,
59425942(errmsg ("invalid next transaction ID" )));
59435943
5944+ /* initialize shared memory variables from the checkpoint record */
59445945ShmemVariableCache -> nextXid = checkPoint .nextXid ;
59455946ShmemVariableCache -> nextOid = checkPoint .nextOid ;
59465947ShmemVariableCache -> oidCount = 0 ;
59475948MultiXactSetNextMXact (checkPoint .nextMulti ,checkPoint .nextMultiOffset );
59485949SetTransactionIdLimit (checkPoint .oldestXid ,checkPoint .oldestXidDB );
5950+ XLogCtl -> ckptXidEpoch = checkPoint .nextXidEpoch ;
5951+ XLogCtl -> ckptXid = checkPoint .nextXid ;
59495952
59505953/*
59515954 * We must replay WAL entries using the same TimeLineID they were created
@@ -6022,10 +6025,6 @@ StartupXLOG(void)
60226025/* No need to hold ControlFileLock yet, we aren't up far enough */
60236026UpdateControlFile ();
60246027
6025- /* initialize shared-memory copy of latest checkpoint XID/epoch */
6026- XLogCtl -> ckptXidEpoch = ControlFile -> checkPointCopy .nextXidEpoch ;
6027- XLogCtl -> ckptXid = ControlFile -> checkPointCopy .nextXid ;
6028-
60296028/* initialize our local copy of minRecoveryPoint */
60306029minRecoveryPoint = ControlFile -> minRecoveryPoint ;
60316030