Building pgbouncer 1.17.0 against PG15 yields this:
gcc -O0 -g -O2 -ffile-prefix-map=/home/cbe/projects/postgresql/pgbouncer/pgbouncer=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wmissing-prototypes -Wpointer-arith -Wendif-labels -Wdeclaration-after-statement -Wold-style-definition -Wstrict-prototypes -Wundef -Wformat=2 -Wuninitialized -Wmissing-format-attribute -g -Wl,-z,relro -Wl,--as-needed -o hba_test .objs/hba_test/hba_test.o .objs/hba_test/../src/hba.o .objs/hba_test/../src/util.o .objs/hba_test/../lib/usual/base.o .objs/hba_test/../lib/usual/cbtree.o .objs/hba_test/../lib/usual/crypto/chacha.o .objs/hba_test/../lib/usual/crypto/csrandom.o .objs/hba_test/../lib/usual/crypto/digest.o .objs/hba_test/../lib/usual/crypto/entropy.o .objs/hba_test/../lib/usual/crypto/keccak.o .objs/hba_test/../lib/usual/crypto/keccak_prng.o .objs/hba_test/../lib/usual/crypto/md5.o .objs/hba_test/../lib/usual/cxalloc.o .objs/hba_test/../lib/usual/cxextra.o .objs/hba_test/../lib/usual/err.o .objs/hba_test/../lib/usual/fileutil.o .objs/hba_test/../lib/usual/list.o .objs/hba_test/../lib/usual/logging.o .objs/hba_test/../lib/usual/mbuf.o .objs/hba_test/../lib/usual/socket.o .objs/hba_test/../lib/usual/socket_ntop.o .objs/hba_test/../lib/usual/socket_pton.o .objs/hba_test/../lib/usual/string.o .objs/hba_test/../lib/usual/time.o -levent -lsystemd -lpam
./test.sh
Creating databases
Creating users
Mon Oct 17 13:30:36 CEST 2022 running test_show_version ... ok
Mon Oct 17 13:30:36 CEST 2022 running test_help ... ok
Mon Oct 17 13:30:36 CEST 2022 running test_show ... FAILED
# => show clients;
# type | user | database | state | addr | port | local_addr | local_port | connect_time | request_time | wait | wait_us | close_needed | ptr | link | remote_pid | tls
# ------+-----------+-----------+--------+------+------+------------+------------+--------------------------+--------------------------+------+---------+--------------+----------------+------+------------+-----
# C | pgbouncer | pgbouncer | active | unix | 6667 | unix | 6667 | 2022-10-17 13:30:36 CEST | 2022-10-17 13:30:36 CEST | 0 | 0 | 0 | 0x56484c5d7a80 | | 605929 |
# (1 row)
#
# => show config;
# key | value | default | changeable
# ---------------------------+--------------------------------------------------------+--------------------------------------------------------+------------
# admin_users | | | yes
# application_name_add_host | 0 | 0 | yes
# auth_file | userlist.txt | | yes
# auth_hba_file | | | yes
# auth_query | SELECT usename, passwd FROM pg_shadow WHERE usename=$1 | SELECT usename, passwd FROM pg_shadow WHERE usename=$1 | yes
# auth_type | trust | md5 | yes
# auth_user | | | yes
# autodb_idle_timeout | 3600 | 3600 | yes
# client_idle_timeout | 0 | 0 | yes
# client_login_timeout | 60 | 60 | yes
# client_tls_ca_file | | | yes
# client_tls_cert_file | | | yes
# client_tls_ciphers | fast | fast | yes
# client_tls_dheparams | auto | auto | yes
# client_tls_ecdhcurve | auto | auto | yes
# client_tls_key_file | | | yes
# client_tls_protocols | secure | secure | yes
# client_tls_sslmode | disable | disable | yes
# conffile | test.ini | | yes
# default_pool_size | 5 | 20 | yes
# disable_pqexec | 0 | 0 | no
# dns_max_ttl | 15 | 15 | yes
# dns_nxdomain_ttl | 15 | 15 | yes
# dns_zone_check_period | 0 | 0 | yes
# idle_transaction_timeout | 0 | 0 | yes
# ignore_startup_parameters | | | yes
# job_name | pgbouncer | pgbouncer | no
# listen_addr | 127.0.0.1 | | no
# listen_backlog | 128 | 128 | no
# listen_port | 6667 | 6432 | no
# log_connections | 1 | 1 | yes
# log_disconnections | 1 | 1 | yes
# log_pooler_errors | 1 | 1 | yes
# log_stats | 1 | 1 | yes
# logfile | test.log | | yes
# max_client_conn | 10 | 100 | yes
# max_db_connections | 0 | 0 | yes
# max_packet_size | 2147483647 | 2147483647 | yes
# max_user_connections | 0 | 0 | yes
# min_pool_size | 0 | 0 | yes
# pidfile | test.pid | | no
# pkt_buf | 4096 | 4096 | no
# pool_mode | statement | session | yes
# query_timeout | 0 | 0 | yes
# query_wait_timeout | 120 | 120 | yes
# reserve_pool_size | 0 | 0 | yes
# reserve_pool_timeout | 5 | 5 | yes
# resolv_conf | | | no
# sbuf_loopcnt | 5 | 5 | yes
# server_check_delay | 10 | 30 | yes
# server_check_query | select 1 | select 1 | yes
# server_connect_timeout | 15 | 15 | yes
# server_fast_close | 0 | 0 | yes
# server_idle_timeout | 60 | 600 | yes
# server_lifetime | 120 | 3600 | yes
# server_login_retry | 15 | 15 | yes
# server_reset_query | DISCARD ALL | DISCARD ALL | yes
# server_reset_query_always | 0 | 0 | yes
# server_round_robin | 0 | 0 | yes
# server_tls_ca_file | | | yes
# server_tls_cert_file | | | yes
# server_tls_ciphers | fast | fast | yes
# server_tls_key_file | | | yes
# server_tls_protocols | secure | secure | yes
# server_tls_sslmode | disable | disable | yes
# so_reuseport | 0 | 0 | no
# stats_period | 60 | 60 | yes
# stats_users | | | yes
# suspend_timeout | 10 | 10 | yes
# syslog | 0 | 0 | yes
# syslog_facility | daemon | daemon | yes
# syslog_ident | pgbouncer | pgbouncer | yes
# tcp_defer_accept | 0 | 1 | yes
# tcp_keepalive | 0 | 1 | yes
# tcp_keepcnt | 0 | 0 | yes
# tcp_keepidle | 0 | 0 | yes
# tcp_keepintvl | 0 | 0 | yes
# tcp_socket_buffer | 0 | 0 | yes
# tcp_user_timeout | 0 | 0 | yes
# unix_socket_dir | /tmp | /tmp | no
# unix_socket_group | | | no
# unix_socket_mode | 511 | 0777 | no
# user | | | no
# verbose | 0 | | yes
# (84 rows)
#
# => show databases;
# name | host | port | database | force_user | pool_size | min_pool_size | reserve_pool | pool_mode | max_connections | current_connections | paused | disabled
# -----------+---------------------+------+-----------+------------+-----------+---------------+--------------+-----------+-----------------+---------------------+--------+----------
# authdb | 127.0.0.1 | 6666 | p1 | | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# hostlist1 | 127.0.0.1,::1 | 6666 | p0 | bouncer | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# hostlist2 | 127.0.0.1,127.0.0.1 | 6666 | p0 | bouncer | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p0 | 127.0.0.1 | 6666 | p0 | bouncer | 2 | 0 | 0 | | 0 | 0 | 0 | 0
# p1 | 127.0.0.1 | 6666 | p1 | bouncer | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p2 | 127.0.0.1 | 6666 | p0 | | 5 | 0 | 0 | | 4 | 0 | 0 | 0
# p3 | 127.0.0.1 | 6666 | p0 | bouncer | 5 | 0 | 0 | session | 0 | 0 | 0 | 0
# p4 | 127.0.0.1 | 6666 | p4 | puser1 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p4l | 127.0.0.1 | 6666 | p4 | longpass | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p4x | 127.0.0.1 | 6666 | p4 | puser1 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p4y | 127.0.0.1 | 6666 | p4 | puser1 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p4z | 127.0.0.1 | 6666 | p4 | puser2 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p5 | 127.0.0.1 | 6666 | p5 | muser1 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p5x | 127.0.0.1 | 6666 | p5 | muser1 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p5y | 127.0.0.1 | 6666 | p5 | muser1 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p5z | 127.0.0.1 | 6666 | p5 | muser2 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p6 | 127.0.0.1 | 6666 | p6 | scramuser1 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p61 | 127.0.0.1 | 6666 | p6 | scramuser3 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p62 | 127.0.0.1 | 6666 | p6 | | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p6x | 127.0.0.1 | 6666 | p6 | scramuser1 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p6y | 127.0.0.1 | 6666 | p6 | scramuser1 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p6z | 127.0.0.1 | 6666 | p6 | scramuser2 | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p7a | 127.0.0.1 | 6666 | p7 | | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p7b | 127.0.0.1 | 6666 | p7 | | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p7c | 127.0.0.1 | 6666 | p7 | | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# p8 | 127.0.0.1 | 6666 | p0 | | 5 | 0 | 0 | | 0 | 0 | 0 | 0
# pgbouncer | | 6667 | pgbouncer | pgbouncer | 2 | 0 | 0 | statement | 0 | 0 | 0 | 0
# (27 rows)
#
# => show fds;
# fd | task | user | database | addr | port | cancel | link | client_encoding | std_strings | datestyle | timezone | password | scram_client_key | scram_server_key
# ----+--------+------+----------+-----------+------+--------+------+-----------------+-------------+-----------+----------+----------+------------------+------------------
# 7 | pooler | | | 127.0.0.1 | 6667 | 0 | 0 | | | | | | |
# 8 | pooler | | | unix | 6667 | 0 | 0 | | | | | | |
# (2 rows)
#
# => show help;
# NOTICE: Console usage
# DETAIL:
# SHOW HELP|CONFIG|DATABASES|POOLS|CLIENTS|SERVERS|USERS|VERSION
# SHOW FDS|SOCKETS|ACTIVE_SOCKETS|LISTS|MEM
# SHOW DNS_HOSTS|DNS_ZONES
# SHOW STATS|STATS_TOTALS|STATS_AVERAGES|TOTALS
# SET key = arg
# RELOAD
# PAUSE [<db>]
# RESUME [<db>]
# DISABLE <db>
# ENABLE <db>
# RECONNECT [<db>]
# KILL <db>
# SUSPEND
# SHUTDOWN
#
# message contents do not agree with length in message type "N"
# SHOW
Mon Oct 17 13:30:36 CEST 2022 running test_server_login_retry ... ok
Mon Oct 17 13:30:40 CEST 2022 running test_auth_user ... ok
Mon Oct 17 13:30:40 CEST 2022 running test_client_idle_timeout ... ok
Mon Oct 17 13:30:43 CEST 2022 running test_server_lifetime ... ok
Mon Oct 17 13:30:46 CEST 2022 running test_server_idle_timeout ... ok
Mon Oct 17 13:30:50 CEST 2022 running test_query_timeout ... ok
Mon Oct 17 13:30:53 CEST 2022 running test_idle_transaction_timeout ... ok
Mon Oct 17 13:30:59 CEST 2022 running test_server_connect_timeout_establish ... ok
Mon Oct 17 13:31:05 CEST 2022 running test_server_connect_timeout_reject ... skipped
Mon Oct 17 13:31:05 CEST 2022 running test_server_check_delay ... skipped
Mon Oct 17 13:31:05 CEST 2022 running test_tcp_user_timeout ... skipped
Mon Oct 17 13:31:05 CEST 2022 running test_max_client_conn ... ok
Mon Oct 17 13:31:08 CEST 2022 running test_pool_size ... ok
Mon Oct 17 13:31:13 CEST 2022 running test_min_pool_size ... ok
Mon Oct 17 13:31:15 CEST 2022 running test_reserve_pool_size ... ok
Mon Oct 17 13:31:29 CEST 2022 running test_max_db_connections ... ok
Mon Oct 17 13:31:30 CEST 2022 running test_max_user_connections ... ok
Mon Oct 17 13:31:33 CEST 2022 running test_connect_query ... ok
Mon Oct 17 13:31:33 CEST 2022 running test_online_restart ... ok
Mon Oct 17 13:31:43 CEST 2022 running test_pause_resume ... ok
Mon Oct 17 13:31:54 CEST 2022 running test_suspend_resume ... ok
Mon Oct 17 13:32:04 CEST 2022 running test_enable_disable ... ok
Mon Oct 17 13:32:05 CEST 2022 running test_database_restart ... ok
Mon Oct 17 13:32:11 CEST 2022 running test_database_change ... ok
Mon Oct 17 13:32:14 CEST 2022 running test_reconnect ... ok
Mon Oct 17 13:32:16 CEST 2022 running test_fast_close ... ok
Mon Oct 17 13:32:18 CEST 2022 running test_wait_close ... ok
Mon Oct 17 13:32:22 CEST 2022 running test_password_server ... ok
Mon Oct 17 13:32:22 CEST 2022 running test_password_client ... ok
Mon Oct 17 13:32:22 CEST 2022 running test_md5_server ... ok
Mon Oct 17 13:32:23 CEST 2022 running test_md5_client ... ok
Mon Oct 17 13:32:23 CEST 2022 running test_scram_server ... ok
Mon Oct 17 13:32:23 CEST 2022 running test_scram_client ... ok
Mon Oct 17 13:32:23 CEST 2022 running test_scram_both ... ok
Mon Oct 17 13:32:23 CEST 2022 running test_scram_takeover ... ok
Mon Oct 17 13:32:29 CEST 2022 running test_no_user_trust ... ok
Mon Oct 17 13:32:29 CEST 2022 running test_no_user_trust_forced_user ... ok
Mon Oct 17 13:32:29 CEST 2022 running test_no_user_password ... ok
Mon Oct 17 13:32:29 CEST 2022 running test_no_user_password_forced_user ... ok
Mon Oct 17 13:32:29 CEST 2022 running test_no_user_md5 ... ok
Mon Oct 17 13:32:29 CEST 2022 running test_no_user_md5_forced_user ... ok
Mon Oct 17 13:32:30 CEST 2022 running test_no_user_scram ... ok
Mon Oct 17 13:32:30 CEST 2022 running test_no_user_scram_forced_user ... ok
Mon Oct 17 13:32:30 CEST 2022 running test_no_user_auth_user ... ok
Mon Oct 17 13:32:30 CEST 2022 running test_auto_database ... ok
Mon Oct 17 13:32:30 CEST 2022 running test_no_database ... ok
Mon Oct 17 13:32:30 CEST 2022 running test_no_database_authfail ... ok
Mon Oct 17 13:32:30 CEST 2022 running test_no_database_auth_user ... ok
Mon Oct 17 13:32:31 CEST 2022 running test_cancel ... FAILED
# Cancel request sent
# ERROR: canceling statement due to user request
Mon Oct 17 13:32:32 CEST 2022 running test_cancel_wait ... FAILED
# SET server_idle_timeout=2
# Cancel request sent
# ERROR: canceling statement due to user request
Mon Oct 17 13:32:34 CEST 2022 running test_cancel_pool_size ... FAILED
# SET server_idle_timeout=2
# Cancel request sent
# Cancel request sent
# Cancel request sent
# Cancel request sent
# Cancel request sent
# ERROR: canceling statement due to user request
# ERROR: canceling statement due to user request
# ERROR: canceling statement due to user request
# ERROR: canceling statement due to user request
# ERROR: canceling statement due to user request
Mon Oct 17 13:32:35 CEST 2022 running test_host_list ... skipped
Mon Oct 17 13:32:35 CEST 2022 running test_host_list_dummy ... ok
make[2]: *** [Makefile:36: check] Fehler 1
make[2]: Verzeichnis „/home/cbe/projects/postgresql/pgbouncer/pgbouncer/test“ wird verlassen
make[1]: *** [debian/rules:27: override_dh_auto_test] Fehler 2
make[1]: Verzeichnis „/home/cbe/projects/postgresql/pgbouncer/pgbouncer“ wird verlassen
make: *** [debian/rules:10: binary] Fehler 2
Full log:
https://pgdgbuild.dus.dg-i.net/view/Binaries/job/pgbouncer-binaries/76/architecture=amd64,distribution=kinetic/console
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021859
(I also tried building HEAD, but that fails with a different error:
lib/usual/tls/tls_ocsp.c: In function ‘tls_ocsp_get_certid’:
lib/usual/tls/tls_ocsp.c:167:24: error: storage size of ‘storectx’ isn’t known
167 | X509_STORE_CTX storectx;
| ^~~~~~~~
lib/usual/tls/tls_ocsp.c:168:21: error: storage size of ‘tmpobj’ isn’t known
168 | X509_OBJECT tmpobj;
| ^~~~~~
lib/usual/tls/tls_ocsp.c:168:21: warning: unused variable ‘tmpobj’ [-Wunused-variable]
lib/usual/tls/tls_ocsp.c:167:24: warning: unused variable ‘storectx’ [-Wunused-variable]
167 | X509_STORE_CTX storectx;
| ^~~~~~~~
... and a lot of other warnings.)
Building pgbouncer 1.17.0 against PG15 yields this:
Full log:
https://pgdgbuild.dus.dg-i.net/view/Binaries/job/pgbouncer-binaries/76/architecture=amd64,distribution=kinetic/console
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021859
(I also tried building HEAD, but that fails with a different error:
... and a lot of other warnings.)