mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-07 19:47:50 +08:00
Prevent intermittent hang in recovery from bgwriter interaction.
Startup process waited for cleanup lock but when hot_standby = off the pid was not registered, so that the bgwriter would not wake the waiting process as intended.
This commit is contained in:
parent
3cb2f2ae4c
commit
9bb1ddec4c
@ -47,6 +47,7 @@
|
||||
#include "storage/fd.h"
|
||||
#include "storage/ipc.h"
|
||||
#include "storage/pmsignal.h"
|
||||
#include "storage/proc.h"
|
||||
#include "storage/procarray.h"
|
||||
#include "storage/smgr.h"
|
||||
#include "storage/spin.h"
|
||||
@ -6135,6 +6136,7 @@ StartupXLOG(void)
|
||||
*/
|
||||
if (InArchiveRecovery && IsUnderPostmaster)
|
||||
{
|
||||
PublishStartupProcessInformation();
|
||||
SetForwardFsyncRequests();
|
||||
SendPostmasterSignal(PMSIGNAL_RECOVERY_STARTED);
|
||||
bgwriterLaunched = true;
|
||||
|
@ -69,11 +69,6 @@ InitRecoveryTransactionEnvironment(void)
|
||||
*/
|
||||
SharedInvalBackendInit(true);
|
||||
|
||||
/*
|
||||
* Record the PID and PGPROC structure of the startup process.
|
||||
*/
|
||||
PublishStartupProcessInformation();
|
||||
|
||||
/*
|
||||
* Lock a virtual transaction id for Startup process.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user