Re: pgsql: Add tests for reinit.c
On 3/19/18 5:58 PM, Andrew Dunstan wrote: > On Mon, Mar 19, 2018 at 11:33 PM, David Steelewrote: >> On 3/19/18 4:15 AM, Andrew Dunstan wrote: >>> >>> The attached fixes it. We should probably put the function or something >>> like it in TestLib.pm, though. The call to pwd is quite tricky - it >>> needs to be done pretty much exactly like this, not quite sure why, but >>> direct calls to "pwd -W" via system() or backticks don't work, only this >>> indirect call works on jacana. >> >> Thanks for the patch, Andrew! >> >> Peter, would you like me to provide a patch that moves this function to >> TestLib.pm? Happy to do it, just don't want patches crossing in the >> night, as it were. >> > > I've reworked it and pushed the fix. Thanks, Andrew! -- -David da...@pgmasters.net
Re: pgsql: Add tests for reinit.c
On Mon, Mar 19, 2018 at 11:33 PM, David Steelewrote: > On 3/19/18 4:15 AM, Andrew Dunstan wrote: >> >> The attached fixes it. We should probably put the function or something >> like it in TestLib.pm, though. The call to pwd is quite tricky - it >> needs to be done pretty much exactly like this, not quite sure why, but >> direct calls to "pwd -W" via system() or backticks don't work, only this >> indirect call works on jacana. > > Thanks for the patch, Andrew! > > Peter, would you like me to provide a patch that moves this function to > TestLib.pm? Happy to do it, just don't want patches crossing in the > night, as it were. > I've reworked it and pushed the fix. cheers andrew -- Andrew Dunstanhttps://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Re: pgsql: Add tests for reinit.c
On 3/15/18 11:51 PM, Tom Lane wrote: > I wrote: >> Peter Eisentrautwrites: >>> Add tests for reinit.c > >> BTW, buildfarm member jacana hasn't succeeded at this test once. >> The failures look like > >> ok 1 - init fork in base exists >> ok 2 - main fork in base exists >> error running SQL: 'psql::1: ERROR: directory >> "/home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/tmp_test_wBGG" >> does not exist' >> while running 'psql -XAtq -d port=50531 host=127.0.0.1 dbname='postgres' -f >> - -v ON_ERROR_STOP=1' with sql 'CREATE TABLESPACE ts1 LOCATION >> '/home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/tmp_test_wBGG'' >> at >> /home/pgrunner/bf/root/HEAD/pgsql.build/../pgsql/src/test/perl//PostgresNode.pm >> line 1246. > >> so I hypothesize that there's something wrong with TestLib::tempdir on >> Windows, but no idea what. > > After further staring at that, I think it's some sort of mingw path > weirdness. I notice that the initdb output refers to the PGDATA > directory as > > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/t_014_unlogged_reinit_main_data/pgdata > > and then after that we see "pg_ctl start" succeeding with just > > /home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/t_014_unlogged_reinit_main_data/pgdata > > but this isn't working: > > /home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/tmp_test_esA3 > > perhaps because it lacks the "c:/mingw/msys/1.0" prefix. > > Still no opinion about how to fix it. I looked around for other examples but the only ones I could find are in the pg_basebackup tests (010_pg_basebackup.pl), which exclude these calls for Windows. I don't have a Windows machine to experiment on. Michael, any thoughts? -- -David da...@pgmasters.net
Re: pgsql: Add tests for reinit.c
I wrote: > Peter Eisentrautwrites: >> Add tests for reinit.c > BTW, buildfarm member jacana hasn't succeeded at this test once. > The failures look like > ok 1 - init fork in base exists > ok 2 - main fork in base exists > error running SQL: 'psql::1: ERROR: directory > "/home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/tmp_test_wBGG" > does not exist' > while running 'psql -XAtq -d port=50531 host=127.0.0.1 dbname='postgres' -f - > -v ON_ERROR_STOP=1' with sql 'CREATE TABLESPACE ts1 LOCATION > '/home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/tmp_test_wBGG'' > at > /home/pgrunner/bf/root/HEAD/pgsql.build/../pgsql/src/test/perl//PostgresNode.pm > line 1246. > so I hypothesize that there's something wrong with TestLib::tempdir on > Windows, but no idea what. After further staring at that, I think it's some sort of mingw path weirdness. I notice that the initdb output refers to the PGDATA directory as c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/t_014_unlogged_reinit_main_data/pgdata and then after that we see "pg_ctl start" succeeding with just /home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/t_014_unlogged_reinit_main_data/pgdata but this isn't working: /home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/tmp_test_esA3 perhaps because it lacks the "c:/mingw/msys/1.0" prefix. Still no opinion about how to fix it. regards, tom lane
Re: pgsql: Add tests for reinit.c
Peter Eisentrautwrites: > Add tests for reinit.c BTW, buildfarm member jacana hasn't succeeded at this test once. The failures look like ok 1 - init fork in base exists ok 2 - main fork in base exists error running SQL: 'psql::1: ERROR: directory "/home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/tmp_test_wBGG" does not exist' while running 'psql -XAtq -d port=50531 host=127.0.0.1 dbname='postgres' -f - -v ON_ERROR_STOP=1' with sql 'CREATE TABLESPACE ts1 LOCATION '/home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/tmp_test_wBGG'' at /home/pgrunner/bf/root/HEAD/pgsql.build/../pgsql/src/test/perl//PostgresNode.pm line 1246. so I hypothesize that there's something wrong with TestLib::tempdir on Windows, but no idea what. regards, tom lane