Обсуждение: unexpected close
we have a inhouse Java OLTP type application thats getting unexpected errors. PostgreSQL 9.2.5 is logging... 2013-11-09 13:03:10.945 role@db[13101]: ERROR: invalid message format 2013-11-09 13:03:10.945 role@db[13101]: STATEMENT: select * from t1 where t1_id = $1 2013-11-09 13:03:10.945 role@db[13101]: FATAL: invalid frontend message type 0 2013-11-09 13:16:19.257 role@db[19291]: LOG: unexpected EOF on client connection with an open transaction 2013-11-09 13:16:34.152 role@db[19352]: LOG: unexpected EOF on client connection with an open transaction 2013-11-09 13:16:38.203 role@db[13161]: LOG: unexpected EOF on client connection with an open transaction 2013-11-09 13:17:38.995 role@db[19523]: ERROR: invalid message format 2013-11-09 13:17:38.995 role@db[19523]: STATEMENT: select * from t1 where t1_id = $1 2013-11-09 13:17:38.995 role@db[19523]: FATAL: invalid frontend message type 0 2013-11-09 13:17:40.622 role@db[19475]: ERROR: insufficient data left in message 2013-11-09 13:17:40.622 role@db[19475]: STATEMENT: select * from t1 where t1_id = $1 2013-11-09 13:17:40.622 role@db[19475]: FATAL: invalid frontend message type 0 this has been happening every few minutes, on a server thats getting sustained 100s of small transactions/second but is only maybe 10% busy peak. the clients are JDBC programs, and are getting this: java.sql.SQLException: org.postgresql.util.PSQLException: An I/O error occured while sending to the backend. ....stack dump.... Caused by: org.postgresql.util.PSQLException: An I/O error occured while sending to the backend. ....more stack dump.... Caused by: java.net.SocketException: Socket closed ....more stack dump.... the server is 9.2.5... PostgreSQL 9.2.5 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3), 64-bit but it looks like the app was packaged with a rather old JDBC, postgresql-8.3-604.jdbc3.jar our java apps do only the most basic sql APIs, all data is numbers and varchar, this jdbc worked fine with older versions. is this a error likely because of this old JDBC with the newer 9.2 server?
I/O errors generally mean there is some kind of network problem, however it should be trivial to replace the driver jar to confirm
On Sat, Nov 9, 2013 at 4:57 AM, John R Pierce <pierce@hogranch.com> wrote:
we have a inhouse Java OLTP type application thats getting unexpected errors.
PostgreSQL 9.2.5 is logging...
2013-11-09 13:03:10.945 role@db[13101]: ERROR: invalid message format
2013-11-09 13:03:10.945 role@db[13101]: STATEMENT: select * from t1 where t1_id = $1
2013-11-09 13:03:10.945 role@db[13101]: FATAL: invalid frontend message type 0
2013-11-09 13:16:19.257 role@db[19291]: LOG: unexpected EOF on client connection with an open transaction
2013-11-09 13:16:34.152 role@db[19352]: LOG: unexpected EOF on client connection with an open transaction
2013-11-09 13:16:38.203 role@db[13161]: LOG: unexpected EOF on client connection with an open transaction
2013-11-09 13:17:38.995 role@db[19523]: ERROR: invalid message format
2013-11-09 13:17:38.995 role@db[19523]: STATEMENT: select * from t1 where t1_id = $1
2013-11-09 13:17:38.995 role@db[19523]: FATAL: invalid frontend message type 0
2013-11-09 13:17:40.622 role@db[19475]: ERROR: insufficient data left in message
2013-11-09 13:17:40.622 role@db[19475]: STATEMENT: select * from t1 where t1_id = $1
2013-11-09 13:17:40.622 role@db[19475]: FATAL: invalid frontend message type 0
this has been happening every few minutes, on a server thats getting sustained 100s of small transactions/second but is only maybe 10% busy peak. the clients are JDBC programs, and are getting this:
java.sql.SQLException: org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.
....stack dump....
Caused by: org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.
....more stack dump....
Caused by: java.net.SocketException: Socket closed
....more stack dump....
the server is 9.2.5...
PostgreSQL 9.2.5 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3), 64-bit
but it looks like the app was packaged with a rather old JDBC, postgresql-8.3-604.jdbc3.jar
our java apps do only the most basic sql APIs, all data is numbers and varchar, this jdbc worked fine with older versions.
is this a error likely because of this old JDBC with the newer 9.2 server?
--
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc
On 11/09/13 01:57, John R Pierce wrote: > but it looks like the app was packaged with a rather old JDBC, > postgresql-8.3-604.jdbc3.jar > our java apps do only the most basic sql APIs, all data is numbers and > varchar, this jdbc worked fine with older versions. > > is this a error likely because of this old JDBC with the newer 9.2 server? Just a random observation (and probably wrong for this, but ...) we used to see these sorts of errors within ecpg and/or libpq when a connection got used by multiple threads simultaneously. But, IIRC, PG jdbc connections are thread-safe. Unless they weren't in the '8.3' era. (Relatively new to PG's jdbc so take with appropriately sized grain of salt :-p ). Bosco.