Re: Out-of-Cycle release? (was Re: BUG #19490: Streaming standby on 16.14 stops applying WAL on MultiXactOffsetSLRU when primary is 16.8)

Sebastiaan Mannem <sebas@mannem.nl>

From: Sebastiaan Mannem <sebas@mannem.nl>
To: Andrey Borodin <x4mmm@yandex-team.ru>, Michael Banck <mbanck@gmx.net>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, "j.karremans@jk-consult.nl" <j.karremans@jk-consult.nl>, "rmt@lists.postgresql.org" <rmt@lists.postgresql.org>, PostgreSQL mailing lists <pgsql-hackers@lists.postgresql.org>
Date: 2026-06-25T13:43:32Z
Lists: pgsql-bugs, pgsql-hackers
we now have a customer that has this issue, which is nice, because we might be able to test your fix against their recovery.
What we noticed:

  *   This is a backup recovery scenario (not a standby, but a recovered database backup)
  *   recovery succeeds until a specific WAL file (we call it WAL 86).
  *   Until there we see all WAL apply succeed until a specific record
  *   There we indeed see the next record to be something round a lock
We can share the exact lines from pg_waldump, but this seems to be this bug.
I will check with the customer if they want to have tested that this bug actually resolves this bug, and let you know.


________________________________
Van: Andrey Borodin <x4mmm@yandex-team.ru>
Verzonden: donderdag 25 juni 2026 12:14:46
Aan: Michael Banck
CC: Heikki Linnakangas; j.karremans@jk-consult.nl; rmt@lists.postgresql.org; PostgreSQL mailing lists
Onderwerp: Re: Out-of-Cycle release? (was Re: BUG #19490: Streaming standby on 16.14 stops applying WAL on MultiXactOffsetSLRU when primary is 16.8)



> On 25 Jun 2026, at 14:30, Michael Banck <mbanck@gmx.net> wrote:
>
> If either the standby gets updated to the
> latest minor release first, or if somebody does PITR from a primary on an
> earlier release to an instance with the latest minor release, the
> standby/PITR deadlocks and just sits there.

A bit of clarification. To trigger this bug WAL must be generated by 16.10
or prior and replay must be done by latest release (16.14). And the WAL
trace must contain sufficient number of MultiXacts.

So far we had 3 or 4 reports on pgsql-bugs and few in chats.

But yeah, restoration from an old backup is a typical use case.


Best regards, Andrey Borodin.




Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix self-deadlock when replaying WAL generated by older minor version

  2. Fix multixact backwards-compatibility with CHECKPOINT race condition

  3. Don't reset 'latest_page_number' when replaying multixid truncation

  4. Set next multixid's offset when creating a new multixid