java.net.SocketException: Broken pipe

From: Phil(dot)Hourihane(at)meridianp2p(dot)com
To: pgsql-jdbc(at)postgresql(dot)org
Subject: java.net.SocketException: Broken pipe
Date: 2003-09-22 12:43:20
Message-ID: OF6400F565.F10706C8-ON80256DA9.0045C24A-80256DA9.0045D215@meridianp2p.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hello, World.

I have an intermittent problem that I am having trouble with, using
postgresql
7.3.4. It manifests itself as a SocketException...

java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:69)
at
java.io.BufferedOutputStream.flush(BufferedOutputStream.java:127)
at org.postgresql.PG_Stream.flush(PG_Stream.java:352)
at
org.postgresql.core.QueryExecutor.sendQuery(QueryExecutor.java:159)
at
org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:70)
...etc...

... but it doesn't seem to correspond to the mails on this list that
mention
this trace. The previous mails warn that this can happen if an earlier
statement
includes a null character (char 0). I tried to reproduce the problem that
way but instead I was prevented by...

java.lang.IllegalArgumentException: \0 not allowed
at
org.postgresql.jdbc1.AbstractJdbc1Statement.escapeString(AbstractJdbc1Statement.java:955)
at
org.postgresql.jdbc1.AbstractJdbc1Statement.setString(AbstractJdbc1Statement.java:917)
at
org.postgresql.jdbc1.AbstractJdbc1Statement.setString(AbstractJdbc1Statement.java:900)
...etc...

Now, the problem seems to occur only intermittently, and will 'repair'
itself
with no action on my part. It does however, seem to occur in clumps - it
will
fail a few times in a short space of time before working again.

I have created a statement at boot time for this purpose (it is a
statement
that gets used a lot, so I prefer to cache it), rather than create a new
statement for each invocation. Some posts on the mailing list mention this
as a problem (the backend shutting down the connection), but I have no
idea
how to control this behaviour.

I don't seen to be able to reproduce this behaviour on demand; I have seen
it in logs of a system that is running long-term, not just a development
box
that is working for a little bit at a time.

It doesn't seem to be related to heavy loads on the system either - the
load
has been pretty light when it occurred.

Has anybody else encountered this problem or had any success in dealing
with it?

PHiL

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Paul Thomas 2003-09-22 14:18:01 Re: Begin transaction?
Previous Message Bjørn T Johansen 2003-09-22 11:38:39 Begin transaction?