Re: Postgresql 7.0 JDBC exceptions - broken connections ?
Gunnar R|nning <gunnar@candleweb.no>
From: Gunnar R|nning <gunnar@candleweb.no>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Mount <petermount@it.maidstone.gov.uk>, "'Gunnar R|nning'" <gunnar@candleweb.no>, pgsql-interfaces@postgresql.org, "PostgreSQL Developers List (E-mail)" <hackers@postgresql.org>
Date: 2000-05-27T09:30:27Z
Lists: pgsql-hackers
Tom Lane <tgl@sss.pgh.pa.us> writes: > I think that this and the "Tuple received before MetaData" issue could > have a common cause, namely running out of memory on the client side > and not recovering well. libpq is known to emit its equivalent of > "Tuple received before MetaData" when the backend hasn't violated the > protocol at all. What happens is that libpq runs out of memory while > trying to accumulate a large query result, "recovers" by resetting > itself to no-query-active state, and then is surprised when the next > message is another tuple. (Obviously this error recovery plan needs > work, but no one's got round to it yet.) I wonder whether the JDBC > driver has a similar problem, and whether these queries could have > been retrieving enough data to trigger it? > This could be a possible explanation, as some of the queries may indeed retrieve large amounts of data. I have also noticed a couple of "Out of Memory" exceptions that could be related(This seem to be "temporary" out of memory exceptions, and not permanent memory leaks; so I guess these could be caused by queries returning huge amounts of data). > Another possibility is that the client app is failing to release > query results when done with them, which would eventually lead to > an out-of-memory condition even with not-so-large queries. I don't think this is the case. I've been running the application through OptimizeIT to profile memory and CPU usage and I haven't been able to spot any memory leakages in the driver; The quality of the JDBC driver is actually our main reason to migrate our application to PostgreSQL. regards, Gunnar