Обсуждение: Bugs in superuser_reserved_connections and max_wal_senders vs max_connections
Bugs in superuser_reserved_connections and max_wal_senders vs max_connections
От
Magnus Hagander
Дата:
Both superuser_reserved_connections and max_wal_senders can be set to
a value that's higher than max_connections, which is quite pointless,
and annoying :)
The docs for superuser_reserved_connections say "The value must be
less than the value of max_connections.", but this is never enforced.
Well, it's strangely enfocred. With max_connections=100, I can set
superuser_reserved_connections to 103. Looks like this is caused by
autovacuum_max_workers - because if I increase that one to 4, then I
can get it up to104...
The check in PostmasterMain():if (ReservedBackends >= MaxBackends){ write_stderr("%s: superuser_reserved_connections
mustbe less than
max_connections\n", progname); ExitPostmaster(1);}
should probably check against MaxConnections instead of MaxBackends, I think?
The docs for max_wal_senders say nothing at all about the relation to
max_connections, which it really should. And it should probably be
enforced the same way that superuser_reserved_connections is, so you
can't set it to silly high values.
-- Magnus HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/
Magnus Hagander <magnus@hagander.net> writes:
> The check in PostmasterMain():
> if (ReservedBackends >= MaxBackends)
> {
> write_stderr("%s: superuser_reserved_connections must be less than
> max_connections\n", progname);
> ExitPostmaster(1);
> }
> should probably check against MaxConnections instead of MaxBackends, I think?
Yeah, this code probably dates from before there was a difference.
In general, I'd bet that this is not the only place where the wrong one
of those variables is being consulted.
regards, tom lane
Re: Bugs in superuser_reserved_connections and max_wal_senders vs max_connections
От
Magnus Hagander
Дата:
On Thu, Aug 9, 2012 at 4:17 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Magnus Hagander <magnus@hagander.net> writes:
>> The check in PostmasterMain():
>> if (ReservedBackends >= MaxBackends)
>> {
>> write_stderr("%s: superuser_reserved_connections must be less than
>> max_connections\n", progname);
>> ExitPostmaster(1);
>> }
>
>> should probably check against MaxConnections instead of MaxBackends, I think?
>
> Yeah, this code probably dates from before there was a difference.
That was my guess as well.
> In general, I'd bet that this is not the only place where the wrong one
> of those variables is being consulted.
Probably :)
I've fixed this issue. Didn't spot another one with a quick check, but
there's quite possibly something hiding somewhere, yes :)
-- Magnus HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/