Re: Logical replication halted due to "this slot has been invalidated because it exceeded the maximum reserved size."
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Viljo Hakala <Viljo.Hakala@advania.com>
Cc: "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Date: 2022-11-29T09:41:49Z
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 →
-
Advance old-segment horizon properly after slot invalidation
- 866237a6fa01 13.4 cited
On 2022-Nov-29, Viljo Hakala wrote: > We have two PostgreSQL 14.3 on Red Hat Linux 8.5 running two > different databases on VMS, where logical replicationn is used between > databases. Hmm, I don't see any bug fixes in the commit that would match this. I only looked after May 9th 2022, which is 14.3's tag date. > 2022-11-29 10:21:06.940 EET [1698404] ERROR: could not start WAL streaming: ERROR: cannot read from logical replication slot ”logs” > DETAIL: This slot has been invalidated because it exceeded the maximum reserved size. > 2022-11-29 10:21:06.942 EET [1698368] LOG: background worker "logical replication worker" (PID 1698404) exited with exit code 1 > > Even though according to manual the max_slot_wal_keep_size is -1 and should not have a limit ? You should see earlier messages about the slot being invalidated, during the previous checkpoint -- and potentially the walsender being signalled, if it was running. Can you spot those? > postgres=# show max_slot_wal_keep_size; > > max_slot_wal_keep_size > ------------------------ > -1 The only explanation of this behavior that doesn't involve a bug is that this parameter was set to a nonzero value, then set to disabled, but the checkpointer failed to notice the change. -- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/ "This is what I like so much about PostgreSQL. Most of the surprises are of the "oh wow! That's cool" Not the "oh shit!" kind. :)" Scott Marlowe, http://archives.postgresql.org/pgsql-admin/2008-10/msg00152.php