Re: Unexpected behavior when setting "idle_replication_slot_timeout" - Mailing list pgsql-bugs

From Nisha Moond
Subject Re: Unexpected behavior when setting "idle_replication_slot_timeout"
Date
Msg-id CABdArM76e8-XChodqKxEiRK3tR_Yv3cymn_AWfP4bOsLDscZAg@mail.gmail.com
Whole thread Raw
In response to Unexpected behavior when setting "idle_replication_slot_timeout"  (Gunnar Morling <gunnar.morling@googlemail.com>)
Responses Re: Unexpected behavior when setting "idle_replication_slot_timeout"
List pgsql-bugs
On Fri, Jul 4, 2025 at 4:35 PM Gunnar Morling
<gunnar.morling@googlemail.com> wrote:
>
> Hi all,
>
> I am exploring the new setting "idle_replication_slot_timeout" in Postgres 18; for testing purposes, I set the value
to"30s", which, unexpectedly to me, didn't cause an idle slot to be invalidated when I triggered a checkpoint after the
timeouthad been reached. 
>
> The docs of the option state that the value is rounded up or down to the nearest full minute, so I reckon "30s" gets
roundeddown to 0, thus effectively disabling the feature. It might be less surprising to users if values between "1s"
and"59s" get actually always rounded up to one minute? Arguably, that'd seem the more intuitive behavior to me.
Alternatively,logging a warning might be considered for values between "1s" and "30s"? Curious what folks here think. 
>

Thanks for bringing this up!

Yes, this is expected behavior, idle_replication_slot_timeout accepts
values in minutes, so a setting like "30s" is rounded down to 0,
effectively disabling the timeout, while values >= "31s" are rounded
up to 1.

This behavior isn’t specific to this GUC as Postgres generally rounds
values below a parameter’s minimum unit without a warning. For
example, wal_summary_keep_time and log_rotation_age behave the same
way.

--
Thanks,
Nisha



pgsql-bugs by date:

Previous
From: Gunnar Morling
Date:
Subject: Unexpected behavior when setting "idle_replication_slot_timeout"
Next
From: Fujii Masao
Date:
Subject: Re: Unexpected behavior when setting "idle_replication_slot_timeout"