Re: Danger of automatic connection reset in psql

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Oleksandr Shulgin <oleksandr(dot)shulgin(at)zalando(dot)de>, Jim Nasby <Jim(dot)Nasby(at)bluetreble(dot)com>, Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Danger of automatic connection reset in psql
Date: 2016-11-22 04:28:33
Message-ID: CAFj8pRCRf9WKdLrjFugesq3wiy7YrmL=eLU1nJ=0jt1qjNuWew@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2016-11-22 3:46 GMT+01:00 Robert Haas <robertmhaas(at)gmail(dot)com>:

> On Mon, Nov 21, 2016 at 4:55 AM, Oleksandr Shulgin
> <oleksandr(dot)shulgin(at)zalando(dot)de> wrote:
> > On Tue, Nov 15, 2016 at 4:10 PM, Jim Nasby <Jim(dot)Nasby(at)bluetreble(dot)com>
> wrote:
> >>
> >> On 11/14/16 5:41 AM, Oleksandr Shulgin wrote:
> >>>
> >>> Automatic connection reset is a nice feature for server development,
> >>> IMO. Is it really useful for anything else is a good question.
> >>
> >>
> >> I use it all the time for application development; my rebuild script
> will
> >> forcibly kick everyone out to re-create the database. I put that in
> because
> >> I invariably end up with a random psql sitting somewhere that I don't
> want
> >> to track down.
> >>
> >> What currently stinks though is if the connection is dead and the next
> >> command I run is a \i, psql just dies instead of re-connecting. It'd be
> nice
> >> if before reading the script it checked connection status and attempted
> a
> >> reconnect.
> >>
> >>> At least an option to control that behavior seems like a good idea,
> >>> maybe even set it to 'no reconnect' by default, so that people who
> >>> really use it can make conscious choice about enabling it in their
> >>> .psqlrc or elsewhere.
> >>
> >>
> >> +1, I don't think it needs to be the default.
> >
> >
> > So if we go in this direction, should the option be specified from
> command
> > line or available via psqlrc (or both?) I think both make sense.
> >
> > What should be the option and control variable names? Something like:
> > --reconnect and RECONNECT? Should we allow reconnect in non-interactive
> > mode? I have no use case for that, but it might be different for others.
> > If non-interactive is not supported then it could be a simple boolean
> > variable, otherwise we might want something like a tri-state: on / off /
> > interactive (the last one being the default).
>
> I think it should just be another psql special variable, like
> AUTOCOMMIT or VERBOSITY. If the user wants to set it on the command
> line, they can just use -v. We don't need a separate, dedicated
> option for this, I think.
>

In this case depends on a default. For almost all scripts the sensible
value is "without reconnect". It be unfriendly to use this setting via -v
variable.

Regards

Pavel

>
> --
> Robert Haas
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Craig Ringer 2016-11-22 04:35:56 Re: Re: Use procsignal_sigusr1_handler and RecoveryConflictInterrupt() from walsender?
Previous Message Tomas Vondra 2016-11-22 03:42:14 Re: WIP: multivariate statistics / proof of concept