Re: pgsql: postgres_fdw: Fix handling of pending asynchronous requests. - Mailing list pgsql-committers

From Etsuro Fujita
Subject Re: pgsql: postgres_fdw: Fix handling of pending asynchronous requests.
Date
Msg-id CAPmGK15Lrw4sJ6sZU+NoAW2_D1rGkZ1vLuR3afyUdbrtBPdy+g@mail.gmail.com
Whole thread Raw
In response to Re: pgsql: postgres_fdw: Fix handling of pending asynchronous requests.  (Etsuro Fujita <etsuro.fujita@gmail.com>)
Responses Re: pgsql: postgres_fdw: Fix handling of pending asynchronous requests.  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-committers
On Fri, Jul 30, 2021 at 10:00 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote:
> On Fri, Jul 30, 2021 at 9:45 PM Michael Paquier <michael@paquier.xyz> wrote:
> > On Fri, Jul 30, 2021 at 08:08:07AM +0000, Etsuro Fujita wrote:
> > > postgres_fdw: Fix handling of pending asynchronous requests.
> >
> > You have angered many members of the buildfarm here, like:

> I’ll look into this.

Buildfarm members are causing this assertion failure:

TRAP: FailedAssertion("fsstate->conn_state->pendingAreq == areq",
File: "/home/pgbf/buildroot/HEAD/pgsql.build/../pgsql/contrib/postgres_fdw/postgres_fdw.c",
Line: 6900, PID: 744110)

I couldn’t reproduce this in my environment, but I noticed this, which
didn’t happen in my environment: the case of delivering notifications
to both of the parent async-capable nodes in ExecAppendAsyncEventWait
when processing the added test case query.  In that case, doing
postgresForeignAsyncNotify for the first parent async-capable node
would invoke process_pending_request on the second one when executing
its initplan, which would lead to the assertion failure when doing
postgresForeignAsyncNotify for the second one.  :-(  I think
postgresForeignAsyncNotify would need the same treatment as for
postgresForeignAsyncConfigureWait, like the attached.

Best regards,
Etsuro Fujita

Attachment

pgsql-committers by date:

Previous
From: John Naylor
Date:
Subject: pgsql: Remove redundant setting of pg_attribute.attcompression
Next
From: Tom Lane
Date:
Subject: pgsql: Use elog, not Assert, to report failure to provide an outer snap