diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index cf9ee839897..92f535d1cda 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -7056,7 +7056,7 @@ CheckPointReplicationState(void) static void PreCheckPointGuts(int flags) { - if (flags & CHECKPOINT_IS_SHUTDOWN) + if (flags & (CHECKPOINT_IS_SHUTDOWN|CHECKPOINT_END_OF_RECOVERY)) { CheckPointReplicationState(); CheckPointBuffers(flags); @@ -7079,7 +7079,7 @@ PreCheckPointGuts(int flags) static void CheckPointGuts(XLogRecPtr checkPointRedo, int flags) { - if (!(flags & CHECKPOINT_IS_SHUTDOWN)) + if (!(flags & (CHECKPOINT_IS_SHUTDOWN|CHECKPOINT_END_OF_RECOVERY))) CheckPointReplicationState(); /* Write out all dirty data in SLRUs and the main buffer pool */ @@ -7096,7 +7096,7 @@ CheckPointGuts(XLogRecPtr checkPointRedo, int flags) * Writing to the WAL during shutdown checkpoint cause Postgres panic. * So do it before in PreCheckPointGuts. */ - if (!(flags & CHECKPOINT_IS_SHUTDOWN)) + if (!(flags & (CHECKPOINT_IS_SHUTDOWN|CHECKPOINT_END_OF_RECOVERY))) CheckPointBuffers(flags); /* Perform all queued up fsyncs */