Shut down WAL receiver if it's still running at end of recovery. We used to

just check that it's not running and PANIC if it was, but that can rightfully
happen if recovery stops at recovery target.
This commit is contained in:
Heikki Linnakangas 2011-05-11 12:46:08 +03:00
parent ea964a451e
commit a0c8514149

View 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