Re: Problem with invalid byte sequence and log_min_error_statement

From: Janning Vygen <vygen(at)kicktipp(dot)de>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Problem with invalid byte sequence and log_min_error_statement
Date: 2009-04-15 16:42:13
Message-ID: 200904151842.13728.vygen@kicktipp.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

Thank you for this great and ultra-fast support! One more question:

On Wednesday 15 April 2009 17:38:51 you wrote:
> Janning Vygen <vygen(at)kicktipp(dot)de> writes:
> > I am investigating some error messages in my log file:
> >
> > Apr 15 08:04:34 postgres[20686]: [4-1] 2009-04-15 08:04:34 CEST ERROR:
> > invalid byte sequence for encoding "UTF8": 0x81
> > Apr 15 08:04:34 postgres[20686]: [4-2] 2009-04-15 08:04:34 CEST HINT:
> > This error can also happen if the byte sequence does not match the
> > encoding expected by the
> > Apr 15 08:04:34 postgres[20686]: [4-3] server, which is controlled by
> > "client_encoding".
> >
> > I want to know which statement produces this error. I have
> >
> > show log_min_error_statement ;
> > error
> >
> > show log_error_verbosity;
> > default
> >
> > so i think the error statement should be logged. Why is the error
> > statement not logged?
>
> Because the error is happening while trying to convert the statement
> into the database's encoding. We cannot log the string we have without
> creating an encoding mismatch in the postmaster log.

Ok, so i need to track it another way.

Now i see that the errors occur _exactly_ every 4000 seconds (1 hour, 6
minutes and 40 seconds). I have no clue as i only have one cronjob at night
concerning postgresql. I have no autovacuum running (only manual at night). my
application cronjobs are only running at night. i have a few threads but no
thread has a sleep time of 4000 millis, besides the fact that they all work
fine. Maybe i have to check my c3p0 pool. however, i know i have to search for
my own, as you can't look into my app. But maybe someone has a hint, that
something inside or outside postgresql is usually running every 4000 seconds?

> > I always see 0x81 and 0xe46973 as invalid byte sequence. Can someone give
> > me a hint what characters in which encoding those bytes might be?

"0xe46973" looks like "äis" which i found in another thread about encodings
http://archives.postgresql.org/pgsql-de-allgemein/2006-10/msg00007.php
"äis" is part of "Westeuropäische Normalzeit" (i hope you can see the german
umlaut ä)

But why would any process run every 4000 seconds doing something like saying
"Westeuropäische Normalzeit"?

And as far as i can see, the code sequence 0x81 is not defined in latin-n.

kind regards
Janning

> LATIN1, or some other one of the single-byte LATINn encodings, likely.
>
> regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2009-04-15 17:21:03 Re: Problem with invalid byte sequence and log_min_error_statement
Previous Message Tom Lane 2009-04-15 16:34:12 Re: [GENERAL] Performance of full outer join in 8.3