Thread: pgsql: Fix issues in invalidation of obsolete replication slots.
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 ------ REL_13_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/08aa3151e7308556130c644c237fa4b20dfd6eba Modified Files -------------- src/backend/replication/slot.c | 226 ++++++++++++++++++++++++++++------------- 1 file changed, 154 insertions(+), 72 deletions(-)