Re: Warn when creating or enabling a subscription with max_logical_replication_workers = 0 - Mailing list pgsql-hackers

From Yugo Nagata
Subject Re: Warn when creating or enabling a subscription with max_logical_replication_workers = 0
Date
Msg-id 20260205101239.3c432a7766bc962bad9c6c51@sraoss.co.jp
Whole thread Raw
In response to Re: Warn when creating or enabling a subscription with max_logical_replication_workers = 0  (Peter Smith <smithpb2250@gmail.com>)
Responses Re: Warn when creating or enabling a subscription with max_logical_replication_workers = 0
Re: Warn when creating or enabling a subscription with max_logical_replication_workers = 0
List pgsql-hackers
On Wed, 4 Feb 2026 17:26:25 +1100
Peter Smith <smithpb2250@gmail.com> wrote:

> On Wed, Feb 4, 2026 at 4:07 PM Yugo Nagata <nagata@sraoss.co.jp> wrote:
> >
> > Hi,
> >
> > I would like to propose emitting a warning when creating or enabling a
> > subscription while max_logical_replication_workers is set to 0. In this
> > case, the CREATE/ALTER SUBSCRIPTION command completes successfully without
> > any warning, making it difficult to notice that logical replication cannot
> > start.
> >
> > Of course, users can confirm whether logical replication is working by
> > checking system views such as pg_stat_replication or pg_stat_subscription.
> > However, emitting warnings explicitly in these cases would make this
> > situation more visible. We have seen user reports where this behavior
> > caused confusion, with users wondering why replication did not start.
> >
> 
> Hi Nagata-San.
> 
> AFAIK the default for `max_logical_replication_workers` is 4. So how
> does the maximum get to be 0 unless the user had explicitly configured
> it that way?

That's correct, but the goal here is simply to make it easier for users to
be aware of this condition, since the current behavior provides no
indication that replication will not start.

> Also subscriptions require multiple workers in order to work properly
> [1] so why check only 0? Why not check 1 or 2 or 3.... those low
> numbers are also likely to cause similar problems aren't they?
>
> And what about when the  `max_logical_replication_workers` is 100, but
> those 100 are already being used. IOW, would it be more useful to warn
> when you do not have enough *available* workers for the Subscription
> to function properly, rather than checking what the maximum value is
> set to?

When max_logical_replication_workers is zero, the logical replication
launcher will never start. Otherwise, it does start and emits the
following warning to the server log when workers cannot be obtained:

WARNING: out of logical replication worker slots
HINT: You might need to increase "max_logical_replication_workers"

Given this, I think it is sufficient to warn only when
max_logical_replication_workers is zero.

That said, this warning is currently emitted only to the server log and
does not appear as a response to CREATE/ALTER SUBSCRIPTION. However, I'm
not sure whether emitting a similar warning as part of the
CREATE/ALTER SUBSCRIPTION response would add much value.

Regards,
Yugo Nagata

> 
> ======
> [1]  https://www.postgresql.org/docs/current/runtime-config-replication.html#GUC-MAX-LOGICAL-REPLICATION-WORKERS
> 
> Kind Regards,
> Peter Smith
> Fujitsu Australia
> 
> 


-- 
Yugo Nagata <nagata@sraoss.co.jp>



pgsql-hackers by date:

Previous
From: Chao Li
Date:
Subject: Re: Pasword expiration warning
Next
From: Tatsuo Ishii
Date:
Subject: Re: Row pattern recognition