On 2023-Aug-27, Thomas Munro wrote: > On Sun, Aug 27, 2023 at 3:03 AM Pavel Stehule <pavel.steh...@gmail.com> wrote: > > So it looks so IPC::Run::run is ignore parent environment > > I guess the new initdb template captures lc_messages in > postgresql.conf, when it runs earlier? I guess if you put > $node->append_conf('postgresql.conf', 'lc_messages=C'); into > src/bin/pg_amcheck/t/003_check.pl then it will work. I'm not sure > what the correct fix should be, ie if the template mechanism should > notice this difference and not use the template, or if tests that > depend on the message locale should explicitly say so with > lc_messages=C or similar (why is this the only one?), or ...
So I tried this technique, but it gest old pretty fast: apparently there's a *ton* of tests that depend on the locale. I gave up after patching the first five files, and noticing that in a second run there another half a dozen failing tests that hadn't failed the first time around. (Not sure why this happened.) So I think injecting --no-locale to the initdb line that creates the template is a better approach; something like the attached. -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
diff --git a/meson.build b/meson.build index 8b2b521a01..5422885b0a 100644 --- a/meson.build +++ b/meson.build @@ -3107,7 +3107,7 @@ sys.exit(sp.returncode) ''', test_initdb_template, temp_install_bindir / 'initdb', - '-A', 'trust', '-N', '--no-instructions' + '-A', 'trust', '-N', '--no-instructions', '--no-locale' ], priority: setup_tests_priority - 1, timeout: 300, diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 0b4ca0eb6a..765b60db02 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -425,7 +425,7 @@ ifeq ($(MAKELEVEL),0) $(MAKE) -C '$(top_builddir)' DESTDIR='$(abs_top_builddir)'/tmp_install install >'$(abs_top_builddir)'/tmp_install/log/install.log 2>&1 $(MAKE) -j1 $(if $(CHECKPREP_TOP),-C $(CHECKPREP_TOP),) checkprep >>'$(abs_top_builddir)'/tmp_install/log/install.log 2>&1 - $(with_temp_install) initdb -A trust -N --no-instructions '$(abs_top_builddir)'/tmp_install/initdb-template >>'$(abs_top_builddir)'/tmp_install/log/initdb-template.log 2>&1 + $(with_temp_install) initdb -A trust -N --no-instructions --no-locale '$(abs_top_builddir)'/tmp_install/initdb-template >>'$(abs_top_builddir)'/tmp_install/log/initdb-template.log 2>&1 endif endif endif