Skip to content

Commit c942aa3

Browse files
knizhniktristan957
authored andcommitted
[refer #506] Correctly initialize all fields of WAL page header for first WAL record of started compute node
1 parent deb6902 commit c942aa3

File tree

1 file changed

+9
-1
lines changed
  • src/backend/access/transam

1 file changed

+9
-1
lines changed

src/backend/access/transam/xlog.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7070,6 +7070,10 @@ StartupXLOG(void)
70707070
EndRecPtr = RecPtr = checkPoint.redo;
70717071
skipLastRecordReread = true;
70727072
close(fd);
7073+
7074+
elog(LOG,
7075+
"[ZENITH] found 'zenith.signal' file. Setting prevRecPtr to %X/%X",
7076+
LSN_FORMAT_ARGS(prevRecPtr));
70737077
}
70747078
else
70757079
{
@@ -7749,11 +7753,15 @@ StartupXLOG(void)
77497753
*/
77507754
if (skipLastRecordReread)
77517755
{
7752-
XLogRecPtr lastPage = EndRecPtr - (EndRecPtr % XLOG_BLCKSZ);
7756+
int offs = (EndRecPtr % XLOG_BLCKSZ);
7757+
XLogRecPtr lastPage = EndRecPtr - offs;
77537758
int idx = XLogRecPtrToBufIdx(lastPage);
77547759
XLogPageHeader xlogPageHdr = (XLogPageHeader)(XLogCtl->pages + idx*XLOG_BLCKSZ);
77557760
xlogPageHdr->xlp_pageaddr = lastPage;
77567761
xlogPageHdr->xlp_magic = XLOG_PAGE_MAGIC;
7762+
xlogPageHdr->xlp_tli = ThisTimeLineID;
7763+
xlogPageHdr->xlp_info = XLP_FIRST_IS_CONTRECORD;
7764+
xlogPageHdr->xlp_rem_len = offs - SizeOfXLogShortPHD;
77577765
readOff = XLogSegmentOffset(lastPage, wal_segment_size);
77587766
elog(LOG, "Continue writing WAL at %X/%X", LSN_FORMAT_ARGS(EndRecPtr));
77597767
}

0 commit comments

Comments
 (0)