Re: BUG #17928: Standby fails to decode WAL on termination of primary

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Sergei Kornilov <sk@zsrv.org>, Noah Misch <noah@leadboat.com>, Tom Lane <tgl@sss.pgh.pa.us>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, exclusion@gmail.com, pgsql-bugs@lists.postgresql.org, Fujii Masao <masao.fujii@oss.nttdata.com>
Date: 2023-09-05T03:58:42Z
Lists: pgsql-bugs

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Correct assertion and comments about XLogRecordMaxSize.

  2. Fix edge-case for xl_tot_len broken by bae868ca.

  3. Don't use Perl pack('Q') in 039_end_of_wal.pl.

  4. Don't trust unvalidated xl_tot_len.

  5. Make recovery report error message when invalid page header is found.

  6. Add more protections in WAL record APIs against overflows

On Tue, Sep 5, 2023 at 3:19 PM Michael Paquier <michael@paquier.xyz> wrote:
> And here you go for all the three branches, with all the tests
> passing.  This change is complicated enough that it would be better to
> get more eyes on the three patches for these specific branches.  Now,
> this is much simpler since we don't have to worry about the
> prefetching.

Thanks!  Yeah.

> For these versions, it struck me that we *require* 6860198 so as the
> header validation is able to correctly happen across page reads when
> doing crash recovery.   I have added this change in the patches
> attached for simplicity, but 6860198 should be applied first on 12~14
> as an independent change.  I can do that as a first step, if you are
> OK with that.

Ahhhh, that explains why back-patching was unexpectedly unsuccessful
when I tried it.  I have added Fujii-san to the CC list.  I don't see
any problem with that plan but it would be good to hear from him.