Fix clobbering of proc entry's statusFlags during slot invalidation
commit : 453ebae70c1de72b564499719717e605a09ce940
author : Michael Paquier <michael@paquier.xyz>
date : Wed, 30 Sep 2026 14:37:14 +0900
committer: Michael Paquier <michael@paquier.xyz>
date : Wed, 30 Sep 2026 14:37:14 +0900
Click here for diff
ReplicationSlotRelease() copied MyProc->statusFlags unconditionally
when resetting PROC_IN_LOGICAL_DECODING, using its pgxactoff to decide
which area to update.
Slot invalidations can be done by the checkpointer or the startup
process, and ReplicationSlotRelease() ignored the fact that pgxactoff is
only meaningful for processes in the proc array, that auxiliary
processes never join. pgxactoff would remain at 0 for these, meaning
that an incorrect set of status flags would be updated.
The consequences of this issue could be various, depending on the
statsFlags lost in the proc slot incorrectly overwritten. Losing
PROC_AFFECTS_ALL_HORIZONS has been mentioned as the worse case, causing
VACUUM to remove rows a standby may needs even if standby feedback is
enabled. Assertions failures are another possibility.
Let's skip the update of statusFlags unless PROC_IN_LOGICAL_DECODING is
set. Nothing but StartupDecodingContext() sets it, and no auxiliary
processes call it.
Author: Vlad Lesin <vladlesin@gmail.com>
Reviewed-by: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/889a06dd-45fc-423b-9dd2-87d5b5dc60c6@gmail.com
Backpatch-through: 14
M src/backend/replication/slot.c
Fix clobbering of proc entry's statusFlags during slot invalidation
commit : 9510a826e4add77280e0a7a65f429563a4c4a2a8
author : Michael Paquier <michael@paquier.xyz>
date : Wed, 30 Sep 2026 14:35:14 +0900
committer: Michael Paquier <michael@paquier.xyz>
date : Wed, 30 Sep 2026 14:35:14 +0900
Click here for diff
ReplicationSlotRelease() copied MyProc->statusFlags unconditionally
when resetting PROC_IN_LOGICAL_DECODING, using its pgxactoff to decide
which area to update.
Slot invalidations can be done by the checkpointer or the startup
process, and ReplicationSlotRelease() ignored the fact that pgxactoff is
only meaningful for processes in the proc array, that auxiliary
processes never join. pgxactoff would remain at 0 for these, meaning
that an incorrect set of status flags would be updated.
The consequences of this issue could be various, depending on the
statsFlags lost in the proc slot incorrectly overwritten. Losing
PROC_AFFECTS_ALL_HORIZONS has been mentioned as the worse case, causing
VACUUM to remove rows a standby may needs even if standby feedback is
enabled. Assertions failures are another possibility.
Let's skip the update of statusFlags unless PROC_IN_LOGICAL_DECODING is
set. Nothing but StartupDecodingContext() sets it, and no auxiliary
processes call it.
Author: Vlad Lesin <vladlesin@gmail.com>
Reviewed-by: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/889a06dd-45fc-423b-9dd2-87d5b5dc60c6@gmail.com
Backpatch-through: 14
M src/backend/replication/slot.c
v2.59.2: PostgreSQL 19beta4 Support
commit : d5138e2e3b92fe806505bc8b9c69f36bd70cea18
author : David Steele <david@pgbackrest.org>
date : Sun, 27 Sep 2026 14:15:45 +0300
committer: David Steele <david@pgbackrest.org>
date : Sun, 27 Sep 2026 14:15:45 +0300
Click here for diff
Bug Fixes:
* Fix empty block map when file is truncated to zero during backup. (Reviewed by Douglas J Hunley. Reported by JPCOSTA78.)
* Disable read retry when filters are passed to the driver. (Reviewed by Douglas J Hunley. Reported by megamaced.)
* Fix pagination of S3 version listing. (Reviewed by Douglas J Hunley, guruguruguru. Reported by guruguruguru.)
* Set the Azure version header for SAS authentication. (Reviewed by Douglas J Hunley. Reported by Florian Helmberger.)
* Fix async archive-push stalling on a zero-size backup history file. (Fixed by Andrew Kroh. Reviewed by David Steele, Douglas J Hunley.)
* Fix annotate command on a remote encrypted repository. (Fixed by Douglas J Hunley. Reviewed by David Steele.)
Features:
* PostgreSQL 19beta4 support.
M CONTRIBUTING.md
M README.md
M doc/resource/exe.cache
M doc/resource/git-history.cache
M doc/xml/auto/metric-coverage-report.auto.xml
M doc/xml/index.xml
M doc/xml/news.xml
M doc/xml/release/2020s/2026/2.59.2.xml
M meson.build
M src/version.h
v2.59.1: PostgreSQL 19beta3 Support
commit : 8c8f3ee63e310f0b3ea10b55ed3b96b4cc9296da
author : David Steele <david@pgbackrest.org>
date : Mon, 17 Aug 2026 16:08:40 +0700
committer: David Steele <david@pgbackrest.org>
date : Mon, 17 Aug 2026 16:08:40 +0700
Click here for diff
Bug Fixes:
* Fix hang when the chunk buffer is smaller than the input buffer. (Reviewed by Andrew Pogrebnoi, Douglas J Hunley. Reported by crajac66.)
* Compare a new backup label only against its own full backup set. (Reviewed by Douglas J Hunley. Reported by Anton Glushakov.)
* Fix source archives generated by GitHub missing files required to build. (Reported by aardvarkzed.)
Features:
* PostgreSQL 19beta3 support. (Contributed by Lardière Sébastien. Reviewed by David Steele.)
Documentation Improvements:
* Document exception for dots in S3 bucket names when repo-s3-uri-style=path.
* Remove explicit hot_standby configuration from user guide.
M CONTRIBUTING.md
M README.md
M doc/resource/exe.cache
M doc/resource/git-history.cache
M doc/xml/auto/metric-coverage-report.auto.xml
M doc/xml/index.xml
M doc/xml/news.xml
M doc/xml/release/2020s/2026/2.59.1.xml
M doc/xml/release/contributor.xml
M meson.build
M src/version.h
Stamp 18.6.
commit : 724edf9bde9d356724ad384a2e196edc3c9f80f7
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Tue, 11 Aug 2026 14:38:31 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Tue, 11 Aug 2026 14:38:31 -0400
Click here for diff
M configure
M configure.ac
M meson.build
Release notes for 18.6.
commit : 841d0cb0f9b8b1b25e7b299ac0eb134074b45a08
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Tue, 11 Aug 2026 14:37:01 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Tue, 11 Aug 2026 14:37:01 -0400
Click here for diff
Stamp 14.24.
commit : 6b3806732b7c5df06bdd0ed150e8a07b4ad62315
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:59:18 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:59:18 -0400
Click here for diff
M configure
M configure.ac
Update .abi-compliance-history for security fixes.
commit : 18ec528b8c3804f4c101e3a8d091ada7c5a40bb4
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:49 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:49 -0400
Click here for diff
Stamp 15.19.
commit : 2ff1375b5dd8bf09d8cb0e795974528180fd75ca
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:57:41 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:57:41 -0400
Click here for diff
M configure
M configure.ac
Update .abi-compliance-history for security fixes.
commit : 492b517f362a4325bbcd6c1aa6f1204b7696d7ed
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
Click here for diff
Stamp 16.15.
commit : 7d3e000c5961a544302072058a1184e9a588837b
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:56:00 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:56:00 -0400
Click here for diff
M configure
M configure.ac
M meson.build
Update .abi-compliance-history for security fixes.
commit : a5c8e521cf9e2d2334cf3c94ed64edb397b00e01
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
Click here for diff
Stamp 17.11.
commit : 083ac033419f690758508e08c1736089384bbee8
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:54:09 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:54:09 -0400
Click here for diff
M configure
M configure.ac
M meson.build
Update .abi-compliance-history for security fixes.
commit : 83bb18b714e7b98c243083d2480828331601de23
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
Click here for diff
v2.59.0: PostgreSQL 19 Support
commit : f84c8357d49ea9452cd606531e9c4c322c41bc2e
author : David Steele <david@pgbackrest.org>
date : Mon, 20 Jul 2026 15:13:35 +0700
committer: GitHub <noreply@github.com>
date : Mon, 20 Jul 2026 15:13:35 +0700
Click here for diff
NOTE TO PACKAGERS: A new distribution tarball is available which simplifies the build process by providing pregenerated HTML documentation, man page, and code. The tarball is attached to each release as an asset and is named pgbackrest-{version}.tar.gz. See the README.md in the tarball for details. Please use the new distribution tarball to avoid the additional build tooling required to generate code in future releases.
NOTE TO PACKAGERS: There is a new optional dependency on libsystemd.
IMPORTANT NOTE: Starting with this release, only the restore command may be run as root by default. Use allow-root to run other commands as root (though this is not recommended).
Bug Fixes:
* Fix expire removing a backup in progress on another host. (Reviewed by Douglas J Hunley. Reported by Dmitrii.)
* Fix archive-push-queue-max not enforced when a WAL file errors. (Reviewed by Stefan Fercot. Reported by vut12.)
* Fix async archive-get failure during recovery across a timeline switch. (Reviewed by Douglas J Hunley. Reported by Jimmy Yih.)
* Fix potential buffer overrun in error module. (Fixed by Christophe Pettus. Reviewed by David Steele.)
* Fix use-after-free of parallel protocol client. (Reviewed by Douglas J Hunley. Reported by Georgy Shelkovy.)
* Fix heap overflow when a pg option is set without pg1. (Reviewed by Douglas J Hunley. Reported by Naveen.)
Features:
* PostgreSQL 19beta2 support. (Reviewed by Stefan Fercot.)
* Add archive-expire-before option to clean up WAL archive. (Contributed by Stefan Fercot. Reviewed by David Steele.)
* Add batch delete for Azure storage. (Reviewed by Douglas J Hunley, Crispy.)
* Add support for S3 Outposts. (Contributed by Shiva Kumar Ambigi. Reviewed by David Steele, Roberto Mello.)
* Add S3 process authentication. (Reviewed by Andrew Charlton. Suggested by Andrew Charlton.)
Improvements:
* Reconnect SFTP storage after the server drops an idle connection. (Reviewed by Stefan Fercot. Suggested by mustafa0x, tisserat.)
* Add user/group caching for faster manifest build. (Contributed by Gunnar Lindholm. Reviewed by David Steele.)
* Add per-repo backup progress to info command output. (Contributed by Will Morland. Reviewed by David Steele, Stefan Fercot.)
* Add backup.info checks to verify command. (Contributed by Denis Garsh. Reviewed by David Steele, Douglas J Hunley.)
* Allow the S3 STS endpoint to be configured. (Contributed by Simon Gratton. Reviewed by David Steele.)
* Add archive-push-batch-size to limit WAL pushed per asynchronous run. (Reviewed by Stefan Fercot.)
* Exit async archive-push on first error. (Reviewed by Stefan Fercot. Suggested by Lardière Sébastien.)
* Harden HTTP chunked response parsing. (Contributed by Shubham. Reviewed by David Steele.)
* Error when running as root unless allow-root is enabled. (Reviewed by Douglas J Hunley.)
* Fewer binary searches when building manifest. (Contributed by Gunnar Lindholm. Reviewed by David Steele.)
* Improve seek performance during block incremental delta restore. (Reviewed by David Christensen, Douglas J Hunley.)
* Bundle backup files in order rather than scanning for a better fit. (Reviewed by Stefan Fercot.)
* Report the underlying error when a query fails to complete. (Reviewed by Andrew Pogrebnoi. Suggested by Marco Fontana.)
* Report the actual error when an S3 credential request fails. (Reviewed by Douglas J Hunley. Suggested by Mitchell Grice.)
* Report archive-push spool path errors to the PostgreSQL log. (Reviewed by Douglas J Hunley. Suggested by Don Seiler.)
* Hint that pgBackRest may be out of date when a version is unsupported.
* Add systemd notify integration. (Contributed by Andrew Jackson. Reviewed by David Steele.)
* Suppress unused parameter errors in meson compiler probes. (Contributed by Jörg Plate. Reviewed by David Steele.)
* C11 is now the minimum C standard. (Reviewed by Mohammad Ali Nazir Kosar.)
Documentation Improvements:
* Make stanza option internal for the repo-* commands. (Reviewed by Stefan Fercot.)
* Document that info reads encryption settings from global section. (Reviewed by Stefan Fercot. Suggested by Ron Johnson.)
* Document that expire-auto uses the backup command configuration. (Reviewed by Stefan Fercot. Suggested by Lardière Sébastien.)
* Document adjusting the logrotate su directive for a dedicated user. (Reviewed by Douglas J Hunley. Suggested by lkanbus.)
* Document that end-of-line comments are not supported in config files. (Reviewed by Douglas J Hunley. Suggested by Alex Richman.)
Test Suite Improvements:
* Fix Alpine group conflicts in CI containers. (Contributed by Artur Zakirov. Reviewed by David Steele.)
M .github/workflows/test-dist.yml
M CONTRIBUTING.md
M README.md
M doc/RELEASE.md
M doc/manifest.xml
M doc/resource/exe.cache
M doc/resource/git-history.cache
M doc/xml/auto/metric-coverage-report.auto.xml
M doc/xml/index.xml
M doc/xml/news.xml
M doc/xml/release/2020s/2026/2.59.0.xml
M meson.build
M src/version.h