diff options
| author | Simon Riggs <simon@2ndQuadrant.com> | 2011-03-23 13:32:37 +0000 |
|---|---|---|
| committer | Simon Riggs <simon@2ndQuadrant.com> | 2011-03-23 13:32:37 +0000 |
| commit | 9bb1ddec4cd998c5fbac278a54d8ad5a5011e4e1 (patch) | |
| tree | 6f231906cdfd8f8d92023d30f91e346b58367b02 | |
| parent | 3cb2f2ae4cc481dc22682d364e7a93ba6f7f4baf (diff) | |
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.
| -rw-r--r-- | src/backend/access/transam/xlog.c | 2 | ||||
| -rw-r--r-- | src/backend/storage/ipc/standby.c | 5 |
2 files changed, 2 insertions, 5 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index bb06a2e016d..4e4ec1cb9a8 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -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; diff --git a/src/backend/storage/ipc/standby.c b/src/backend/storage/ipc/standby.c index 8ddfa60b388..ce02fe76049 100644 --- a/src/backend/storage/ipc/standby.c +++ b/src/backend/storage/ipc/standby.c @@ -70,11 +70,6 @@ InitRecoveryTransactionEnvironment(void) SharedInvalBackendInit(true); /* - * Record the PID and PGPROC structure of the startup process. - */ - PublishStartupProcessInformation(); - - /* * Lock a virtual transaction id for Startup process. * * We need to do GetNextLocalTransactionId() because |
