Skip to content

Commit 9bb1dde

Browse files
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.
1 parent 3cb2f2a commit 9bb1dde

File tree

2 files changed

+2
-5
lines changed

2 files changed

+2
-5
lines changed

src/backend/access/transam/xlog.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
#include "storage/fd.h"
4848
#include "storage/ipc.h"
4949
#include "storage/pmsignal.h"
50+
#include "storage/proc.h"
5051
#include "storage/procarray.h"
5152
#include "storage/smgr.h"
5253
#include "storage/spin.h"
@@ -6135,6 +6136,7 @@ StartupXLOG(void)
61356136
*/
61366137
if (InArchiveRecovery && IsUnderPostmaster)
61376138
{
6139+
PublishStartupProcessInformation();
61386140
SetForwardFsyncRequests();
61396141
SendPostmasterSignal(PMSIGNAL_RECOVERY_STARTED);
61406142
bgwriterLaunched = true;

src/backend/storage/ipc/standby.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,6 @@ InitRecoveryTransactionEnvironment(void)
6969
*/
7070
SharedInvalBackendInit(true);
7171

72-
/*
73-
* Record the PID and PGPROC structure of the startup process.
74-
*/
75-
PublishStartupProcessInformation();
76-
7772
/*
7873
* Lock a virtual transaction id for Startup process.
7974
*

0 commit comments

Comments
 (0)