Re: Recovery at replica stuck because recovery incorrectly trusts an old high-water mark - Mailing list pgsql-hackers

From Jeff Davis
Subject Re: Recovery at replica stuck because recovery incorrectly trusts an old high-water mark
Date
Msg-id dbab64e5c2dc2d7549280b72d25751a94cedd07b.camel@j-davis.com
Whole thread
In response to RE: Recovery at replica stuck because recovery incorrectly trusts an old high-water mark  (Konstantin Knizhnik <knizhnik@garret.ru>)
List pgsql-hackers
On Thu, 2026-09-24 at 21:30 +0300, Konstantin Knizhnik wrote:
> v2 keeps flushedUpto monotonic.  Startup uses a separate
> applyFlushedUpto for "is this streamed WAL readable?"

The reread-from-primary behavior seems to trace to 6da07cd80d, which
looks more like an opportunistic retry than a policy.

We could make it a policy to try to get readable WAL from the primary,
and then keep the extra state you propose. But I think we need more
explanation about why we'd expect this situation (corrupt and flushed
on standby and valid on primary) to occur.

For instance:

 /* ...Only after a failed read of
  * WAL that flushedUpto still reports as present do we
  * rewind the apply pointer, so startup waits for
  * replacement bytes.

raises questions for anyone reading that code about why it might be
flushed and unreadable.

Regards,
    Jeff Davis




pgsql-hackers by date:

Previous
From: Amit Langote
Date:
Subject: Re: potentially missed pgindent in REL_19_STABLE
Next
From: Osama Abdul Qader
Date:
Subject: Re: Severe performance degradation with concurrent updates due to excessive EvalPlanQual (EPQ) re‑evaluation