On Mon, 31 Jan 2005, Kolli, Kishore wrote:
> I am trying to upgrade a web app running postgres7.3, tomcat 4.1 to the
> above environment. I have installed the new postgres 8.0 port and the
> postgresql as a service under user postgres. I can deploy the application to
> tomcat and everything seems to be running ok until I try to open a database
> session. The program gets kicked out with no exceptions. ( I have the open
> session method sandwiched in a try-catch clause and there is also finally
> segment). As soon as I try to open a db session, the program goes to finally
> clause with no exception thrown and when looked into the postgres log, I see
> the following error message
>
> "2005-02-01 00:23:55 LOG: could not receive data from client: No connection
> could be made because the target machine actively refused it.
> 2005-02-01 00:23:55 LOG: unexpected EOF on client connection"
>
The server code in question (src/backend/libpq/pqcomm.c) explains why
no error is sent to the client. Why the error happens in the first
place is beyond me though.
Kris Jurka
r = secure_read(MyProcPort, PqRecvBuffer + PqRecvLength,
PQ_BUFFER_SIZE - PqRecvLength);
if (r < 0)
{
if (errno == EINTR)
continue; /* Ok if interrupted */
/*
* Careful: an ereport() that tries to write to the client
* would cause recursion to here, leading to stack overflow
* and core dump! This message must go *only* to the
* postmaster log.
*/
ereport(COMMERROR,
(errcode_for_socket_access(),
errmsg("could not receive data from client: %m")));
return EOF;
}