diff options
Diffstat (limited to 'src/backend/replication/walreceiver.c')
-rw-r--r-- | src/backend/replication/walreceiver.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c index 3826e82c052..32a1575ab07 100644 --- a/src/backend/replication/walreceiver.c +++ b/src/backend/replication/walreceiver.c @@ -218,7 +218,7 @@ WalReceiverMain(void) /* Fetch information required to start streaming */ strlcpy(conninfo, (char *) walrcv->conninfo, MAXCONNINFO); - startpoint = walrcv->receivedUpto; + startpoint = walrcv->receiveStart; SpinLockRelease(&walrcv->mutex); /* Arrange to clean up at walreceiver exit */ @@ -558,8 +558,11 @@ XLogWalRcvFlush(bool dying) /* Update shared-memory status */ SpinLockAcquire(&walrcv->mutex); - walrcv->latestChunkStart = walrcv->receivedUpto; - walrcv->receivedUpto = LogstreamResult.Flush; + if (XLByteLT(walrcv->receivedUpto, LogstreamResult.Flush)) + { + walrcv->latestChunkStart = walrcv->receivedUpto; + walrcv->receivedUpto = LogstreamResult.Flush; + } SpinLockRelease(&walrcv->mutex); /* Signal the startup process that new WAL has arrived */ |