Issue in postgres_fdw causing unnecessary wait for cancel request reply

Поиск
Список
Период
Сортировка
От Fujii Masao
Тема Issue in postgres_fdw causing unnecessary wait for cancel request reply
Дата
Msg-id e587761c-eef3-1f83-bf16-6dadba0acaab@oss.nttdata.com
обсуждение исходный текст
Ответы Re: Issue in postgres_fdw causing unnecessary wait for cancel request reply  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Re: Issue in postgres_fdw causing unnecessary wait for cancel request reply  (Etsuro Fujita <etsuro.fujita@gmail.com>)
Список pgsql-hackers
Hi,

When using postgres_fdw, in the event of a local transaction being
aborted while a query is running on a remote server,
postgres_fdw sends a cancel request to the remote server.
However, if PQgetCancel() returned NULL and no cancel request was issued,
I found that postgres_fdw could still wait for the reply to
the cancel request, causing unnecessary wait time with a 30 second timeout.

For example, the following queries can reproduce the issue:

----------------------------
create extension postgres_fdw;
create server loopback foreign data wrapper postgres_fdw options (tcp_user_timeout 'a');
create user mapping for public server loopback;
create view t as select 1 as i from pg_sleep(100);
create foreign table ft (i int) server loopback options (table_name 't');
select * from ft;

Press Ctrl-C while running the above SELECT query.
----------------------------

Attached patch fixes this issue. It ensures that postgres_fdw only waits
for a reply if a cancel request is actually issued. Additionally,
it improves PQgetCancel() to set error messages in certain error cases,
such as when out of memory occurs and malloc() fails. Moreover,
it enhances postgres_fdw to report a warning message when PQgetCancel()
returns NULL, explaining the reason for the NULL value.

Thought?

-- 
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION
Вложения

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

Предыдущее
От: Aleksander Alekseev
Дата:
Сообщение: [PATCH] Use role name "system_user" instead of "user" for unsafe_tests
Следующее
От: Peter Geoghegan
Дата:
Сообщение: Re: Show various offset arrays for heap WAL records