What is causing 'canceling statement due to user request' ?

Started by Csaba Nagyover 19 years ago5 messagesgeneral
Jump to latest
#1Csaba Nagy
nagy@ecircle-ag.com

Hi all,

I know of 2 causes:

- hit CTRL-C in the psql client;
- have a non-zero statement timeout and have the statement actually
time out;

But I am seeing this via JDBC which can't cancel a statement AFAIK, and
the statement_timeout is set to 0 (in the config file globally, and
there's no override for the users, nor in our JDBC code).

I wonder if there is any other scenario which can trigger this error ? I
found a lot of them in our logs, last night we had hundreds of them, but
now that I looked it happened sporadically in the past too...

Could some network problem trigger this ?

TIA,
Csaba.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Csaba Nagy (#1)
Re: What is causing 'canceling statement due to user request' ?

Csaba Nagy <nagy@ecircle-ag.com> writes:

I wonder if there is any other scenario which can trigger this error ?

Anything sending SIGINT to a backend process would result in this
behavior. We've heard rumors that there are platforms wherein SIGINT
is used for strange purposes like enforcing process-runtime limits.

regards, tom lane

#3Thomas Kellerer
spam_eater@gmx.net
In reply to: Csaba Nagy (#1)
Re: What is causing 'canceling statement due to user request' ?

On 23.10.2006 16:14 Csaba Nagy wrote:

Hi all,

I know of 2 causes:

- hit CTRL-C in the psql client;
- have a non-zero statement timeout and have the statement actually
time out;

But I am seeing this via JDBC which can't cancel a statement AFAIK

JDBC *can* cancel a running statement. You just need to call cancel()
from another thread.

http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html#cancel()

Works great in my SQL front end.

Thomas

#4Csaba Nagy
nagy@ecircle-ag.com
In reply to: Thomas Kellerer (#3)
Re: What is causing 'canceling statement due to user

JDBC *can* cancel a running statement. You just need to call cancel()
from another thread.

http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html#cancel()

Works great in my SQL front end.

Are you sure ? Ever tried to cancel a long running statement and see if
it is still running in the DB after you cancelled it on the JDBC side ?

Cheers,
Csaba.

#5Thomas Kellerer
spam_eater@gmx.net
In reply to: Csaba Nagy (#4)
Re: What is causing 'canceling statement due to user

On 27.10.2006 10:13 Csaba Nagy wrote:

JDBC *can* cancel a running statement. You just need to call cancel()
from another thread.

http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html#cancel()

Works great in my SQL front end.

Are you sure ? Ever tried to cancel a long running statement and see if
it is still running in the DB after you cancelled it on the JDBC side ?

Hmm. Pretty sure, I did not really check the server itself, but I could
see that the CPU load (running a local Postgres) went down immediately,
which I took that the statement was no longer processed by the server.

Thomas