fix assert failed in PageCheckWhenChosedElimination

This commit is contained in:
cca5507
2023-12-08 20:59:29 +08:00
committed by yaoxin
parent 7c4acfac5e
commit c437c75446

View File

@ -1712,10 +1712,11 @@ void ExtremeRtoFlushBuffer(RedoBufferInfo *bufferinfo, bool updateFsm)
} else {
if (bufferinfo->pageinfo.page != NULL) {
BufferDesc *bufDesc = GetBufferDescriptor(bufferinfo->buf - 1);
/* backends may mark buffer dirty already */
if (!(bufDesc->state & BM_DIRTY) &&
(bufferinfo->dirtyflag || XLByteLT(bufDesc->extra->lsn_on_disk, PageGetLSN(bufferinfo->pageinfo.page)))) {
MarkBufferDirty(bufferinfo->buf);
if (bufferinfo->dirtyflag || XLByteLT(bufDesc->extra->lsn_on_disk, PageGetLSN(bufferinfo->pageinfo.page))) {
/* backends may mark buffer dirty already */
if (!(bufDesc->state & BM_DIRTY)) {
MarkBufferDirty(bufferinfo->buf);
}
if (!bufferinfo->dirtyflag && bufferinfo->blockinfo.forknum == MAIN_FORKNUM) {
int mode = WARNING;
#ifdef USE_ASSERT_CHECKING