Fix determination of broken LSN in OVERWRITTEN_CONTRECORD
In commit ff9f111bce24 I mixed up inconsistent definitions of the LSN of the first record in a page, when the previous record ends exactly at the page boundary. The correct LSN is adjusted to skip the WAL page header; I failed to use that when setting XLogReaderState->overwrittenRecPtr, so at WAL replay time VerifyOverwriteContrecord would refuse to let replay continue past that record. Backpatch to 10. 9.6 also contains this bug, but it's no longer being maintained. Discussion: https://postgr.es/m/45597.1637694259@sss.pgh.pa.us
This commit is contained in:
parent
0d335cbd5c
commit
9c6ab1ef33
@ -415,7 +415,7 @@ restart:
|
||||
*/
|
||||
if (pageHeader->xlp_info & XLP_FIRST_IS_OVERWRITE_CONTRECORD)
|
||||
{
|
||||
state->overwrittenRecPtr = state->currRecPtr;
|
||||
state->overwrittenRecPtr = RecPtr;
|
||||
ResetDecoder(state);
|
||||
RecPtr = targetPagePtr;
|
||||
goto restart;
|
||||
|
Loading…
x
Reference in New Issue
Block a user