aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2010-05-27 02:01:37 +0000
committerRobert Haas <rhaas@postgresql.org>2010-05-27 02:01:37 +0000
commit5e85315ea7a4040b5faeddeebbbadb81fed234c9 (patch)
tree6772bde4d1aa0f40a7a68b50c85a40a3ca49f559
parentc5bd8feac65c5189cce070b841ad02bef70f419c (diff)
downloadpostgresql-5e85315ea7a4040b5faeddeebbbadb81fed234c9.tar.gz
postgresql-5e85315ea7a4040b5faeddeebbbadb81fed234c9.zip
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
-rw-r--r--src/backend/postmaster/postmaster.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index d1011062b4d..5c7639ef7da 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -37,7 +37,7 @@
*
*
* 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
*
@@ -4217,7 +4217,9 @@ sigusr1_handler(SIGNAL_ARGS)
}
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. */
WalReceiverPID = StartWalReceiver();