pgsql: Advance old-segment horizon properly after slot invalidation - Mailing list pgsql-committers

From Alvaro Herrera
Subject pgsql: Advance old-segment horizon properly after slot invalidation
Date
Msg-id E1m4QQK-0007R7-KD@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Advance old-segment horizon properly after slot invalidation

When some slots are invalidated due to the max_slot_wal_keep_size limit,
the old segment horizon should move forward to stay within the limit.
However, in commit c6550776394e we forgot to call KeepLogSeg again to
recompute the horizon after invalidating replication slots.  In cases
where other slots remained, the limits would be recomputed eventually
for other reasons, but if all slots were invalidated, the limits would
not move at all afterwards.  Repair.

Backpatch to 13 where the feature was introduced.

Author: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Reported-by: Marcin Krupowicz <mk@071.ovh>
Discussion: https://postgr.es/m/17103-004130e8f27782c9@postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/ead9e51e82363a0e492d56aee83ed11b3759a615

Modified Files
--------------
src/backend/access/transam/xlog.c         | 26 +++++++++++++++++++++++--
src/backend/replication/slot.c            | 26 ++++++++++++++++++++++---
src/include/replication/slot.h            |  2 +-
src/test/recovery/t/019_replslot_limit.pl | 32 +++++++++++++++++++++++++------
4 files changed, 74 insertions(+), 12 deletions(-)


pgsql-committers by date:

Previous
From: Peter Eisentraut
Date:
Subject: pgsql: doc: Spell checking
Next
From: Alvaro Herrera
Date:
Subject: pgsql: Preserve firing-on state when cloning row triggers to partitions