From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Advance old-segment horizon properly after slot invalidation |
Date: | 2021-07-16 16:10:48 |
Message-ID: | E1m4QQK-0007RB-Kz@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(dot)ntt(at)gmail(dot)com>
Reported-by: Marcin Krupowicz <mk(at)071(dot)ovh>
Discussion: https://postgr.es/m/17103-004130e8f27782c9@postgresql.org
Branch
------
REL_13_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/866237a6fa01a128325df41ad39b41ea3363c9a9
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(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2021-07-16 17:03:15 | pgsql: Preserve firing-on state when cloning row triggers to partitions |
Previous Message | Peter Eisentraut | 2021-07-16 10:44:08 | pgsql: doc: Spell checking |