Re: Infinite loop in XLogPageRead() on standby

Поиск
Список
Период
Сортировка
От Kyotaro Horiguchi
Тема Re: Infinite loop in XLogPageRead() on standby
Дата
Msg-id 20240306.175744.2104302179933900645.horikyota.ntt@gmail.com
обсуждение исходный текст
Ответ на Re: Infinite loop in XLogPageRead() on standby  (Alexander Kukushkin <cyberdemn@gmail.com>)
Ответы Re: Infinite loop in XLogPageRead() on standby  (Alexander Kukushkin <cyberdemn@gmail.com>)
Список pgsql-hackers
At Tue, 5 Mar 2024 09:36:44 +0100, Alexander Kukushkin <cyberdemn@gmail.com> wrote in 
> Please find attached the patch fixing the problem and the updated TAP test
> that addresses Nit.

Record-level retries happen when the upper layer detects errors. In my
previous mail, I cited code that is intended to prevent this at
segment boundaries. However, the resulting code applies to all page
boundaries, since we judged that the difference doen't significanty
affects the outcome.

> * Check the page header immediately, so that we can retry immediately if
> * it's not valid. This may seem unnecessary, because ReadPageInternal()
> * validates the page header anyway, and would propagate the failure up to

So, the following (tentative) change should also work.

xlogrecovery.c:
@@ -3460,8 +3490,10 @@ retry:
      * responsible for the validation.
      */
     if (StandbyMode &&
+        targetPagePtr % 0x100000 == 0 &&
         !XLogReaderValidatePageHeader(xlogreader, targetPagePtr, readBuf))
     {

Thus, I managed to reproduce precisely the same situation as you
described utilizing your script with modifications and some core
tweaks, and with the change above, I saw that the behavior was
fixed. However, for reasons unclear to me, it shows another issue, and
I am running out of time and need more caffeine. I'll continue
investigating this tomorrow.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: Synchronizing slots from primary to standby
Следующее
От: Daniel Gustafsson
Дата:
Сообщение: Re: Add missing error codes to PANIC/FATAL error reports in xlog.c and relcache.c