Unexpected behavior when setting "idle_replication_slot_timeout"

Gunnar Morling <gunnar.morling@googlemail.com>

From: Gunnar Morling <gunnar.morling@googlemail.com>
To: pgsql-bugs@lists.postgresql.org
Date: 2025-07-04T09:54:15Z
Lists: pgsql-bugs
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 timeout had 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 rounded down 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 and all the best,

--Gunnar

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. doc: Clarify meaning of "idle" in idle_replication_slot_timeout.

  2. Change unit of idle_replication_slot_timeout to seconds.