pgsql: Disable cache clobber to avoid breaking postgres_fdw termination

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Disable cache clobber to avoid breaking postgres_fdw termination
Date: 2021-05-04 17:36:34
Message-ID: E1ldyyI-0001qi-NG@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Disable cache clobber to avoid breaking postgres_fdw termination test.

Commit 93f414614 improved a pre-existing test case so that it would
show whether or not termination of the "remote" worker process happened.
This soon exposed that, when debug_invalidate_system_caches_always
(nee CLOBBER_CACHE_ALWAYS) is enabled, no such termination occurs.
That's because cache invalidation forces postgres_fdw connections
to be dropped at end of transaction, so that there's no worker to
terminate. There's a race condition as to whether the worker will
manage to get out of the BackendStatusArray before we look, but at
least on buildfarm member hyrax, it's failed twice in two attempts.

Rather than re-lobotomizing the test, let's fix this by transiently
disabling debug_invalidate_system_caches_always. (Hooray for that
being just a GUC nowadays, rather than a compile-time option.)
If this proves not to be enough to make the test stable, we can
do the other thing instead.

Discussion: https://postgr.es/m/3854538.1620081771@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/1273a15bf91fa322915e32d3b6dc6ec916397268

Modified Files
--------------
contrib/postgres_fdw/expected/postgres_fdw.out | 13 ++++++++++---
contrib/postgres_fdw/sql/postgres_fdw.sql | 16 +++++++++++++---
2 files changed, 23 insertions(+), 6 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2021-05-05 06:25:53 pgsql: GUC description improvements for clarity
Previous Message Alvaro Herrera 2021-05-04 14:11:48 pgsql: Fix OID passed to object-alter hook during ALTER CONSTRAINT