aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/postmaster.c32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 85a11ce8a43..3ce63e05d63 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;
}