Hi.

> I would argue that this is an OpenSSL bug: it should not be trying to
> write on a connection that it knows perfectly well is already dead.
> (It should know that, anyway, because the only way that pqReadData would
> be trying to close the connection is that it got an error indication
> from OpenSSL.)
May be, may be...

> Possibly we could work around the problem by disabling SIGPIPE during
> connection close, but I don't really see why we should have to do that.
While take a look at source of libpq, i have discover following:
while reading from pipe, you are getting
        case SSL_ERROR_ZERO_RETURN:
                SOCK_ERRNO_SET(ECONNRESET); 
but why you'r do not check 
SOCK_ERRNO != ECONNRESET
while closing ssl connection ?

i was trying this and all is work fine.

In function close_SSL you are call SSL_shutdown to shutdown ssl pipe.
But if you are already get ECONNRESET (by pear?), why you call whi funtcion?

From openssl docs.
SSL_shutdown  - shuts down an active TLS/SSL connection. It sends the ``close 
notify'' shutdown alert to the peer.

That's why i've got SIGPIPE.

> That's pretty much a waste of time, because all it tells you is whether
> the connection was good the last time a query was done.  It is *not*
> intended as an active "ping".
Ok, i'll take it in my mind.

Alexey Zayats.

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

Reply via email to