Re: Abort() doesn't abort backends which are in WAITING state

From: Jorge Solórzano <jorsol(at)gmail(dot)com>
To: rob stone <floriparob(at)gmail(dot)com>
Cc: Sudalai <sudalait2(at)gmail(dot)com>, List <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: Abort() doesn't abort backends which are in WAITING state
Date: 2017-11-20 21:42:21
Message-ID: CA+cVU8MpMPpcFwb-BSwOHL4n6u-Kj-Pbm1hRTki4tkSCaRYOqA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi Sudalai,

It looks that is a bug, or actually an incomplete implementation.

The java.sql.Connection.abort(Executor) should do this:

>
> Terminates an open connection. Calling abort results in:
>
> - The connection marked as closed
> - Closes any physical connection to the database
> - Releases resources used by the connection
> - Insures that any thread that is currently accessing the connection
> will either progress to completion or throw an SQLException.
>
>
​But the ​current implementation looks that only mark the connection as
closed at network level:

https://github.com/pgjdbc/pgjdbc/blob/279fb435b392114c45266ecef901bfd59470842a/pgjdbc/src/main/java/org/postgresql/core/QueryExecutor.java#L325

Jorge Solórzano

On Mon, Nov 20, 2017 at 12:11 PM, rob stone <floriparob(at)gmail(dot)com> wrote:

>
>
> On Mon, 2017-11-20 at 08:05 -0700, Sudalai wrote:
> > Dear geeks,
> >
> > When we try to abort backend process which are in "WAITING STATE" via
> > java.sql.Connection.abort(), socket in application server was closed,
> > but
> > backend process doesn't get aborted.
> > Backends get aborted only after it resources for which it waited.
> >
> > Is there anyway we can abort those backend immediately?
> >
> > We are using database version : 9.5.1, 9.4.0. Driver version :
> > 42.1.4 JDBC
> > 42.
> >
> > Thanks in advance.
> >
> > -
> > Sudalai
> >
> >
> >
> > -----
> > sudalai
> > --
> > Sent from: http://www.postgresql-archive.org/PostgreSQL-jdbc-f2168246
> > .html
> >
>
>
>
> Hi Sudalai,
>
> I'm not a "geek" -- just giving my two cents worth.
>
> java.sql.Connection.abort(Executor executor) may throw a SQLException
> or a SecurityException.
> Are either of these exceptions being thrown?
>
> Are you closing the connection prior to trying the abort?
>
> HTH,
> Robert
>
>
>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Michael Paquier 2017-11-21 04:36:08 Re: [JDBC] [HACKERS] Channel binding support for SCRAM-SHA-256
Previous Message rob stone 2017-11-20 18:11:51 Re: Abort() doesn't abort backends which are in WAITING state