diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 85a11ce8a4..3ce63e05d6 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -37,7 +37,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.306 2003/01/25 05:19:46 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.307 2003/02/23 04:48:19 tgl Exp $ * * NOTES * @@ -1636,7 +1636,26 @@ reaper(SIGNAL_ARGS) ExitPostmaster(1); } StartupPID = 0; + + /* + * Startup succeeded - remember its ID and RedoRecPtr. + * + * NB: this MUST happen before we fork a checkpoint or shutdown + * subprocess, else they will have wrong local ThisStartUpId. + */ + SetThisStartUpID(); + FatalError = false; /* done with recovery */ + + /* + * Arrange for first checkpoint to occur after standard delay. + */ + CheckPointPID = 0; + checkpointed = time(NULL); + + /* + * Go to shutdown mode if a shutdown request was pending. + */ if (Shutdown > NoShutdown) { if (ShutdownPID > 0) @@ -1648,17 +1667,6 @@ reaper(SIGNAL_ARGS) ShutdownPID = ShutdownDataBase(); } - /* - * Startup succeeded - remember its ID and RedoRecPtr - */ - SetThisStartUpID(); - - /* - * Arrange for first checkpoint to occur after standard delay. - */ - CheckPointPID = 0; - checkpointed = time(NULL); - goto reaper_done; }