summaryrefslogtreecommitdiff
path: root/src/backend/replication/walreceiver.c
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2012-07-04 15:10:46 +0200
committerMagnus Hagander <magnus@hagander.net>2012-07-04 15:24:17 +0200
commitb8aca12d77612007ebde22db14e3971ef664d553 (patch)
treeb02529f17136f108184d261435988f273d2c3d41 /src/backend/replication/walreceiver.c
parent119027ec8b8d02c8d70e4916df1b41cde78f674d (diff)
Always treat a standby returning an an invalid flush location as async
This ensures that a standby such as pg_receivexlog will not be selected as sync standby - which would cause the master to block waiting for a location that could never happen. Fujii Masao
Diffstat (limited to 'src/backend/replication/walreceiver.c')
-rw-r--r--src/backend/replication/walreceiver.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c
index 18b4727fa81..7058b888ca3 100644
--- a/src/backend/replication/walreceiver.c
+++ b/src/backend/replication/walreceiver.c
@@ -276,6 +276,11 @@ WalReceiverMain(void)
walrcv_connect(conninfo, startpoint);
DisableWalRcvImmediateExit();
+ /* Initialize LogstreamResult, reply_message and feedback_message */
+ LogstreamResult.Write = LogstreamResult.Flush = GetXLogReplayRecPtr();
+ MemSet(&reply_message, 0, sizeof(reply_message));
+ MemSet(&feedback_message, 0, sizeof(feedback_message));
+
/* Loop until end-of-streaming or error */
for (;;)
{