Re: [BUG] Panic due to incorrect missingContrecPtr after promotion
От | Kyotaro Horiguchi |
---|---|
Тема | Re: [BUG] Panic due to incorrect missingContrecPtr after promotion |
Дата | |
Msg-id | 20220224.172703.816674226135379648.horikyota.ntt@gmail.com обсуждение исходный текст |
Ответ на | Re: [BUG] Panic due to incorrect missingContrecPtr after promotion (Kyotaro Horiguchi <horikyota.ntt@gmail.com>) |
Ответы |
Re: [BUG] Panic due to incorrect missingContrecPtr after promotion
|
Список | pgsql-hackers |
At Thu, 24 Feb 2022 16:26:42 +0900 (JST), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in > So, actually WAL did not ended in an incomplete record. I think > FinishWalRecover is the last place to do that. (But it could be > earlier.) After some investigation, I finally concluded that we should reset abortedRecPtr and missingContrecPtr at processing XLOG_OVERWRITE_CONTRECORD. --- a/src/backend/access/transam/xlogrecovery.c +++ b/src/backend/access/transam/xlogrecovery.c @@ -1953,6 +1953,11 @@ xlogrecovery_redo(XLogReaderState *record, TimeLineID replayTLI) LSN_FORMAT_ARGS(xlrec.overwritten_lsn), timestamptz_to_str(xlrec.overwrite_time)))); + /* We have safely skipped the aborted record */ + abortedRecPtr = InvalidXLogRecPtr; + missingContrecPtr = InvalidXLogRecPtr; + /* Verifying the record should only happen once */ record->overwrittenRecPtr = InvalidXLogRecPtr; } The last check in the test against "resetting aborted record" is no longer useful since it is already checked by 026_verwrite_contrecord.pl. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
В списке pgsql-hackers по дате отправления: