Re: [HACKERS] Weird error messages from Windows upon client death

2014-01-28 Thread Florian Pflug
On Jan28, 2014, at 19:19 , Jeff Janes  wrote:
> On windows, if the client gets terminated while sending data to the server, 
> in a
> COPY for example, it results in some rather head-scratcher messages in the 
> server
> log, for example:
> 
> LOG:  could not receive data from client: No connection could be made because
> the target machine actively refused it.
> 
> Since the server was reading from the client and never tries to initiate a
> connection, the %m part of the message is a bit baffling.  The errno at this
> point is 10061.

My guess is that the server received a TCP RST, indicating that the client's
socket has gone away, and the the error message is the same for a RST received
during connection setup and a RST received later on.

During connection setup, it absolutely makes sense to say that the "client has
actively refused the connection" if it responds to a SYN packet with RST...

best regards,
Florian Pflug



-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] Weird error messages from Windows upon client death

2014-01-28 Thread Jeff Janes
On windows, if the client gets terminated while sending data to the server,
in a COPY for example, it results in some rather head-scratcher messages in
the server log, for example:

LOG:  could not receive data from client: No connection could be made
because the target machine actively refused it.

Since the server was reading from the client and never tries to initiate a
connection, the %m part of the message is a bit baffling.  The errno at
this point is 10061.

Googling for "No connection could be made because the target machine
actively refused it", I can't find any mentions for it that occur in a
context in which a connection is not being attempted, except for from
PostgreSQL.  So I think we must be doing something wrong but I can't figure
out what that would be (no strace, not gdb).  Any tips on how to figure out
why this is happening?

I run the below, and then terminated it with a ctrl-C.  This is with 9.4dev
compiled with MinGW, but I've seen (unconfirmed by me) reports of the same
%m from the Windows binary distribution for a production version.

perl -le 'print rand() foreach 1..1000' | psql -c 'copy foo from stdin'

Cheers,

Jeff