Re: [GENERAL] Problem with invalid byte sequence and log_min_error_statement

2009-04-17 Thread Janning Vygen
On Wednesday 15 April 2009 19:21:03 you wrote:
 Janning Vygen vy...@kicktipp.de writes:
  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?

 There's nothing inside of postgres that would operate on such a
 schedule.  Furthermore, unless I'm all wet about where the error is
 coming from, this *must* be happening during receipt of a command from
 an external client.

You were right.

 Perhaps turning on log_connections would give you a clue about what it
 is.  

thanks. Turning log_connections on helped me a lot! I found a buggy query from 
my postfix mailserver which retried the query every 4000 seconds.

thanks again for this excellent database and excellent support.

kind regards
Janning

 Also set log_line_prefix to make sure you can match up the error
 report with the previous connection log entry (adding the PID is usually
 enough).

   regards, tom lane


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


Re: [GENERAL] Problem with invalid byte sequence and log_min_error_statement

2009-04-15 Thread Tom Lane
Janning Vygen vy...@kicktipp.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.

 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?

LATIN1, or some other one of the single-byte LATINn encodings, likely.

regards, tom lane

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


Re: [GENERAL] Problem with invalid byte sequence and log_min_error_statement

2009-04-15 Thread Janning Vygen
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 vy...@kicktipp.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/msg7.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


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


Re: [GENERAL] Problem with invalid byte sequence and log_min_error_statement

2009-04-15 Thread Tom Lane
Janning Vygen vy...@kicktipp.de writes:
 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? 

There's nothing inside of postgres that would operate on such a
schedule.  Furthermore, unless I'm all wet about where the error is
coming from, this *must* be happening during receipt of a command from
an external client.

Perhaps turning on log_connections would give you a clue about what it
is.  Also set log_line_prefix to make sure you can match up the error
report with the previous connection log entry (adding the PID is usually
enough).

regards, tom lane

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