Re: pgsql: postgres_fdw: Fix handling of pending asynchronous requests.

Поиск
Список
Период
Сортировка
От Etsuro Fujita
Тема Re: pgsql: postgres_fdw: Fix handling of pending asynchronous requests.
Дата
Msg-id CAPmGK15Lrw4sJ6sZU+NoAW2_D1rGkZ1vLuR3afyUdbrtBPdy+g@mail.gmail.com
обсуждение исходный текст
Ответ на Re: pgsql: postgres_fdw: Fix handling of pending asynchronous requests.  (Etsuro Fujita <etsuro.fujita@gmail.com>)
Ответы Re: pgsql: postgres_fdw: Fix handling of pending asynchronous requests.
Список 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

Вложения

В списке pgsql-committers по дате отправления:

Предыдущее
От: John Naylor
Дата:
Сообщение: pgsql: Remove redundant setting of pg_attribute.attcompression
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Use elog, not Assert, to report failure to provide an outer snap