On Tue, Sep 3, 2024 at 3:01 PM shveta malik <shveta.ma...@gmail.com> wrote: > > > 1) > I see that ReplicationSlotAlter() will error out if the slot is > invalidated due to timeout. I have not tested it myself, but do you > know if slot-alter errors out for other invalidation causes as well? > Just wanted to confirm that the behaviour is consistent for all > invalidation causes.
I was able to test this and as anticipated behavior is different. When slot is invalidated due to say 'wal_removed', I am still able to do 'alter' of that slot. Please see: Pub: slot_name | failover | synced | inactive_since | invalidation_reason -------------+----------+--------+----------------------------------+--------------------- mysubnew1_1 | t | f | 2024-09-04 08:58:12.802278+05:30 | wal_removed Sub: newdb1=# alter subscription mysubnew1_1 disable; ALTER SUBSCRIPTION newdb1=# alter subscription mysubnew1_1 set (failover=false); ALTER SUBSCRIPTION Pub: (failover altered) slot_name | failover | synced | inactive_since | invalidation_reason -------------+----------+--------+----------------------------------+--------------------- mysubnew1_1 | f | f | 2024-09-04 08:58:47.824471+05:30 | wal_removed while when invalidation_reason is 'inactive_timeout', it fails: Pub: slot_name | failover | synced | inactive_since | invalidation_reason -------------+----------+--------+----------------------------------+--------------------- mysubnew1_1 | t | f | 2024-09-03 14:30:57.532206+05:30 | inactive_timeout Sub: newdb1=# alter subscription mysubnew1_1 disable; ALTER SUBSCRIPTION newdb1=# alter subscription mysubnew1_1 set (failover=false); ERROR: could not alter replication slot "mysubnew1_1": ERROR: can no longer get changes from replication slot "mysubnew1_1" DETAIL: The slot became invalid because it was inactive since 2024-09-04 08:54:20.308996+05:30, which is more than 0 seconds ago. HINT: You might need to increase "replication_slot_inactive_timeout.". I think the behavior should be same. thanks Shveta