OSDN Git Service

Shut down WAL receiver if it's still running at end of recovery. We used to
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 11 May 2011 09:46:08 +0000 (12:46 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 11 May 2011 09:46:08 +0000 (12:46 +0300)
just check that it's not running and PANIC if it was, but that can rightfully
happen if recovery stops at recovery target.

src/backend/access/transam/xlog.c

index b0e4c41..e71090f 100644 (file)
@@ -6611,12 +6611,11 @@ StartupXLOG(void)
        }
 
        /*
-        * If we launched a WAL receiver, it should be gone by now. It will trump
-        * over the startup checkpoint and subsequent records if it's still alive,
-        * so be extra sure that it's gone.
+        * Kill WAL receiver, if it's still running, before we continue to write
+        * the startup checkpoint record. It will trump over the checkpoint and
+        * subsequent records if it's still alive when we start writing WAL.
         */
-       if (WalRcvInProgress())
-               elog(PANIC, "wal receiver still active");
+       ShutdownWalRcv();
 
        /*
         * We don't need the latch anymore. It's not strictly necessary to disown