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

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Alexander Lakhin <exclusion@gmail.com>, Sergei Kornilov <sk@zsrv.org>, Noah Misch <noah@leadboat.com>, Tom Lane <tgl@sss.pgh.pa.us>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, pgsql-bugs@lists.postgresql.org, Fujii Masao <masao.fujii@oss.nttdata.com>
Date: 2023-09-23T00:05: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 Sat, Sep 23, 2023 at 11:35:05AM +1200, Thomas Munro wrote:
> Hmm, OK, tricky choices.  Anyway, I guess the next thing to straighten
> out in this area is the OOM policy.
> 
> Pushed.  Thanks Alexander and everyone for the report, testing and
> help!  Time to watch the build farm to see if that Perl turns out to
> be robust enough...

Looks pretty stable to me.  I can see one thing in wrasse related to
pack():
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=wrasse&dt=2023-09-22%2023%3A23%3A23
Invalid type 'Q' in pack at t/039_end_of_wal.pl line 139.

I don't have the room to look at that now, perhaps a bit later today
depending on the flow of the wind.
--
Michael