mirror of
https://github.com/postgres/postgres.git
synced 2025-07-02 09:02:37 +03:00
Ensure all replication message info is available and correct via WalRcv
This commit is contained in:
@ -218,7 +218,7 @@ WalReceiverMain(void)
|
||||
startpoint = walrcv->receiveStart;
|
||||
|
||||
/* Initialise to a sanish value */
|
||||
walrcv->lastMsgSendTime = walrcv->lastMsgReceiptTime = GetCurrentTimestamp();
|
||||
walrcv->lastMsgSendTime = walrcv->lastMsgReceiptTime = walrcv->latestWalEndTime = GetCurrentTimestamp();
|
||||
|
||||
SpinLockRelease(&walrcv->mutex);
|
||||
|
||||
@ -749,6 +749,9 @@ ProcessWalSndrMessage(XLogRecPtr walEnd, TimestampTz sendTime)
|
||||
|
||||
/* Update shared-memory status */
|
||||
SpinLockAcquire(&walrcv->mutex);
|
||||
if (XLByteLT(walrcv->latestWalEnd, walEnd))
|
||||
walrcv->latestWalEndTime = sendTime;
|
||||
walrcv->latestWalEnd = walEnd;
|
||||
walrcv->lastMsgSendTime = sendTime;
|
||||
walrcv->lastMsgReceiptTime = lastMsgReceiptTime;
|
||||
SpinLockRelease(&walrcv->mutex);
|
||||
|
@ -260,7 +260,7 @@ GetReplicationApplyDelay(void)
|
||||
|
||||
replayPtr = GetXLogReplayRecPtr(NULL);
|
||||
|
||||
if (XLByteLE(receivePtr, replayPtr))
|
||||
if (XLByteEQ(receivePtr, replayPtr))
|
||||
return 0;
|
||||
|
||||
TimestampDifference(GetCurrentChunkReplayStartTime(),
|
||||
|
Reference in New Issue
Block a user