don't allow walsender to consume superuser_reserved_connection slots, or during shutdown

Lists: pgsql-hackers
From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: don't allow walsender to consume superuser_reserved_connection slots, or during shutdown
Date: 2010-04-22 01:11:50
Message-ID: u2z603c8f071004211811n15d28826z290c1ae6c65fd965@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Wed, Apr 21, 2010 at 1:56 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>> ...shouldn't we move the "tests", plural, rather than just the one?
>> It seems right to reject new SR connections during shutdown.
>
> Yeah; you'd also need to adjust both of them to consider am_walsender.
> (IOW, we want to treat SR connections as non-superuser for both tests.)

[ subject changed, recipient list trimmed ]

Here's the fine patch. The actual code changes are simple and seem to
work as expected, but I struggled a bit with the phrasing of the
messages. Feel free to suggest improvements. Also, I wasn't sure if
there was somewhere in the documentation where we discussed the
restriction that only superusers can connect during shutdown. If
there is such a place, we should update that, too.

...Robert

Attachment Content-Type Size
superuser_is_not_enuf.patch application/octet-stream 3.0 KB

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: don't allow walsender to consume superuser_reserved_connection slots, or during shutdown
Date: 2010-04-22 02:01:17
Message-ID: 20879.1271901677@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> Here's the fine patch. The actual code changes are simple and seem to
> work as expected, but I struggled a bit with the phrasing of the
> messages. Feel free to suggest improvements.

Stick with the original wording? I don't really see a need to change it.

regards, tom lane


From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: don't allow walsender to consume superuser_reserved_connection slots, or during shutdown
Date: 2010-04-22 02:27:26
Message-ID: w2q3f0b79eb1004211927v283a3706ubd35c8bc608199d@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Thu, Apr 22, 2010 at 11:01 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>> Here's the fine patch.  The actual code changes are simple and seem to
>> work as expected, but I struggled a bit with the phrasing of the
>> messages.  Feel free to suggest improvements.
>
> Stick with the original wording?  I don't really see a need to change it.

How about?:

if ((!am_superuser || am_walsender) &&
ReservedBackends > 0 &&
!HaveNFreeProcs(ReservedBackends))
{
if (am_walsender)
ereport(FATAL,
(errcode(ERRCODE_TOO_MANY_CONNECTIONS),
errmsg("remaining connection slots are reserved for
non-replication superuser connections")));
else
ereport(FATAL,
(errcode(ERRCODE_TOO_MANY_CONNECTIONS),
errmsg("connection limit exceeded for non-superusers")));
}

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center


From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: don't allow walsender to consume superuser_reserved_connection slots, or during shutdown
Date: 2010-04-22 13:23:40
Message-ID: t2k603c8f071004220623s47860c70o659050e32810a9f0@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Wed, Apr 21, 2010 at 10:01 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>> Here's the fine patch.  The actual code changes are simple and seem to
>> work as expected, but I struggled a bit with the phrasing of the
>> messages.  Feel free to suggest improvements.
>
> Stick with the original wording?  I don't really see a need to change it.

I don't think that's a good idea. If we just say that the remaining
connection slots are for superusers, someone will inevitably ask us
why their superuser replication can't connect. I think it's important
to phrase things as accurately as possible.

...Robert


From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: don't allow walsender to consume superuser_reserved_connection slots, or during shutdown
Date: 2010-04-26 10:54:23
Message-ID: h2x603c8f071004260354s1dfac4aeq79b990eebab67ca8@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Wed, Apr 21, 2010 at 9:11 PM, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> On Wed, Apr 21, 2010 at 1:56 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>>> ...shouldn't we move the "tests", plural, rather than just the one?
>>> It seems right to reject new SR connections during shutdown.
>>
>> Yeah; you'd also need to adjust both of them to consider am_walsender.
>> (IOW, we want to treat SR connections as non-superuser for both tests.)
>
> [ subject changed, recipient list trimmed ]
>
> Here's the fine patch.  The actual code changes are simple and seem to
> work as expected, but I struggled a bit with the phrasing of the
> messages.  Feel free to suggest improvements.  Also, I wasn't sure if
> there was somewhere in the documentation where we discussed the
> restriction that only superusers can connect during shutdown.  If
> there is such a place, we should update that, too.

I have committed this as-is. We can further change the error messages
if we like, but there didn't seem to be a clear consensus on any
particular change from what I have here.

...Robert