Re: FDW Foreign Table Access: strange LOG message - Mailing list pgsql-general

From Adrian Klaver
Subject Re: FDW Foreign Table Access: strange LOG message
Date
Msg-id 4a4ae274-4860-da54-cc31-09749beb6ed8@aklaver.com
Whole thread Raw
In response to FDW Foreign Table Access: strange LOG message  (Albrecht Dreß <albrecht.dress@arcor.de>)
Responses Re: FDW Foreign Table Access: strange LOG message  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
On 03/20/2018 11:52 AM, Albrecht Dreß wrote:
> Hi all,
> 
> I use Postgres 10.3 on a Debian Stretch system with foreign tables, and 
> noticed strange LOG messages when accessing them.
> 
> The data base setup is basically
> 
> ---8<------------------------------------------------------------------------------------------ 
> 
> CREATE EXTENSION IF NOT EXISTS postgres_fdw WITH SCHEMA public;
> CREATE SERVER ext_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (
>      dbname 'ext_db', host 'localhost', updatable 'false');
> CREATE FOREIGN TABLE public.ext_table (
>      […]
> ) SERVER ext_server OPTIONS (schema_name 'public', table_name 
> 'some_table', updatable 'false');
> ---8<------------------------------------------------------------------------------------------ 
> 
> 
> Now I use the following trivial Python2 (psycopg2) code to access the 
> tables:
> 
> ---8<------------------------------------------------------------------------------------------ 
> 
> import psycopg2
> conn = psycopg2.connect(dbname='my_db')
> with conn.cursor() as csr:
>     csr.execute("SELECT * FROM […] LIMIT 1")
>     csr.fetchone()
> conn.close()
> ---8<------------------------------------------------------------------------------------------ 
> 
> 
> When I access a “local” table of my_db in the SELECT statement, there is 
> no LOG message.  However, reading from ext_table works just fine, but 
> the conn.close() statement above triggers the log message
> 
> ---8<------------------------------------------------------------------------------------------ 
> 
> [time stamp/pid] user@my_db LOG:  could not receive data from client: 
> Connection reset by peer
> ---8<------------------------------------------------------------------------------------------ 
> 
> 
> Did I miss something in the setup here?  Or is there any other way to 
> get rid of the message (which fills ~95% of my logs)?

My suspicion is it has to do with this:

https://www.postgresql.org/docs/10/static/postgres-fdw.html#id-1.11.7.43.10
"
F.34.2. Connection Management

postgres_fdw establishes a connection to a foreign server during the 
first query that uses a foreign table associated with the foreign 
server. This connection is kept and re-used for subsequent queries in 
the same session. However, if multiple user identities (user mappings) 
are used to access the foreign server, a connection is established for 
each user mapping.
"

Guessing that conn.close() is not closing the internal FDW connection 
properly. Not sure how to fix, I will ponder some though.

> 
> Thanks in advance,
> Albrecht.


-- 
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: JotaComm
Date:
Subject: FATAL: semctl(15073290, 4, SETVAL, 0) failed: Invalid argument
Next
From: Alexander Farber
Date:
Subject: Re: You might be able to move the set-returning function into aLATERAL FROM item.