Skip to content

Releases: pgbouncer/pgbouncer

PgBouncer 1.16.0

09 Aug 08:41
Compare
Choose a tag to compare

2021-08-09 - PgBouncer 1.16.0 - "Fended off a jaguar"

  • Features

    • Support hot reloading of TLS settings. When the configuration file is reloaded, changed TLS settings automatically take effect.
    • Add support for abstract Unix-domain sockets. Prefix a Unix-domain socket path with @ to use a socket in the abstract namespace. This matches the corresponding PostgreSQL 14 feature.
    • The maximum lengths of passwords and user names have been increased to 996 and 128, respectively. Various cloud services require this.
    • The minimum pool size can now be set per database, similar to the regular pool size and the reserve pool size.
    • The number of pending query cancellations is shown in SHOW POOLS.
  • Fixes

    • Configuration parsing now has tighter error handling in many places. Where previously it might have logged an error and proceeded, those configuration errors would now result in startup failures. This is what always should have happened, but some code didn't do this right. Some users might discover that their configurations have been faulty all along and will not work anymore.
    • Query cancel handling has been fixed. Under some circumstances, cancel requests would seemingly get stuck for a long time. This should no longer happen. In fact, cancel requests can now exceed the pool size by a factor of two, so they really shouldn't get stuck anymore. (#542, #543)
    • Mixed use of md5 and scram via hba has been fixed.
    • The build with c-ares on Windows has been fixed.
    • The dreaded "FIXME: query end, but query_start == 0" messages have been fixed. We now know why they happen, and you shouldn't see them anymore. (#565)
    • Fix reloading of default_pool_size, min_pool_size, and res_pool_size. Reloading these settings previously didn't work.
  • Cleanups

    • Cirrus CI is now used instead of Travis CI.
    • As usual, many tests have been added.
    • The "unclean server" log message has been clarified a bit. It now says "client disconnect while server was not ready" or "client disconnect before everything was sent to the server". The former can happen if the client connection is closed when the server has a transaction block open, which confused some users.
    • You can no longer use "pgbouncer" as a database name. This name is reserved for the admin console, and using it as a normal database name never really worked right. This is now explicitly prohibited.
    • Errors sent to clients before the connection is closed are now labeled as FATAL instead of just ERROR. Some clients were confused otherwise. (#564)
    • Fix compiler warnings with GCC 11. (#623)

PgBouncer 1.15.0

19 Nov 13:31
Compare
Choose a tag to compare

2020-11-19 - PgBouncer 1.15.0 - "Ich hab noch einen Koffer in Berlin"

  • Features

    • Improve authentication failure reporting. The authentication failure messages sent to the client now only state that authentication failed but give no further details. Details are available in the PgBouncer log. Also, if the requested user does not exist, the authentication is still processed to the end and will result in the same generic failure message. All this prevents clients from probing the PgBouncer instance for user names and other authentication-related insights. This is similar to how PostgreSQL behaves.
    • Don't log anything if client disconnects immediately. This avoids log spam when monitoring systems just open a TCP/IP connection but don't send anything before disconnecting.
    • Use systemd journal for logging when in use. When we detect that stderr is going to the systemd journal, we use systemd native functions for log output. This avoids printing duplicate timestamp and pid, thus making the log a bit cleaner. Also, this adds metadata such as the severity to the logs, so that if the journal gets sent on to syslog, the messages have useful metadata attached.
    • A subset of the test suite can now be run under Windows.
    • SHOW CONFIG now also shows the default values of the settings.
  • Fixes

    • Fix the so_reuseport option on FreeBSD. The original code in PgBouncer 1.12.0 didn't actually work on FreeBSD. (#504)
    • Repair compilation on systems with older systemd versions. This was broken in 1.14.0. (#505)
    • The makefile target to build Windows binary zip packages has been repaired.
    • Long command-line options now also work on Windows.
    • Fix the behavior of the global auth_user setting. The old behavior was confusing and fragile as it depended on the order in the configuration file. This is no longer the case. (#391,#393)
  • Cleanups

    • Improve test stability and portability.
    • Modernize Autoconf-related code.
    • Disable deprecation compiler warnings from OpenSSL 3.0.0.

For this release, we are also publishing pre-built Windows binaries on GitHub. These should be considered experimental right now. We
welcome feedback on this.

PgBouncer 1.14.0

11 Jun 07:13
Compare
Choose a tag to compare

2020-06-11 - PgBouncer 1.14.0 - "La ritrovata magia"

  • Features

    • Add SCRAM authentication pass-through. This allows using encrypted SCRAM secrets in PgBouncer (either in userlist.txt or from auth_query) for logging into servers.
    • Add support for systemd socket activation. This is especially useful to let systemd handle the creation of the Unix-domain sockets on systems where access to /var/run/postgresql is restricted.
    • Add support for Unix-domain sockets on Windows.
  • Cleanups

    • Add an alternative smaller sample configuration file pgbouncer-minimal.ini for testing or deployment.

PgBouncer 1.13.0

27 Apr 07:45
Compare
Choose a tag to compare

2020-04-27 - PgBouncer 1.13.0 - "My favourite game"

  • Features

    • Add configuration setting tcp_user_timeout, to set the corresponding socket option.
    • client_tls_protocols and server_tls_protocols now default to secure, which means only TLS 1.2 and TLS 1.3 are enabled. Older versions are still supported, they are just not turned on by default.
    • Add support for systemd service notifications. Right now, this allows using Type=notify service units. More integration is planned for future versions.
  • Fixes

    • Fix multiline log messages (libusual #24)
    • Handle null user names returned from auth_query properly (#340)
  • Cleanups

    • The Debian packaging files under debian have been removed. It is recommended to use the packages from https://apt.postgresql.org/.
    • Numerous fixes and improvements in the test suite
    • The tests no longer try to use sudo by default. This can now be activated explicitly by setting the environment variable USE_SUDO.
    • The libevent API use was updated to use version 2 style interfaces and to no longer use deprecated interfaces from version 1.

PgBouncer 1.12.0

17 Oct 13:52
Compare
Choose a tag to compare

2019-10-17 - PgBouncer 1.12.0 - "It's about learning and getting better"

This release contains a variety of minor enhancements and fixes.

  • Features

    • Add a setting to turn on the SO_REUSEPORT socket option. On some operating systems, this allows running multiple PgBouncer instances on the same host listening on the same port and having the kernel distribute the connections automatically.
    • Add a setting to use a resolv.conf file separate from the operating system. This allows setting custom DNS servers and perhaps other DNS options.
    • Send the output of SHOW VERSION as a normal result row instead of a NOTICE message. This makes it easier to consume and is consistent with other SHOW commands.
  • Fixes

    • Send statistics columns as numeric instead of bigint. This avoids some client libraries failing on values that overflow the bigint range. (#360, #401)
    • Fix issue with PAM users losing their password. (#285)
    • Accept SCRAM channel binding enabled clients. Previously, a client supporting channel binding (that is, PostgreSQL 11+) would get a connection failure when connecting to PgBouncer in certain situations. (PgBouncer does not support channel binding. This change just fixes support for clients that offer it.)
    • Fix compilation with newer versions of musl-libc (used by Alpine Linux).
  • Cleanups

    • Add make check target. This allows running all the tests from a single command.
    • Remove references to the PostgreSQL wiki. All information is now either in the PgBouncer documentation or on the web site.
    • Remove support for Libevent version 1.x. Libevent 2.x is now required. Libevent is now detected using pkg-config.
    • Fix compiler warnings on macOS and Windows. The build on these platforms should now be free of warnings.
    • Fix some warnings from LLVM scan-build.

PgBouncer 1.11.0

27 Aug 08:57
Compare
Choose a tag to compare

2019-08-27 - PgBouncer 1.11.0 - "Instinct for Greatness"

  • Features
    • Add support for SCRAM authentication for clients and servers. A new authentication type scram-sha-256 is added.
    • Handle auth_type=password when the stored password is md5, like a PostgreSQL server would. (#129)
    • Add option log_stats to disable printing stats to log. (#287)
    • Add time zone to log timestamps.
    • Put PID into [brackets] in log prefix.
  • Fixes
    • Fix OpenSSL configure test when running against newer OpenSSL with -Werror.
    • Fix wait time computation with auth_user. This would either crash or report garbage values for wait
      time. (#393)
    • Handle GSSENCRequest packet, added in PostgreSQL 12. It doesn't do anything right now, but it avoids confusing error messages about "bad packet header".
  • Cleanups
    • Many improvements in the test suite and several new tests
    • Fix several compiler warnings on Windows.
    • Expand documentation of the [users] section and add to example config file. (#330)

PgBouncer 1.10.0

01 Jul 08:15
Compare
Choose a tag to compare

2019-07-01 - PgBouncer 1.10.0 - "Afraid of the World"

  • Features
    • Add support for enabling and disabling TLS 1.3. (TLS 1.3 was
      already supported, depending on the OpenSSL library, but now the
      configuration settings to pick the TLS protocol versions also
      support it.)
  • Fixes
    • Fix TLS 1.3 support. This was broken with OpenSSL 1.1.1 and
      1.1.1a (but not before or after).
    • Fix a rare crash in SHOW FDS
      (#311).
    • Fix an issue that could lead to prolonged downtime if many cancel
      requests arrive
      (#329).
    • Avoid "unexpected response from login query" after a postgres
      reload
      (#220).
    • Fix idle_transaction_timeout calculation
      (#125). The
      bug would lead to premature timeouts in specific situations.
  • Cleanups
    • Make various log and error messages more precise.
    • Fix issues found by Coverity (none had a significant impact in
      practice).
    • Improve and document all test scripts.
    • Add additional SHOW commands to the documentation.
    • Convert the documentation from rst to Markdown.
    • Python scripts in the source tree are all compatible with Python 3
      now.

PgBouncer 1.9.0

13 Aug 08:20
Compare
Choose a tag to compare

2018-08-13 - PgBouncer 1.9.0 - "Chaos Survival"

  • Features
    • RECONNECT command
    • WAIT_CLOSE command
    • Fast close - Disconnect a server in session pool mode immediately if
      it is in "close_needed" (reconnect) mode.
    • Add close_needed column to SHOW SERVERS
  • Fixes
    • Avoid double-free in parse_filename
    • Avoid NULL pointer deref in parse_line
  • Cleanups
    • Port mkauth.py to Python 3
    • Improve signals documentation
    • Improve quick start documentation
    • Document SET command
    • Correct list of required software
    • Fix -Wimplicit-fallthrough warnings
    • Add missing documentation for various SHOW fields
    • Document reconnect behavior on reload and DNS change
    • Document that KILL requires RESUME afterwards
    • Clarify documentation of server_lifetime
    • Typos and capitalization fixes in messages and docs
    • Fix psql invocation in tests
    • Various other test setup improvements