pgsql: Fix issues in invalidation of obsolete replication slots.

From: Fujii Masao <fujii(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix issues in invalidation of obsolete replication slots.
Date: 2020-06-19 08:21:53
Message-ID: E1jmCHZ-0002CT-Ez@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix issues in invalidation of obsolete replication slots.

This commit fixes the following issues.

1. There is the case where the slot is dropped while trying to invalidate it.
InvalidateObsoleteReplicationSlots() did not handle this case, and
which could cause checkpoint to fail.

2. InvalidateObsoleteReplicationSlots() could emit the same log message
multiple times unnecessary. It should be logged only once.

3. When marking the slot as used, we always searched the target slot from
all the replication slots even if we already found it. This could cause
useless waste of cycles.

Back-patch to v13 where these issues were added as a part of
max_slot_wal_keep_size code.

Author: Fujii Masao
Reviewed-by: Kyotaro Horiguchi, Alvaro Herrera
Discussion: https://postgr.es/m/66c05b67-3396-042c-1b41-bfa6c3ddcf82@oss.nttdata.com

Branch
------
master

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

Modified Files
--------------
src/backend/replication/slot.c | 226 ++++++++++++++++++++++++++++-------------
1 file changed, 154 insertions(+), 72 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Geoghegan 2020-06-19 15:58:56 pgsql: Fix deduplication "single value" strategy bug.
Previous Message Fujii Masao 2020-06-19 08:21:19 pgsql: Fix issues in invalidation of obsolete replication slots.