postgresql/contrib
Tom Lane 89962bfef6 postgres_fdw: re-issue cancel requests a few times if necessary.
Despite the best efforts of commit 0e5c82380, we're still seeing
occasional failures of postgres_fdw's query_cancel test in the
buildfarm.  Investigation suggests that its 100ms timeout is
still not enough to reliably ensure that the remote side starts
the query before receiving the cancel request --- and if it
hasn't, it will just discard the request because it's idle.

We discussed allowing a cancel request to kill the next-received
query, but that would have wide and perhaps unpleasant side-effects.
What seems safer is to make postgres_fdw do what a human user would
likely do, which is issue another cancel request if the first one
didn't seem to do anything.  We'll keep the same overall 30 second
grace period before concluding things are broken, but issue additional
cancel requests after 1 second, then 2 more seconds, then 4, then 8.
(The next one in series is 16 seconds, but we'll hit the 30 second
timeout before that.)

Having done that, revert the timeout in query_cancel.sql to 10 ms.
That will still be enough on most machines, most of the time, for
the remote query to start; but now we're intentionally risking the
race condition occurring sometimes in the buildfarm, so that the
repeat-cancel code path will get some testing.

As before, back-patch to v17.  We might eventually contemplate
back-patching this further, and/or adding similar logic to dblink.
But given the lack of field complaints to date, this feels like
mostly an exercise in test case stabilization, so v17 is enough.

