Discussion:
Detecting query timeouts properly
Evan Martin
2014-09-21 19:29:24 UTC
Permalink
Hello,

I'm using PostgreSQL 9.2.8 via Npgsql 2.2.0. When a query times out it
returns error 57014 with the message "canceling statement due to
statement timeout". I use the message to detect the timeout and re-try
in some cases. It seems a bit wrong to rely on the message, though - I
presume the message text is subject to change between releases. Is there
a better way? I cannot just rely on code 57014, because the same code is
used when the user cancels the query (eg. from pgAdmin), in which case I
don't want to re-try.

Regards,

Evan
--
Sent via pgsql-general mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
Albe Laurenz
2014-09-22 07:28:16 UTC
Permalink
Post by Evan Martin
I'm using PostgreSQL 9.2.8 via Npgsql 2.2.0. When a query times out it
returns error 57014 with the message "canceling statement due to
statement timeout". I use the message to detect the timeout and re-try
in some cases. It seems a bit wrong to rely on the message, though - I
presume the message text is subject to change between releases. Is there
a better way? I cannot just rely on code 57014, because the same code is
used when the user cancels the query (eg. from pgAdmin), in which case I
don't want to re-try.
I don't think that there is a good way to disambiguate that, and I agree
that parsing the error message text is not a very robust solution.

Is it really necessary to bother with the case that a statement is
explicitly canceled? That should not happen too often, and if you have
statement_timeout set to non-zero, queries should not "hang" indefinitely
long anyway, right?

Yours
Laurenz Albe
--
Sent via pgsql-general mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-gener
Loading...