Обсуждение: pgsql: pg_rewind: Allow writing recovery configuration
pg_rewind: Allow writing recovery configuration This is provided with a new switch --write-recovery-conf and reuses the pg_basebackup code. Author: Paul Guo, Jimmy Yih, Ashwin Agrawal Reviewed-by: Alexey Kondratov, Michaël Paquier, Álvaro Herrera Discussion: https://postgr.es/m/CAEET0ZEffUkXc48pg2iqARQgGRYDiiVxDu+yYek_bTwJF+q=Uw@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/927474ce1a2498ddb617c6113a88ca61fbba161d Modified Files -------------- doc/src/sgml/ref/pg_rewind.sgml | 13 +++++++++++++ src/bin/pg_rewind/Makefile | 2 +- src/bin/pg_rewind/libpq_fetch.c | 3 +-- src/bin/pg_rewind/pg_rewind.c | 35 ++++++++++++++++++++++++++++++++++- src/bin/pg_rewind/pg_rewind.h | 9 +++++++-- 5 files changed, 56 insertions(+), 6 deletions(-)
Hi, On 2019-09-30 17:11:09 +0000, Alvaro Herrera wrote: > pg_rewind: Allow writing recovery configuration > > This is provided with a new switch --write-recovery-conf and reuses the > pg_basebackup code. > > Author: Paul Guo, Jimmy Yih, Ashwin Agrawal > Reviewed-by: Alexey Kondratov, Michaël Paquier, Álvaro Herrera > Discussion: https://postgr.es/m/CAEET0ZEffUkXc48pg2iqARQgGRYDiiVxDu+yYek_bTwJF+q=Uw@mail.gmail.com This currently fails on windows under mingw: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=jacana&dt=2019-09-30%2018%3A00%3A36 Sep 30 14:11:02 ccache x86_64-w64-mingw32-gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla-Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard-Wno-format-truncation -g -O2 pg_rewind.o parsexlog.o xlogreader.o datapagemap.o timeline.o fetch.ofile_ops.o copy_fetch.o libpq_fetch.o filemap.o win32ver.o -L../../../src/port -L../../../src/common -L../../../src/common-lpgcommon -L../../../src/port -lpgport -L../../../src/interfaces/libpq -lpq -L../../../src/fe_utils-lpgfeutils -Wl,--allow-multiple-definition -Wl,--disable-auto-import -L/c/prog/3p64/lib -L/c/prog/3p64/lib-L/c/prog/3p64/openssl-win64/lib/VC -Wl,--as-needed -lpgcommon -lpgport -lintl -lxslt -lxml2 -lz -lws2_32-lm -lws2_32 -o pg_rewind.exe Sep 30 14:11:02 ../../../src/fe_utils/libpgfeutils.a(recovery_gen.o): In function `GenerateRecoveryConfig': Sep 30 14:11:02 c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.build/../pgsql/src/fe_utils/recovery_gen.c:33: undefinedreference to `createPQExpBuffer' Sep 30 14:11:02 c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.build/../pgsql/src/fe_utils/recovery_gen.c:44: undefinedreference to `PQserverVersion' I assume the issue is that the specified link order is: LDFLAGS_INTERNAL += $(libpq_pgport) -L$(top_builddir)/src/fe_utils -lpgfeutils but pgfeutils introduces a dependency on symbols from libpq that weren't needed at the time libpq was linked. Therefore they aren't included inthe resulting library. I'll reorder them. Greetings, Andres Freund
On 2019-Sep-30, Andres Freund wrote: > This currently fails on windows under mingw: > https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=jacana&dt=2019-09-30%2018%3A00%3A36 > > Sep 30 14:11:02 ccache x86_64-w64-mingw32-gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement-Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing-fwrapv -fexcess-precision=standard -Wno-format-truncation -g -O2 pg_rewind.o parsexlog.o xlogreader.odatapagemap.o timeline.o fetch.o file_ops.o copy_fetch.o libpq_fetch.o filemap.o win32ver.o -L../../../src/port-L../../../src/common -L../../../src/common -lpgcommon -L../../../src/port -lpgport -L../../../src/interfaces/libpq-lpq -L../../../src/fe_utils -lpgfeutils -Wl,--allow-multiple-definition -Wl,--disable-auto-import-L/c/prog/3p64/lib -L/c/prog/3p64/lib -L/c/prog/3p64/openssl-win64/lib/VC -Wl,--as-needed -lpgcommon-lpgport -lintl -lxslt -lxml2 -lz -lws2_32 -lm -lws2_32 -o pg_rewind.exe > Sep 30 14:11:02 ../../../src/fe_utils/libpgfeutils.a(recovery_gen.o): In function `GenerateRecoveryConfig': > Sep 30 14:11:02 c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.build/../pgsql/src/fe_utils/recovery_gen.c:33: undefinedreference to `createPQExpBuffer' > Sep 30 14:11:02 c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.build/../pgsql/src/fe_utils/recovery_gen.c:44: undefinedreference to `PQserverVersion' > > I assume the issue is that the specified link order is: > LDFLAGS_INTERNAL += $(libpq_pgport) -L$(top_builddir)/src/fe_utils -lpgfeutils > but pgfeutils introduces a dependency on symbols from libpq that weren't > needed at the time libpq was linked. Therefore they aren't included > inthe resulting library. Hmm, that's weird but understandable. Thanks for researching. > I'll reorder them. Thanks. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Hi, On 2019-09-30 16:27:27 -0300, Alvaro Herrera wrote: > On 2019-Sep-30, Andres Freund wrote: > > I'll reorder them. Pushed. Greetings, Andres Freund