Discussion: https://postgr.es/m/colnv3lzzmc53iu5qoawynr6qq7etn47lmggqr65ddtpjliq5d@glkveb4m6nop
2024-12-23 15:14:30 -05:00
..
amcheck amcheck: Fixes for right page check during unique constraint check 2024-05-26 07:14:12 +03:00
auth_delay Update copyright for 2024 2024-01-03 20:49:05 -05:00
auto_explain Add EXPLAIN (MEMORY) to report planner memory consumption 2024-01-29 17:53:03 +01:00
basebackup_to_shell Update copyright for 2024 2024-01-03 20:49:05 -05:00
basic_archive Add built-in ERROR handling for archive callbacks. 2024-04-02 22:28:11 -05:00
bloom Clean up newlines following left parentheses 2024-11-26 17:10:07 +01:00
bool_plperl Update copyright for 2024 2024-01-03 20:49:05 -05:00
btree_gin Update copyright for 2024 2024-01-03 20:49:05 -05:00
btree_gist Revert temporal primary keys and foreign keys 2024-05-16 08:17:46 +02:00
citext Skip citext_utf8 test on Windows. 2024-05-13 07:55:58 +12:00
cube Update copyright for 2024 2024-01-03 20:49:05 -05:00
dblink Make libpqsrv_cancel's return const char *, not char * 2024-04-05 18:23:10 +02:00
dict_int Update copyright for 2024 2024-01-03 20:49:05 -05:00
dict_xsyn Update copyright for 2024 2024-01-03 20:49:05 -05:00
earthdistance contrib/earthdistance: Use SQL-standard function bodies. 2024-12-14 16:07:18 -05:00
file_fdw Update copyright for 2024 2024-01-03 20:49:05 -05:00
fuzzystrmatch Update copyright for 2024 2024-01-03 20:49:05 -05:00
hstore Use new overflow-safe integer comparison functions. 2024-02-16 14:05:36 -06:00
hstore_plperl Update copyright for 2024 2024-01-03 20:49:05 -05:00
hstore_plpython Update copyright for 2024 2024-01-03 20:49:05 -05:00
intagg Update copyright for 2024 2024-01-03 20:49:05 -05:00
intarray Use new overflow-safe integer comparison functions. 2024-02-16 14:05:36 -06:00
isn Update copyright for 2024 2024-01-03 20:49:05 -05:00
jsonb_plperl Update copyright for 2024 2024-01-03 20:49:05 -05:00
jsonb_plpython Update copyright for 2024 2024-01-03 20:49:05 -05:00
lo Update copyright for 2024 2024-01-03 20:49:05 -05:00
ltree Add hash support functions and hash opclass for contrib/ltree. 2024-03-21 18:27:49 -04:00
ltree_plpython Update copyright for 2024 2024-01-03 20:49:05 -05:00
oid2name Update copyright for 2024 2024-01-03 20:49:05 -05:00
pageinspect Detect version mismatch in brin_page_items 2024-12-17 17:50:13 +01:00
passwordcheck Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_buffercache Add pg_buffercache_evict() function for testing. 2024-04-08 16:23:40 +12:00
pg_freespacemap Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_prewarm Unify some error messages 2024-06-20 11:10:26 +02:00
pg_stat_statements Add missing query ID reporting in extended query protocol 2024-09-18 09:59:14 +09:00
pg_surgery Error message capitalisation 2024-01-18 09:35:12 +01:00
pg_trgm Fix arrays comparison in CompareOpclassOptions() 2024-11-12 01:51:20 +02:00
pg_visibility Fix corruption when relation truncation fails. 2024-12-20 23:57:18 +13:00
pg_walinspect Update copyright for 2024 2024-01-03 20:49:05 -05:00
pgcrypto pgcrypto: Fix incorrect argument vs PG_GETARG*() mappings 2024-02-14 08:59:05 +09:00
pgrowlocks Update copyright for 2024 2024-01-03 20:49:05 -05:00
pgstattuple Reintroduce support for sequences in pgstattuple and pageinspect. 2024-09-12 16:31:29 -05:00
postgres_fdw postgres_fdw: re-issue cancel requests a few times if necessary. 2024-12-23 15:14:30 -05:00
seg Use generateClonedIndexStmt to propagate CREATE INDEX to partitions. 2024-10-05 14:46:44 -04:00
sepgsql Revise GUC names quoting in messages again 2024-05-17 11:44:26 +02:00
spi Update copyright for 2024 2024-01-03 20:49:05 -05:00
sslinfo Revert "Add notBefore and notAfter to SSL cert info display" 2024-03-22 22:58:41 +01:00
start-scripts Remove gratuitous references to postmaster program 2023-01-26 10:48:32 +01:00
tablefunc Make contrib/tablefunc crosstab() also check typmod 2024-03-09 17:32:32 -05:00
tcn Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_decoding Fix invalidation of local pgstats references for entry reinitialization 2024-12-09 10:46:03 +09:00
tsm_system_rows Update copyright for 2024 2024-01-03 20:49:05 -05:00
tsm_system_time Update copyright for 2024 2024-01-03 20:49:05 -05:00
unaccent Update copyright for 2024 2024-01-03 20:49:05 -05:00
uuid-ossp Make the order of the header file includes consistent 2024-03-13 15:07:00 +01:00
vacuumlo Update copyright for 2024 2024-01-03 20:49:05 -05:00
xml2 Replace usages of xmlXPathCompile() with xmlXPathCtxtCompile(). 2024-09-15 13:33:09 -04:00
contrib-global.mk Respect TEMP_CONFIG when pg_regress_check and friends are called 2016-02-27 12:28:21 -05:00
Makefile Remove the adminpack contrib extension 2024-03-04 12:39:22 +01:00
meson.build Remove the adminpack contrib extension 2024-03-04 12:39:22 +01:00
README Rename 'gmake' to 'make' in docs and recommended commands 2014-02-12 17:29:19 -05:00

The PostgreSQL contrib tree
---------------------------

This subtree contains porting tools, analysis utilities, and plug-in
features that are not part of the core PostgreSQL system, mainly
because they address a limited audience or are too experimental to be
part of the main source tree.  This does not preclude their
usefulness.

User documentation for each module appears in the main SGML
documentation.

When building from the source distribution, these modules are not
built automatically, unless you build the "world" target.  You can
also build and install them all by running "make all" and "make
install" in this directory; or to build and install just one selected
module, do the same in that module's subdirectory.

Some directories supply new user-defined functions, operators, or
types.  To make use of one of these modules, after you have installed
the code you need to register the new SQL objects in the database
system by executing a CREATE EXTENSION command.  In a fresh database,
you can simply do

    CREATE EXTENSION module_name;

See the PostgreSQL documentation for more information about this
procedure.