Re: ssl tests aren't concurrency safe due to get_free_port()
Peter Eisentraut <peter.eisentraut@enterprisedb.com>
From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Andrew Dunstan <andrew@dunslane.net>, Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2023-05-02T05:57:05Z
Lists: pgsql-hackers
On 25.04.23 12:27, Peter Eisentraut wrote:
> These patches have affected pgxs-using extensions that have their own
> TAP tests.
>
> The portlock directory is created at
>
> my $build_dir = $ENV{top_builddir}
> || $PostgreSQL::Test::Utils::tmp_check ;
> $portdir ||= "$build_dir/portlock";
>
> but for a pgxs user, top_builddir points into the installation tree,
> specifically at $prefix/lib/pgxs/.
>
> So when running "make installcheck" for an extension, we either won't
> have write access to that directory, or if we do, then it's still not
> good to write into the installation tree during a test suite.
>
> A possible fix is
>
> diff --git a/src/Makefile.global.in b/src/Makefile.global.in
> index 5dacc4d838..c493d1a60c 100644
> --- a/src/Makefile.global.in
> +++ b/src/Makefile.global.in
> @@ -464,7 +464,7 @@ rm -rf '$(CURDIR)'/tmp_check && \
> $(MKDIR_P) '$(CURDIR)'/tmp_check && \
> cd $(srcdir) && \
> TESTDIR='$(CURDIR)' PATH="$(bindir):$(CURDIR):$$PATH" \
> - PGPORT='6$(DEF_PGPORT)' top_builddir='$(top_builddir)' \
> + PGPORT='6$(DEF_PGPORT)' top_builddir='$(CURDIR)' \
> PG_REGRESS='$(top_builddir)/src/test/regress/pg_regress' \
> $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) $(if
> $(PROVE_TESTS),$(PROVE_TESTS),t/*.pl)
> endef
Any thoughts on this? I would like to get this into the upcoming minor
releases.
Note that the piece of code shown here is only applicable to PGXS, so
given that that is currently broken, this "can't make it worse".
Commits
-
Fix prove_installcheck when used with PGXS
- b189f71e549f 11.20 landed
- 14bb2e76c7df 12.15 landed
- 6704944779cf 13.11 landed
- e07022500404 14.8 landed
- 3d37476f503f 15.3 landed
- 5d42a9751958 16.0 landed
-
Prevent port collisions between concurrent TAP tests
- 46def5267cf9 11.19 landed
- baa78ff5404c 12.14 landed
- 4b9013d64f23 13.10 landed
- 870d6218e6d7 14.7 landed
- 153e21567750 15.2 landed
- 9b4eafcaf41d 16.0 landed