diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index cf33062f77f..2c17e9088a8 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -7423,10 +7423,17 @@ CreateCheckPoint(int flags) * If we are shutting down, or Startup process is completing crash * recovery we don't need to write running xact data. * - * Update checkPoint.nextXid since we have a later value + * Update checkPoint.nextXid since we may have a later value. If we + * do update the value, and we have wrapped, increment epoch also. */ if (!shutdown && XLogStandbyInfoActive()) + { + TransactionId prevXid = checkPoint.nextXid; + LogStandbySnapshot(&checkPoint.nextXid); + if (checkPoint.nextXid < prevXid) + checkPoint.nextXidEpoch++; + } START_CRIT_SECTION();