Thread: Statement timeout logging

Statement timeout logging

From
Thom Brown
Date:
Hi,

When a statement is cancelled due to it running for long enough for
statement_timeout to take effect, it logs a message:

ERROR:  canceling statement due to statement timeout

However, it doesn't log what the timeout was at the time of the
cancellation.  This may be set in postgresql.conf, the database, or on
the role, but unless log_line_prefix is set to show the database name
and the user name, there's no reliable way of finding out what context
the configuration applied from.  Setting log_duration won't help
either because that only logs the duration of completed queries.

Should we output the statement_timeout value when a query is cancelled?

--
Thom



Re: Statement timeout logging

From
Pavel Stehule
Date:
2013/6/6 Thom Brown <thom@linux.com>:
> Hi,
>
> When a statement is cancelled due to it running for long enough for
> statement_timeout to take effect, it logs a message:
>
> ERROR:  canceling statement due to statement timeout
>
> However, it doesn't log what the timeout was at the time of the
> cancellation.  This may be set in postgresql.conf, the database, or on
> the role, but unless log_line_prefix is set to show the database name
> and the user name, there's no reliable way of finding out what context
> the configuration applied from.  Setting log_duration won't help
> either because that only logs the duration of completed queries.
>
> Should we output the statement_timeout value when a query is cancelled?

+1

we use same feature in GoodData. Our long queries are cancelled by
users and we should to known how much a users would to wait.

Regards

Pavel

>
> --
> Thom
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers



Re: Statement timeout logging

From
Thom Brown
Date:
On 6 June 2013 17:28, Pavel Stehule <pavel.stehule@gmail.com> wrote:
2013/6/6 Thom Brown <thom@linux.com>:
> Hi,
>
> When a statement is cancelled due to it running for long enough for
> statement_timeout to take effect, it logs a message:
>
> ERROR:  canceling statement due to statement timeout
>
> However, it doesn't log what the timeout was at the time of the
> cancellation.  This may be set in postgresql.conf, the database, or on
> the role, but unless log_line_prefix is set to show the database name
> and the user name, there's no reliable way of finding out what context
> the configuration applied from.  Setting log_duration won't help
> either because that only logs the duration of completed queries.
>
> Should we output the statement_timeout value when a query is cancelled?

+1

we use same feature in GoodData. Our long queries are cancelled by
users and we should to known how much a users would to wait.

It seems there are a couple more errors that could share this sort of information too:

canceling authentication due to timeout
canceling statement due to lock timeout 

Admittedly the first of those two isn't really an issue.
-- 
Thom