Re: Infinite loop in XLogPageRead() on standby
От | Alexander Kukushkin |
---|---|
Тема | Re: Infinite loop in XLogPageRead() on standby |
Дата | |
Msg-id | CAFh8B=msY9ZcYN9eN+UVOo+1mNEBfVu454oOu6qi=fdy-7momg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Infinite loop in XLogPageRead() on standby (Kyotaro Horiguchi <horikyota.ntt@gmail.com>) |
Ответы |
Re: Infinite loop in XLogPageRead() on standby
|
Список | pgsql-hackers |
Hi Kyotaro,
Oh, now I understand what you mean. Is the retry supposed to happen only when we are reading the very first page from the WAL file?
On Wed, 6 Mar 2024 at 09:57, Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote:
xlogrecovery.c:
@@ -3460,8 +3490,10 @@ retry:
* responsible for the validation.
*/
if (StandbyMode &&
+ targetPagePtr % 0x100000 == 0 &&
!XLogReaderValidatePageHeader(xlogreader, targetPagePtr, readBuf))
{
Hmm, I think you meant to use wal_segment_size, because 0x100000 is just 1MB. As a result, currently it works for you by accident.
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.
Thank you for spending your time on it!
--
Regards,
--
Alexander Kukushkin
В списке pgsql-hackers по дате отправления: