Skip to content

Releases: hapostgres/pg_auto_failover

v2.1

24 Nov 10:52
2fda3e0
Compare
Choose a tag to compare

pg_auto_failover v2.1 (November 24, 2023)

This release incorporates support for Postgres major version 16, some bug fixes,
documentation updates, and usual code maintenance work.

Added

  • Support for Postgres major version 16. (#1013, #1006, )
  • Improve on documentation, Docker images, and tutorials. (#964, #954, #947)
  • PGDATABASE as default create node --dbname. (#956)
  • Add chapters to the documentation navigation. (#954)

Fixed

  • Makefile .PHONY target is defined throughout where needed. (#1008)
  • History file parsing allowing for files longer than 1024 lines. (#995)
  • A mistake in setup description (#984)
  • Typo in pg_autoctl_do_pgsetup.rst (#961)
  • pg_autoctl version Postgres compatibility string. (#951)
  • Creating the PGUSER at pg_autoctl create postgres time. (#950)
  • Dockerfile compatibility for Citus before 11. (#946)
  • Punctuation in README.md. (#945)

Changed

  • Main Makefile is reorganized to split out citus and azure specifics. (#1008)
  • Citus version matrix with new Citus releases. (#990)
  • Update Citus from 11.1.2 to 11.1.3 in the build system. (#957)

v2.0

07 Oct 12:03
v2.0
73c0d7e
Compare
Choose a tag to compare

pg_auto_failover v2.0 (October 7, 2022)

This new release includes support for Citus in pg_auto_failover, the usual
amount of bug fixes, and update documentation with new tutorials and
diagrams.

The source code repository branch "master" was renamed to "main". This
impacts the URLs of the docs for the not-yet released versions, and if
you're using your own local git clone you might need to change your remote
settings to follow the "main" branch now.

Added

  • Implement Citus support in pg_auto_failover. (#933)
  • Improve our Citus support for modern Citus compatibility. (#939)

Fixed

  • Fix documentation of health_check_period to match code (#926)
  • Bug fix: if process is stopped, refrain from signaling PID 0. (#921)
  • Fix monitor extension for new Postgres 15 shared memory hooks. (#922)
  • Refrain from using PGPASSWORD for pg_basebackup connection. (#768)
  • Fix build on FreeBSD (sempahore union support). (#901)
  • Improve tests stability around wait-until-pg-is-running. (#900)
  • Avoid NULL pointer check (#898)
  • Fix incorrect order of arguments in prototype (#887)
  • Fix check for negative pid (#888)
  • Fix potential out of bounds array access (#889)
  • Fix incorrect indentation of foreach block (#884)
  • docs: fix various typos (#885)
  • Fix tests for a non-interactive environment. (#894)
  • Fix ssl test by copying root client-side certificates. (#893)

Changed

  • Review the README, introduce a new first simple tutorial. (#942)
  • Use our docker test infrastructure on GitHub Actions. (#937)
  • Include Postgres 15 in our CI testing. (#923)
  • Improve our docker compose file a little. (#724)
  • Improve documentation thanks to user feedback. (#909)
  • Trigger github action workflow on pull requests to master. (#895)

v1.6.4

06 Apr 13:20
v1.6.4
9f9456b
Compare
Choose a tag to compare

pg_auto_failover v1.6.4 (April 6, 2022)

This is a bug fix release for the 1.6 series.

Added

  • Compat with Postgres 15devel. (#838, #842)
  • Add support for more environment variables. (#846)
  • Add support for tablespaces (#870)

Fixed

  • Handle return events for poll() (#836)
  • No need to checkpoint and restart if pg is not running (#839)
  • Fix a race condition in node registration. (#847)
  • Couple of fixes to the demo app. (#860)
  • Check return value of strdup calls (#862)

v1.6.3

09 Nov 10:07
v1.6.3
31593a6
Compare
Choose a tag to compare

pg_auto_failover v1.6.3 (November 5, 2021)

This is a bug fix release for the 1.6 series.

This release also introduces a new ncurses interactive dashboard that makes
it easier to understand the current state (and transitions) of a formation.
The new command pg_autoctl watch can be used to monitor pg_auto_failover
activity.

Added

  • New ncurses dashboard with command pg_autoctl watch (#809)

Changed

  • Allow setting maximum-backup-rate on create postgres step (#812)

Fixed

  • Work around pg_replication_slot_advance xmin maintenance bug. (#815)
  • Fix "Current State" to "Reported State", and a docs cross-ref.
  • Monitor config set postgresql.pg_ctl bug fix (#818)
  • Fix how we clean-up our logs semaphore. (#811)
  • Fix synchronous_standby_names return value when there is no primary (#807)

v1.6.2

09 Sep 09:46
v1.6.2
dc53632
Compare
Choose a tag to compare

pg_auto_failover v1.6.2 (September 8, 2021)

This is a bug fix release for the 1.6 series.

Added

  • Also retry libpq connections to a local host. (#793)

Changed

  • Only exit at upgrade when the on-disk binary is ready. (#771)
  • Only use wait_maintenance to wait for wait_primary (#794)
  • Get rid of the JOIN_PRIMARY state. (#796)
  • Make sure to disable sync rep when initializing a primary. (#801)

Fixed

  • Avoid re-electing primary during a switchover. (#772)
  • Improve error messages for missing configuration files. (#779)
  • Fix replication slot maintenance on secondary nodes. (#781)
  • Fix problems with bad migration to 1.5 (#792)
  • Fix maintenance state related transitions. (#786)
  • Per valgrind, fix some memory leaks. (#799)
  • When creating from an existing PGDATA, fix missing initialization. (#802)

v1.6.1

08 Jul 10:57
v1.6.1
626d643
Compare
Choose a tag to compare

pg_auto_failover v1.6.1 (July 7, 2021)

This release contains monitor schema changes, so the monitor extension gets
a version bump from 1.5 to 1.6, and this is the first release in the 1.6
series.

In this release we introduce a new state in the FSM: "dropped". This state
allows a node to realise it's been dropped from the monitor, and act
accordingly (mostly, stops cleanly and register it's been dropped).

This means that the command pg_autoctl drop node now only completes when
the node that is being dropped is still reachable. To drop a node that is
unreachable (e.g. machine died), you should now use the command pg_autoctl drop node --force.

Added

  • Feature crash recovery before pg_rewind (#656)
  • Allow building pg_auto_failover with Postgres 14. (#716)
  • Track nodes current timeline on the monitor and use it during election. (#730)
  • Implement drop-at-a-distance semantics. (#734)
  • Add the reported timeline id to the monitor events table. (#753)

Changed

  • Fix how many nodes need to report their LSN to perform a failover. (#707)
  • Allow an old primary node (demoted/catchingup) to join another election. (#727)
  • Have pg_autoctl drop node command wait until the node has been removed. (#748)

Fixed

  • Fix/consider timeline when reaching secondary (#695)
  • Install btree_gist when upgrade to >= 1.4, not just 1.4. (#714)
  • Fix a race condition issue around health check updates. (#720)
  • Not all the monitor code got the memo about nodeid being a bigint. (#729)
  • Use sysctl(3) on BSD (#733)
  • Fix transaction begin failure handling (#751)
  • Fix a connection leak at SIGINT. (#759)

v1.5.2

20 May 15:21
v1.5.2
125bb19
Compare
Choose a tag to compare

pg_auto_failover v1.5.2 (May 20, 2021)

This is a bugfix release for the v1.5 series.

In addition to bug fixes, this release also contains a lift of the
restriction to always have at least two nodes with a non-zero candidate
priority in a group. It is now possible to use pg_auto_failover and only
have manual failover.

If you're using the output from the command pg_autoctl show settings --json please notice that we changed the JSON format we use in the output.
See #697 for details.

Added

  • Check that a "replication" connection is possible before pg_rewind. [#665]
  • Allow manual promotion of nodes with candidate priority zero. [#661]
  • Implement a new configuration option listen_notifications_timeout. [#677]
  • Log monitor health changes as events. [#703]

Changed

  • Use PGDATA owner for the systemd service file. [#666]
  • Remove logging of connection password in monitor string [#512]
  • Improve docs color contrast for accessibility [#674]
  • Fix pg_autoctl show settings --json output. [#697]

Fixed

  • Docs: typo fix for Postgres client certificate file (postgresql.crt). [#652]
  • Plug connection leaks found during profiling [#582]
  • Review find_extension_control_file[) error handling. (#659]
  • Fix/identify system before pg basebackup [#658]
  • Fix a pipe issue and return code [#619]
  • Fix memory leak allocated by createPQExpBuffer() (#671]
  • Fix parsing pg version string for replication slots support on standby. [#676]
  • Fix/debian cluster for the monitor [#681]
  • Fix a memory leak in uri_contains_password. [#687]
  • Fix a memory leak in BuildNodesArrayValues. [#693]
  • Complete transition of a second [or greater) failed primary (#706]

v1.5.1

25 Mar 09:51
v1.5.1
fe484a0
Compare
Choose a tag to compare

pg_auto_failover v1.5.1 (March 24, 2021)

This release contains monitor schema changes, so the monitor extension gets
a version bump from 1.4 to 1.5, and this is the first release in the 1.5
series.

Added

  • Add support for systemd ExecReload option. [#623]
  • Implement online enable/disable monitor support. [#591]
  • Add individual pages for the pg_autoctl commands. [#632]
  • Implement a demo application showing client-side reconnections. [#568]

Changed

The main change in the CLI is that pg_autoctl show uri --monitor does not
display the connection string to the monitor anymore, instead it allows
passing the URI to the monitor, same as with the other pg_autoctl show commands. To display the monitor connection string, use pg_autoctl show uri --formation monitor now.

  • Allow using --monitor uri for a lot of commands [#576]
  • Review pg_autoctl show state output, and docs. [#617]
  • Avoid using synchronous standby name wildcard [#629]

Fixed

  • Fix supervisor messages about exited services. [#589]
  • Fix memory management issue in monitor_register_node. [#590]
  • Fix a buffer overlap instruction that macOs libc fails to process. [#610]
  • Add pg_logging_init for PG version 12 and above [#612]
  • Fix skip hba propagation [#588, #609]
  • Improve DNS lookup error handling. [#615]
  • Do not leak psycopg2 connections during testing [#628]

v1.4.2

04 Feb 15:33
v1.4.2
238bfec
Compare
Choose a tag to compare

pg_auto_failover v1.4.2 (February 3, 2021)

This is a bugfix release for v1.4 series

Added

  • Implement pg_autoctl do azure commands (QA tooling). [#544]
  • pg autoctl show settings. [#549]
  • Improve docker images (build, release). [#556]
  • Run monitor extension test suite in the CI. [#553]
  • Implement pg_autoctl create postgres --pg-hba-lan option. [#561]

Fixed

  • Deduplicate PATH entries, following symlinks. [#547]
  • Review consequences of pg_autoctl set formation number-sync-standbys 0. [#535]
  • Fix bytes mangling opportunity. [#550]
  • Allow setting replication settings to their current value. [#570]
  • Fix the return code when stop the node that is started by pg_autoctl. [#572]
  • Set formation kind when expected. [#577]
  • Fix retry loops with wait time to stop using 100% CPU. [#578]

v1.4.1

03 Dec 11:49
v1.4.1
667448d
Compare
Choose a tag to compare

pg_auto_failover v1.4.1 (December 3, 2020)

This is a bugfix release for v1.4.0

Added

  • Implement HBA hostname DNS checks, and warn users when needed. [#458]
  • Make it obvious when an extension is missing. [#475]

Changed

  • Refrain from using FIRST %d in synchronous_standby_names. [#461]
  • Always use node id and node name in messages. [#462]

Fixed

  • Force closing the connection used to check replication slots. [#451]
  • Fix when to ProceedWithMSFailover after a candidate is selected. [#439]
  • Ensure that the monitor owns the Postgres (sub-)process. [#455]
  • Avoid a race condition between file_exists() and read_file(). [#460]
  • Review memory/malloc errors and potential leaks. [#478]
  • Review APPLY_SETTINGS transitions in cases including node removal. [#480]
  • Fix when we switch synchronous_standby_names to '*'. [#488]
  • Fix hostname discovery [#479]
  • Fix non default formation [#489]
  • Review when to assign catching-up on unhealthy secondary. [#493]
  • Fix race conditions in multiple-standby Group FSM for failover. [#499]
  • Fix synchronous_standby_names when disabling maintenance. [#502]
  • Fix debian stats temp directory [#504]
  • Use PG_CONFIG has a hint to choose one of multiple Postgres versions. [#510]
  • Fix build for *BSD [#519]
  • Refrain from considering a WAIT_STANDBY node unhealthy. [#524]
  • Allow a DEMOTED primary to come back to a new wait/join/primary. [#524]
  • Fix pg_autoctl show standby-names. [#524]
  • Fix unhealthy nodes processing when wait_primary. [#521]
  • Fix FSM when a non-candidate node is back online. [#533]
  • Fix assigning catchingup to unhealthy secondaries. [#534]
  • Fix pg_autoctl set formation number-sync-standbys log output. [#536]