Avoid instabilities with the regression tests of pg_freespacemap
authorMichael Paquier <michael@paquier.xyz>
Tue, 29 Mar 2022 04:52:49 +0000 (13:52 +0900)
committerMichael Paquier <michael@paquier.xyz>
Tue, 29 Mar 2022 04:52:49 +0000 (13:52 +0900)
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
contrib/pg_freespacemap/pg_freespacemap.conf [new file with mode: 0644]

index 2d525a1284ec2eeffbdbef5b1e83e0b9e564f00e..b48e4b255bcfdde110b5c3c9c069e122bf45eadb 100644 (file)
@@ -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 (file)
index 0000000..96b1ed8
--- /dev/null
@@ -0,0 +1 @@
+autovacuum = off