Re: WAL segments removed from primary despite the fact that logical replication slot needs it.
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Masahiko Sawada <sawada.mshk@gmail.com>
Cc: depesz@depesz.com, Amit Kapila <amit.kapila16@gmail.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2023-02-06T15:22:09Z
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 →
-
Fix a possibility of logical replication slot's restart_lsn going backwards.
- e5ed873b1b4a 18.0 landed
- 568e78a653ee 17.2 landed
- f353911337cf 16.6 landed
- 91771b3fbbc3 15.10 landed
- 26c4e8968690 14.15 landed
- 15dc1abb17dd 13.18 landed
On 2023-Feb-06, Masahiko Sawada wrote: > I've also confirmed that this issue is fixed by the attached patch, > which clears candidate_restart_lsn and friends during > ReplicationSlotRelease(). Hmm, interesting -- I was studying some other bug recently involving the xmin of a slot that had been invalidated and I remember wondering if these "candidate" fields were being properly ignored when the slot is marked not in use; but I didn't check. Are you sure that resetting them when the slot is released is the appropriate thing to do? I mean, shouldn't they be kept set while the slot is in use, and only reset if we destroy it? (But, actually, in that case, maybe we don't need to reset them: instead we need to make sure to ignore the values for slots that are not in_use. However, I don't know what the semantics are for these "candidate" fields, so maybe this is wrong.) -- Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/