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

From: Etsuro Fujita <etsuro(dot)fujita(at)gmail(dot)com>
To: jiye <jiye_sw(at)126(dot)com>
Cc: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: Re: FDW connection drops with "Connection timed out" during async append query due to TCP receive buffer filling up
Date: 2026-03-11 08:01:02
Message-ID: CAPmGK157wTfup6Jqt7K1p1=S0kGoBRSeQ1M50fLt93tcF1NQ5w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Wed, Mar 11, 2026 at 3:25 PM jiye <jiye_sw(at)126(dot)com> wrote:
> Sorry, I made a mistake about the tcp_user_timeout configuration. Our app sets it to 9000 (9 seconds), but it still errors out even with 9000 - it just takes a little longer to error.
> And about this point :
> => I don’t actually know whether or if “buffer filling up” is accurate or relevant here. It doesn’t seem that way. You haven’t demonstrated that scenario here, just a timeout being reached.
> Actually i have caputured tcp dump firstly, and "tcp buffer filling up" seem to be demonstrated by "TCP windows full" packet."
> Secondly if data of fetch rows are not sufficiently wide, it does not reproduce this issue.
>
> So i suspect that the reason for this connection timeout is that the tcp buffer is full.

I think this problem is not with async execution, but with your
environment; if the root cause of it is “TCP windows full”, I think it
might fix it to 1) retrieve only needed columns from the remote server
and 2) decrease the fetch_size option for postgres_fdw.

Best regards,
Etsuro Fujita

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message PG Bug reporting form 2026-03-11 09:21:57 BUG #19427: TOAST Snapshot Assertion Failure
Previous Message jiye 2026-03-11 05:58:57 Re:Re: FDW connection drops with "Connection timed out" during async append query due to TCP receive buffer filling up