On Tue, 10 Dec 2024 at 17:21, Nisha Moond <nisha.moond...@gmail.com> wrote: > > On Fri, Dec 6, 2024 at 11:04 AM vignesh C <vignes...@gmail.com> wrote: > > > > > > Determining the correct time may be challenging for users, as it > > depends on when the active_since value is set, as well as when the > > checkpoint_timeout occurs and the subsequent checkpoint is triggered. > > Even if the user sets it to an appropriate value, there is still a > > possibility of delayed identification due to the timing of when the > > slot's active_timeout is being set. Including this information in the > > documentation should be sufficient. > > > > +1 > v54 documents this information as suggested. > > Attached the v54 patch-set addressing all the comments till now in
Few comments on the test added: 1) Can we remove this and set idle_replication_slot_timeout while the standby node is created itself during append_conf: +# Set timeout GUC on the standby to verify that the next checkpoint will not +# invalidate synced slots. +my $idle_timeout_1s = 1; +$standby1->safe_psql( + 'postgres', qq[ + ALTER SYSTEM SET idle_replication_slot_timeout TO '${idle_timeout_1s}s'; +]); +$standby1->reload; 2) You can move these statements before the standby node is created: +# Create sync slot on the primary +$primary->psql('postgres', + q{SELECT pg_create_logical_replication_slot('sync_slot1', 'test_decoding', false, false, true);} +); + +# Create standby slot on the primary +$primary->safe_psql( + 'postgres', qq[ + SELECT pg_create_physical_replication_slot(slot_name := 'sb_slot1', immediately_reserve := true); +]); 3) Do we need autovacuum as off for these tests, is there any probability of a test failure without this. I felt it should not impact these tests, if not we can remove this: +# Avoid unpredictability +$primary->append_conf( + 'postgresql.conf', qq{ +checkpoint_timeout = 1h +autovacuum = off +}); 4) Generally we mention single char in single quotes, we can update "t" to 't': + ), + "t", + 'logical slot sync_slot1 is synced to standby'); + 5) Similarly here too: + WHERE slot_name = 'sync_slot1' + AND invalidation_reason IS NULL;} + ), + "t", + 'check that synced slot sync_slot1 has not been invalidated on standby'); 6) This standby offset is not used anywhere, it can be removed: +my $logstart = -s $standby1->logfile; + +# Set timeout GUC on the standby to verify that the next checkpoint will not +# invalidate synced slots. Regards, Vignesh