log spam with postgres_fdw

Started by Jeff Janesover 6 years ago3 messages
#1Jeff Janes
jeff.janes@gmail.com
1 attachment(s)

I'm sending this to hackers, because it is not exactly a bug, and it can't
be addressed from userland. I think it is a coding issue, although I
haven't identified the exact code.

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.

Is there anything that can be done about this, other than just learning to
ignore it?

Cheers,

Jeff

Attachments:

fdw_log_spam.sqltext/plain; charset=US-ASCII; name=fdw_log_spam.sqlDownload
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jeff Janes (#1)
Re: log spam with postgres_fdw

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
/messages/by-id/3DPLMQIC.YU6IFMLY.3PLOWL6W@FQT5M7HS.IFBAANAE.A7GUPCPM

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.

I imagine dblink has a similar issue.

regards, tom lane

#3Jeff Janes
jeff.janes@gmail.com
In reply to: Tom Lane (#2)
Re: log spam with postgres_fdw

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

/messages/by-id/3DPLMQIC.YU6IFMLY.3PLOWL6W@FQT5M7HS.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