Commit 27854915 authored by Tom Lane's avatar Tom Lane

If a shutdown request comes in while we're still starting up, don't

service it until after we execute SetThisStartUpID().  Else shutdown
process will write the wrong SUI into the shutdown checkpoint, which
seems likely to be trouble --- although I've not quite figured out
how significant it really is.
parent 80d6a277
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
* *
* *
* IDENTIFICATION * 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 * NOTES
* *
...@@ -1636,7 +1636,26 @@ reaper(SIGNAL_ARGS) ...@@ -1636,7 +1636,26 @@ reaper(SIGNAL_ARGS)
ExitPostmaster(1); ExitPostmaster(1);
} }
StartupPID = 0; 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 */ 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 (Shutdown > NoShutdown)
{ {
if (ShutdownPID > 0) if (ShutdownPID > 0)
...@@ -1648,17 +1667,6 @@ reaper(SIGNAL_ARGS) ...@@ -1648,17 +1667,6 @@ reaper(SIGNAL_ARGS)
ShutdownPID = ShutdownDataBase(); 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; goto reaper_done;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment