@@ -6252,11 +6252,14 @@ StartupXLOG(void)
6252
6252
ereport (PANIC ,
6253
6253
(errmsg ("invalid next transaction ID" )));
6254
6254
6255
+ /* initialize shared memory variables from the checkpoint record */
6255
6256
ShmemVariableCache -> nextXid = checkPoint .nextXid ;
6256
6257
ShmemVariableCache -> nextOid = checkPoint .nextOid ;
6257
6258
ShmemVariableCache -> oidCount = 0 ;
6258
6259
MultiXactSetNextMXact (checkPoint .nextMulti ,checkPoint .nextMultiOffset );
6259
6260
SetTransactionIdLimit (checkPoint .oldestXid ,checkPoint .oldestXidDB );
6261
+ XLogCtl -> ckptXidEpoch = checkPoint .nextXidEpoch ;
6262
+ XLogCtl -> ckptXid = checkPoint .nextXid ;
6260
6263
6261
6264
/*
6262
6265
* We must replay WAL entries using the same TimeLineID they were created
@@ -6340,10 +6343,6 @@ StartupXLOG(void)
6340
6343
/* No need to hold ControlFileLock yet, we aren't up far enough */
6341
6344
UpdateControlFile ();
6342
6345
6343
- /* initialize shared-memory copy of latest checkpoint XID/epoch */
6344
- XLogCtl -> ckptXidEpoch = ControlFile -> checkPointCopy .nextXidEpoch ;
6345
- XLogCtl -> ckptXid = ControlFile -> checkPointCopy .nextXid ;
6346
-
6347
6346
/* initialize our local copy of minRecoveryPoint */
6348
6347
minRecoveryPoint = ControlFile -> minRecoveryPoint ;
6349
6348