diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 0d257d1fd55..fb88d2b69d5 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -7220,7 +7220,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); @@ -7243,7 +7243,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 */ @@ -7260,7 +7260,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 */