You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the function neon_read_at_lsnv(), there is the following code:
for (inti=0; i<nblocks; i++)
{
void*buffer=buffers[i];
BlockNumberblockno=base_blockno+i;
neon_request_lsns*reqlsns=&request_lsns[i];
TimestampTzstart_ts, end_ts;
if (PointerIsValid(mask) && !BITMAP_ISSET(mask, i))
continue;
start_ts=GetCurrentTimestamp();
if (RecoveryInProgress() &&MyBackendType!=B_STARTUP)
XLogWaitForReplayOf(reqlsns[0].request_lsn);
I think the last line here is incorrect, and should be
XLogWaitForReplayOf(reqlsns[i].request_lsn)
Note that 0 is replaced with i.
The current code, as is, might return pages from the page server that have LSNs that are higher or equal to the current WAL replay LSN. In case of a multi-page WAL record, this might cause problems if the WAL record is partly replayed, and some pages were missing in the buffer pool and skipped by redo.
The text was updated successfully, but these errors were encountered:
In the function neon_read_at_lsnv(), there is the following code:
I think the last line here is incorrect, and should be
Note that 0 is replaced with i.
The current code, as is, might return pages from the page server that have LSNs that are higher or equal to the current WAL replay LSN. In case of a multi-page WAL record, this might cause problems if the WAL record is partly replayed, and some pages were missing in the buffer pool and skipped by redo.
The text was updated successfully, but these errors were encountered: