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

Lists: pgsql-jdbc
From: Sudalai <sudalait2(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Abort() doesn't abort backends which are in WAITING state
Date: 2017-11-20 15:05:21
Message-ID: 1511190321680-0.post@n3.nabble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

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


From: rob stone <floriparob(at)gmail(dot)com>
To: Sudalai <sudalait2(at)gmail(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Abort() doesn't abort backends which are in WAITING state
Date: 2017-11-20 18:11:51
Message-ID: 1511201511.5126.8.camel@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

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


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
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
>
>
>