From c14a9eeec4797358922f8696d76716501b86c57d Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Tue, 29 Mar 2022 13:52:49 +0900 Subject: [PATCH] Avoid instabilities with the regression tests of pg_freespacemap It was possible to run those tests with installcheck, but they are actually unstable as concurrent autovacuum jobs could prevent the truncation of the filespace map to happen (aka the scan of pg_database when building the list of relations to clean), an assumption we rely on when checking that the FSM of the relation gets truncated during a manual vacuum after deleting all the relation's data. This commit adds a NO_INSTALLCHECK to disallow installcheck, and introduces the use of a custom configuration file with autovacuum disabled. It happens that we already do that in the recovery test 008_fsm_truncation, for example. Reported-by: Tom Lane, via buildfarm member skink Discussion: https://postgr.es/m/381910.1648401526@sss.pgh.pa.us --- contrib/pg_freespacemap/Makefile | 5 +++++ contrib/pg_freespacemap/pg_freespacemap.conf | 1 + 2 files changed, 6 insertions(+) create mode 100644 contrib/pg_freespacemap/pg_freespacemap.conf diff --git a/contrib/pg_freespacemap/Makefile b/contrib/pg_freespacemap/Makefile index 2d525a1284e..b48e4b255bc 100644 --- a/contrib/pg_freespacemap/Makefile +++ b/contrib/pg_freespacemap/Makefile @@ -10,8 +10,13 @@ DATA = pg_freespacemap--1.1.sql pg_freespacemap--1.1--1.2.sql \ pg_freespacemap--1.0--1.1.sql PGFILEDESC = "pg_freespacemap - monitoring of free space map" +REGRESS_OPTS = --temp-config $(top_srcdir)/contrib/pg_freespacemap/pg_freespacemap.conf REGRESS = pg_freespacemap +# Disabled because these tests require "autovacuum=off", which +# typical installcheck users do not have (e.g. buildfarm clients). +NO_INSTALLCHECK = 1 + ifdef USE_PGXS PG_CONFIG = pg_config PGXS := $(shell $(PG_CONFIG) --pgxs) diff --git a/contrib/pg_freespacemap/pg_freespacemap.conf b/contrib/pg_freespacemap/pg_freespacemap.conf new file mode 100644 index 00000000000..96b1ed833dd --- /dev/null +++ b/contrib/pg_freespacemap/pg_freespacemap.conf @@ -0,0 +1 @@ +autovacuum = off