pg_failover_slots icon indicating copy to clipboard operation
pg_failover_slots copied to clipboard

PostgreSQL 18 support

Open devrimgunduz opened this issue 5 months ago • 4 comments

Hi,

v18 beta1 is out and pg_failover_slots fail to compile against it. The logs are below. Can you please take a look? Thanks!

gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -Wmissing-variable-declarations -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -fvisibility=hidden -I /usr/pgsql-18/include -I. -I./ -I/usr/pgsql-18/include/server -I/usr/pgsql-18/include/internal    -D_GNU_SOURCE -I/usr/include/libxml2 -DWITH_GZFILEOP  -I/usr/include  -c -o pg_failover_slots.o pg_failover_slots.c
/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -Wno-format-truncation -O2  -I /usr/pgsql-18/include -I. -I./ -I/usr/pgsql-18/include/server -I/usr/pgsql-18/include/internal    -D_GNU_SOURCE -I/usr/include/libxml2 -DWITH_GZFILEOP  -I/usr/include -flto=thin -emit-llvm -c -o pg_failover_slots.bc pg_failover_slots.c
pg_failover_slots.c:716:49: error: too few arguments to function call, expected 3, have 2
  716 |                 ReplicationSlotAcquire(remote_slot->name, true);
      |                 ~~~~~~~~~~~~~~~~~~~~~~                        ^
/usr/pgsql-18/include/server/replication/slot.h:278:13: note: 'ReplicationSlotAcquire' declared here
  278 | extern void ReplicationSlotAcquire(const char *name, bool nowait,
      |             ^                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  279 |                                                                    bool error_if_invalid);
      |                                                                    ~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[1]: *** [/usr/pgsql-18/lib/pgxs/src/makefiles/../../src/Makefile.global:1104: pg_failover_slots.bc] Error 1
make[1]: *** Waiting for unfinished jobs....
pg_failover_slots.c:102:7: warning: no previous declaration for ‘standby_slot_names’ [-Wmissing-variable-declarations]
  102 | List *standby_slot_names = NIL;
      |       ^~~~~~~~~~~~~~~~~~
pg_failover_slots.c:103:5: warning: no previous declaration for ‘standby_slots_min_confirmed’ [-Wmissing-variable-declarations]
  103 | int standby_slots_min_confirmed;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c:104:12: warning: no previous declaration for ‘standby_slot_names_oldest_flush_lsn’ [-Wmissing-variable-declarations]
  104 | XLogRecPtr standby_slot_names_oldest_flush_lsn = InvalidXLogRecPtr;
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c:107:5: warning: no previous declaration for ‘worker_nap_time’ [-Wmissing-variable-declarations]
  107 | int worker_nap_time;
      |     ^~~~~~~~~~~~~~~
pg_failover_slots.c:108:7: warning: no previous declaration for ‘pg_failover_maintenance_db’ [-Wmissing-variable-declarations]
  108 | char *pg_failover_maintenance_db;
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c:111:7: warning: no previous declaration for ‘pg_failover_slots_dsn’ [-Wmissing-variable-declarations]
  111 | char *pg_failover_slots_dsn;
      |       ^~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c:112:7: warning: no previous declaration for ‘pg_failover_slot_names’ [-Wmissing-variable-declarations]
  112 | char *pg_failover_slot_names;
      |       ^~~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c:117:7: warning: no previous declaration for ‘pg_failover_slots_version_str’ [-Wmissing-variable-declarations]
  117 | char *pg_failover_slots_version_str;
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pg_failover_slots.c: In function ‘synchronize_one_slot’:
pg_failover_slots.c:716:17: error: too few arguments to function ‘ReplicationSlotAcquire’; expected 3, have 2
  716 |                 ReplicationSlotAcquire(remote_slot->name, true);
      |                 ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/pgsql-18/include/server/replication/logical.h:15,
                 from /usr/pgsql-18/include/server/replication/decode.h:14,
                 from pg_failover_slots.c:38:
/usr/pgsql-18/include/server/replication/slot.h:278:13: note: declared here
  278 | extern void ReplicationSlotAcquire(const char *name, bool nowait,
      |             ^~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [<builtin>: pg_failover_slots.o] Error 1

devrimgunduz avatar Jul 01 '25 11:07 devrimgunduz

Just a heads-up: PostgreSQL 18 RC1 will be out this Thursday (4 September). GA is currently planned at 25 September

devrimgunduz avatar Sep 02 '25 08:09 devrimgunduz

ping. v18 is due next week.

devrimgunduz avatar Sep 17 '25 19:09 devrimgunduz

@devrimgunduz PR #55

eulerto avatar Sep 18 '25 12:09 eulerto

Thanks @eulerto . Apparently @petere committed it. We need a new release for packaging. Thanks!

devrimgunduz avatar Sep 18 '25 17:09 devrimgunduz