Re: Test 002_pg_upgrade fails with olddump on Windows

Поиск
Список
Период
Сортировка
От Alexander Lakhin
Тема Re: Test 002_pg_upgrade fails with olddump on Windows
Дата
Msg-id a628d8ad-a08a-2eab-4ca9-641bc82d3193@gmail.com
обсуждение исходный текст
Ответ на Re: Test 002_pg_upgrade fails with olddump on Windows  (Michael Paquier <michael@paquier.xyz>)
Ответы Re: Test 002_pg_upgrade fails with olddump on Windows  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-hackers
06.12.2023 04:17, Michael Paquier wrote:
> At the end, just applying the filtering all the time makes the most
> sense to me, so I've applied a patch doing just that.

Thank you for the fix!

Now that test with the minimal dump passes fine, but when I tried to run
it with a complete dump borrowed from a normal test run:
set olddump=& set oldinstall=& set PG_TEST_NOCLEAN=1& meson test pg_upgrade/002_pg_upgrade
REM this test succeeded
copy testrun\pg_upgrade\002_pg_upgrade\data\tmp_test_*\dump1.sql
set olddump=c:\temp\dump1.sql& set oldinstall=%CD%/tmp_install/usr/local/pgsql& meson test pg_upgrade/002_pg_upgrade

I encountered another failure:
...
Creating dump of database schemas                             ok
Checking for presence of required libraries                   fatal

Your installation references loadable libraries that are missing from the
new installation.  You can add these libraries to the new installation,
or remove the functions using them from the old installation.  A list of
problem libraries is in the file:

.../build/testrun/pg_upgrade/002_pg_upgrade/data/t_002_pg_upgrade_new_node_data/pgdata/pg_upgrade_output.d/20231205T223247.304/loadable_libraries.txt
Failure, exiting
[22:32:51.086](3.796s) not ok 11 - run of pg_upgrade for new instance
...

loadable_libraries.txt contains:
could not load library ".../src/test/regress/refint.dll": ERROR: could not access file 
".../src/test/regress/refint.dll": No such file or directory
In database: regression
could not load library ".../src/test/regress/autoinc.dll": ERROR: could not access file 
".../src/test/regress/autoinc.dll": No such file or directory
In database: regression
could not load library ".../src/test/regress/regress.dll": ERROR: could not access file 
".../src/test/regress/regress.dll": No such file or directory
In database: regression

Really, I can see refint.dll in ...\build\src\test\regress and in
...\build\tmp_install\usr\local\pgsql\lib, but not in
.../src/test/regress/regress.dll

c:\temp\dump1.sql contains:
...
CREATE FUNCTION public.check_primary_key() RETURNS trigger
     LANGUAGE c
     AS '.../build/src/test/regress/refint.dll', 'check_primary_key';

while ...\build\testrun\pg_upgrade\002_pg_upgrade\data\tmp_test_T6jE\dump1.sql
(for the failed test):
...
CREATE FUNCTION public.check_primary_key() RETURNS trigger
     LANGUAGE c
     AS '.../src/test/regress/refint.dll', 'check_primary_key';

The same is on Linux:
PG_TEST_NOCLEAN=1 meson test pg_upgrade/002_pg_upgrade
cp testrun/pg_upgrade/002_pg_upgrade/data/tmp_test_*/dump1.sql /tmp/
olddump=/tmp/dump1.sql oldinstall=`pwd`/tmp_install/usr/local/pgsql meson test pg_upgrade/002_pg_upgrade

So it looks like
     my $newregresssrc = "$srcdir/src/test/regress";
is incorrect for meson.
Maybe it should be?:
     my $newregresssrc = dirname($ENV{REGRESS_SHLIB});
(With this line the test passes for me on Windows and Linux).

Best regards,
Alexander



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Richard Guo
Дата:
Сообщение: Re: Oversight in reparameterize_path_by_child leading to executor crash
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: tablecmds.c/MergeAttributes() cleanup