Avoid starting walreceiver in states where it shouldn't be running.
In particular, it's bad to start walreceiver when in state PM_WAIT_BACKENDS, because we have no provision to kill walreceiver when in that state. Fujii Masao
This commit is contained in:
parent
c5bd8feac6
commit
5e85315ea7
@ -37,7 +37,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.609 2010/05/26 12:32:41 rhaas Exp $
|
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.610 2010/05/27 02:01:37 rhaas Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
*
|
*
|
||||||
@ -4217,7 +4217,9 @@ sigusr1_handler(SIGNAL_ARGS)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (CheckPostmasterSignal(PMSIGNAL_START_WALRECEIVER) &&
|
if (CheckPostmasterSignal(PMSIGNAL_START_WALRECEIVER) &&
|
||||||
WalReceiverPID == 0)
|
WalReceiverPID == 0 &&
|
||||||
|
(pmState == PM_STARTUP || pmState == PM_RECOVERY ||
|
||||||
|
pmState == PM_HOT_STANDBY || pmState == PM_WAIT_READONLY))
|
||||||
{
|
{
|
||||||
/* Startup Process wants us to start the walreceiver process. */
|
/* Startup Process wants us to start the walreceiver process. */
|
||||||
WalReceiverPID = StartWalReceiver();
|
WalReceiverPID = StartWalReceiver();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user