Re: FDW connection drops with "Connection timed out" during async append query due to TCP receive buffer filling up - Mailing list pgsql-bugs

From Laurenz Albe
Subject Re: FDW connection drops with "Connection timed out" during async append query due to TCP receive buffer filling up
Date
Msg-id f8e40c2970ec116bef448f30e147091b880e5139.camel@cybertec.at
Whole thread Raw
In response to FDW connection drops with "Connection timed out" during async append query due to TCP receive buffer filling up  (jiye <jiye_sw@126.com>)
Responses Re:Re: FDW connection drops with "Connection timed out" during async append query due to TCP receive buffer filling up
List pgsql-bugs
On Tue, 2026-03-10 at 18:17 +0800, jiye wrote:
> I encountered an issue with foreign table asynchronous scans.
>
> I'm testing on PostgreSQL 17 in a Windows WSL environment, with TCP keepalive settings configured as follows:
> configure:
> > tcp_keepalives_idle = 2
> > tcp_keepalives_interval = 2
> > tcp_keepalives_count = 3
> > tcp_user_timeout = 9
> >
> The foreign table was created with:
> sql:
> > CREATE TABLE ftab (a int, data varchar);
> I inserted test data using:
> sql:
> > INSERT INTO ftab
> > SELECT generate_series(1, 10000),
> >        substring(md5(random()::text) || repeat(md5(random()::text), 127), 1, 40960);
> Then I executed an async append query that unions with a simple query:
> sql:
> > SELECT f1(), 'local-data'
> > UNION ALL
> > SELECT * FROM f_ftab
> > LIMIT 2;
> Note: f1() is a function that sleeps for 10 seconds, created by:
> sql
> > CREATE OR REPLACE FUNCTION f1()
> > RETURNS integer
> > LANGUAGE plpgsql AS $$
> > BEGIN
> >     PERFORM pg_sleep(10);
> >     RETURN 1;
> > END; $$;
> The abnormal behavior was reproduced: the foreign data server connection was disconnected, with the following error
logs:
> text
> > 2026-03-10 17:52:55.969 CST [820] LOG: statement: FETCH 100 FROM c1
> > 2026-03-10 17:52:56.495 CST [820] LOG: could not receive data from client: Connection timed out
> > 2026-03-10 17:52:56.495 CST [820] LOG: unexpected EOF on client connection with an open transaction

I am not a network expert, but if you set tcp_user_timeout = 9, why are you surprised if the
connection times out after 9 seconds?

Yours,
Laurenz Albe



pgsql-bugs by date:

Previous
From: jiye
Date:
Subject: FDW connection drops with "Connection timed out" during async append query due to TCP receive buffer filling up
Next
From: jiye
Date:
Subject: Re:Re: FDW connection drops with "Connection timed out" during async append query due to TCP receive buffer filling up