Re: log spam with postgres_fdw - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: log spam with postgres_fdw
Date
Msg-id CAMkU=1wSVQYcu8EAHSUHnT6oHJkOR7t32utJCoO_4-cwK19V4g@mail.gmail.com
Whole thread Raw
In response to Re: log spam with postgres_fdw  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers


On Sun, Sep 15, 2019 at 11:14 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Jeff Janes <jeff.janes@gmail.com> writes:
> When closing the local session which had used postgres_fdw over an ssl
> connection, I get log spam on the foreign server saying:
> LOG:  could not receive data from client: Connection reset by peer
> It is easy to reproduce, but you must be using ssl to do so.
> On searching, I see that a lot of people have run into this issue, with
> considerable confusion, but as far as I can see it has never been diagnosed.

In
https://www.postgresql.org/message-id/flat/3DPLMQIC.YU6IFMLY.3PLOWL6W%40FQT5M7HS.IFBAANAE.A7GUPCPM


Thanks, I had not spotted that one, I guess because the log message itself was not in the subject so it ranked lower.
 
we'd concluded that the issue is probably that postgres_fdw has no
logic to shut down its external connections when the session closes.
It's not very clear why the SSL dependency, but we speculated that
adding an on_proc_exit callback to close the connection(s) would help.


It is easy to reproduce the ssl dependency without any FDW, just by doing a kill -9 on psql. Apparently the backend process for unencrypted connections are happy to be ghosted, while ssl ones are not; which seems like an odd distinction to make.  So should this be addressed on both sides (the server not whining, and the client doing the on_proc_exit anyway?).  I can take a stab at the client side one, but I'm over my head on the ssl connection handling logic on the server side.
 
Cheers,

Jeff

pgsql-hackers by date:

Previous
From: David Fetter
Date:
Subject: Re: Efficient output for integer types
Next
From: Jeff Janes
Date:
Subject: Re: Primary keepalive message not appearing in Logical Streaming Replication