From: Simon Riggs Date: Fri, 1 Jun 2012 07:25:17 +0000 (+0100) Subject: Checkpointer starts before bgwriter to avoid missing fsync requests. X-Git-Tag: REL9_2_BETA3~143 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a297d64d9223f6bd9c495ff5726a3c99080c2a4a;p=postgresql Checkpointer starts before bgwriter to avoid missing fsync requests. Noted while testing Hot Standby startup. --- diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index e400f0a8e1..830a83f60e 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -1378,10 +1378,10 @@ ServerLoop(void) if (pmState == PM_RUN || pmState == PM_RECOVERY || pmState == PM_HOT_STANDBY) { - if (BgWriterPID == 0) - BgWriterPID = StartBackgroundWriter(); if (CheckpointerPID == 0) CheckpointerPID = StartCheckpointer(); + if (BgWriterPID == 0) + BgWriterPID = StartBackgroundWriter(); } /* @@ -2372,10 +2372,10 @@ reaper(SIGNAL_ARGS) * when we entered consistent recovery state. It doesn't matter * if this fails, we'll just try again later. */ - if (BgWriterPID == 0) - BgWriterPID = StartBackgroundWriter(); if (CheckpointerPID == 0) CheckpointerPID = StartCheckpointer(); + if (BgWriterPID == 0) + BgWriterPID = StartBackgroundWriter(); if (WalWriterPID == 0) WalWriterPID = StartWalWriter(); @@ -4239,10 +4239,10 @@ sigusr1_handler(SIGNAL_ARGS) * Crank up the background tasks. It doesn't matter if this fails, * we'll just try again later. */ - Assert(BgWriterPID == 0); - BgWriterPID = StartBackgroundWriter(); Assert(CheckpointerPID == 0); CheckpointerPID = StartCheckpointer(); + Assert(BgWriterPID == 0); + BgWriterPID = StartBackgroundWriter(); pmState = PM_RECOVERY; }