From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | Albrecht Dreß <albrecht(dot)dress(at)arcor(dot)de>, pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: FDW Foreign Table Access: strange LOG message |
Date: | 2018-03-20 19:21:37 |
Message-ID: | 4a4ae274-4860-da54-cc31-09749beb6ed8@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(at)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(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Farber | 2018-03-20 19:23:54 | Re: You might be able to move the set-returning function into a LATERAL FROM item. |
Previous Message | JotaComm | 2018-03-20 18:57:00 | FATAL: semctl(15073290, 4, SETVAL, 0) failed: Invalid argument |