Thanks Tom, That's definitely it- I've got a global database object that's used throughout my application, it looks like I missed one crucial mutex lock in the database code. Thanks again, Mike -----Original Message----- From: Tom Lane [mailto:tgl@xxxxxxxxxxxxx] Sent: Monday, March 10, 2008 10:19 PM To: Mike Cc: pgsql-general@xxxxxxxxxxxxxx Subject: Re: message contents do not agree with length in message type "T" "Mike" <mike@xxxxxxxxx> writes: > I'm using the libpq interface to PostgreSQL (8.3.0) in one of our apps, and > I'm having a sporadic issue with receiving the error message: > message contents do not agree with length in message type "T" server sent > data ("D" message) without prior row description ("T" message) The messages you're getting all mean that libpq has gotten out of sync with the traffic that it's receiving from the server. Now you might have discovered some fascinating new bug in either libpq or the server, but most of the reports like this that we've seen before have been because someone tried to use libpq in a multi-threaded application without sufficient interlocks to keep multiple threads from using the same PGconn concurrently. If your app has more than one thread then please look at that closely. If not, please see if you can put together a test case ... regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general