Re: fairywren is generating bogus BASE_BACKUP commands
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: Robert Haas <robertmhaas@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Thomas Munro <thomas.munro@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-01-25T02:36:09Z
Lists: pgsql-hackers
Attachments
- mingw-wip-minimal.diff (text/x-diff) patch
Hi, On 2022-01-24 16:47:28 -0500, Andrew Dunstan wrote: > Give me what you can and I'll see what I can do. I have a couple of > moderately high priority items on my plate, but I will probably be able > to fit in some testing when those make my eyes completely glaze over. Steps: # install msys from https://www.msys2.org/ # install dependencies in msys shell pacman -S git bison flex make ucrt64/mingw-w64-ucrt-x86_64-perl ucrt64/mingw-w64-ucrt-x86_64-gcc ucrt64/mingw-w64-ucrt-x86_64-zlib ucrt64/mingw-w64-ucrt-x86_64-ccache diffutils # start mingw ucrt64 x64 shell cpan install -T IPC::Run perl -MIPC::Run -e 1 # verify ipc run is installed cd /c/dev # I added --reference postgres to accelerate the cloning git clone https://git.postgresql.org/git/postgresql.git postgres-mingw cd /c/dev/postgres-mingw git revert ed52c3707bcf8858defb0d9de4b55f5c7f18fed7 git revert 6051857fc953a62db318329c4ceec5f9668fd42a # apply attached patch # see below why out-of-tree is easier or now mkdir build cd build # path parameters probably not necessary, I thought I needed them earlier, not sure why ../configure --without-readline --cache cache --enable-tap-tests PROVE=/ucrt64/bin/core_perl/prove PERL=/ucrt64/bin/perl.exe CC="ccache gcc" make -j8 -s world-bin && make -j8 -s -C src/interfaces/ecpg/test make -j8 -s temp-install # pg_regress' make_temp_socketdir() otherwise picks up the wrong TMPDIR mkdir /c/dev/postgres-mingw/build/tmp # the TAR= ensures that tests pick up a tar accessible with a windows path # PG_TEST_USE_UNIX_SOCKETS=1 is required for test concurrency, otherwise there are port conflicts (make -Otarget -j12 check-world NO_TEMP_INSTALL=1 PG_TEST_USE_UNIX_SOCKETS=1 TMPDIR=C:/dev/postgres-mingw/tmp TAR="C:\Windows\System32\tar.exe" 2>&1 && echo test-world-success || echo test-world-fail) 2>&1 |tee test-world.log To make tests in "in-tree" builds work, a bit more hackery would be needed. The problem is that windows chooses binaries from the current working directory *before* PATH. That's a problem for things like initdb.exe or pg_ctl.exe that want to find postgres.exe, as that only works with the program in their proper location, rather than CWD. Greetings, Andres Freund
Commits
-
Remove PostgreSQL::Test::Utils::perl2host completely
- 95d981338b24 15.0 landed
- b30c62bd42eb 10.21 landed
- b4a6ceed52ee 11.16 landed
- 8358eacc954d 12.11 landed
- c27aa21e0dc8 13.7 landed
- 652ff988fbf6 14.3 landed
-
Unbreak pg_basebackup/t/010_pg_basebackup.pl on msys
- 4f0bcc735038 15.0 landed
-
On Windows, also call shutdown() while closing the client socket.
- ed52c3707bcf 15.0 cited
-
On Windows, close the client socket explicitly during backend shutdown.
- 6051857fc953 15.0 cited