Re: auto_explain logs ERROR: 08P01 for every query using bind variable

From: Ted Liu <ted_liu(at)yahoo(dot)com>
To: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
Cc: "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: auto_explain logs ERROR: 08P01 for every query using bind variable
Date: 2020-01-31 15:54:37
Message-ID: 1612134292.2041998.1580486077284@mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi Jeff,
Thank you for looking into this issue.
Our Postgres version is 11.5. The auto_explain settings are 
                name                | setting------------------------------------+--------- auto_explain.log_analyze           | off auto_explain.log_buffers           | off auto_explain.log_format            | text auto_explain.log_min_duration      | 190000 auto_explain.log_nested_statements | off auto_explain.log_timing            | on auto_explain.log_triggers          | off auto_explain.log_verbose           | off auto_explain.sample_rate           | 1(9 rows)
The client is java using jdbc. 
Thanks,
Ted
On Friday, January 31, 2020, 9:52:51 AM EST, Jeff Janes <jeff(dot)janes(at)gmail(dot)com> wrote:

On Fri, Jan 31, 2020 at 2:14 AM Ted Liu <ted_liu(at)yahoo(dot)com> wrote:

To whom it may concern,
For performance and security, most of our queries use bind variables. We also implemented auto_explain for tracking down un-optimized queries. Our database supports a large application. During the work-hours, there are 30,000+ queries executed every hour. PostgreSQL logs rotates every hour and each log contains 30,000+ error message like below.
2020-01-27 00:00:03 UTC:xxx.xx.0.189(35556):xxxxxx(at)xxxxxxdb:[130756]:ERROR:  ERROR: 08P01: bind message supplies 0 parameters, but prepared statement "..." requires 1 2020-01-27 00:00:03 UTC:xxx.xx.0.189(35558):xxxxxx(at)xxxxxxdb:[130756]:LOCATION:  exec_bind_message, postgres.c:16012020-01-27 00:00:03 UTC:xxx.xx.0.189(35558):xxxxxx(at)xxxxxxdb:[130756]:STATEMENT:  EXPLAIN select ...,...,..,... from ... where ....=$1
These error messages are really overwhelming to us and they are not useful at all. In our opinion, these error messages should not be logged. 

I agree they shouldn't be logged.  And I don't get such messages when using auto_explain with something like `pgbench -M prepared`.
What version are you using?  What settings are you using for auto_explain?  What is your client language/driver?  Maybe the client is doing something weird like sending duplicate binds?
Cheers,
Jeff

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2020-01-31 17:11:19 Re: auto_explain logs ERROR: 08P01 for every query using bind variable
Previous Message Jeff Janes 2020-01-31 14:52:36 Re: auto_explain logs ERROR: 08P01 for every query using bind variable