• Fujii Masao's avatar
    Fix issues in invalidation of obsolete replication slots. · f9e9704f
    Fujii Masao authored
    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
    f9e9704f
slot.c 48.6 KB