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

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: jiye <jiye_sw(at)126(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: FDW connection drops with "Connection timed out" during async append query due to TCP receive buffer filling up
Date: 2026-03-10 17:16:04
Message-ID: f8e40c2970ec116bef448f30e147091b880e5139.camel@cybertec.at
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: 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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message jiye 2026-03-11 01:11:01 Re:Re: FDW connection drops with "Connection timed out" during async append query due to TCP receive buffer filling up
Previous Message jiye 2026-03-10 10:17:44 FDW connection drops with "Connection timed out" during async append query due to TCP receive buffer filling up