pgBackRest 2.58 commit log

v2.54.1: Bug Fix

commit   : 9b72bfd9b2d63aef346c0f696c4913beb02afd65    
  
author   : David Steele <[email protected]>    
date     : Mon, 16 Dec 2024 10:41:06 -0500    
  
committer: David Steele <[email protected]>    
date     : Mon, 16 Dec 2024 10:41:06 -0500    

Click here for diff

Bug Fixes:  
  
* Fix issue with version/help commands attempting to load pgbackrest.conf. (Reviewed by Stefan Fercot. Reported by Bradford Boyle, Julian.)  
  
Test Suite Improvements:  
  
* Stabilize async archiving in integration tests. (Contributed by Viktor Kurilko. Reviewed by David Steele.)  

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/release/2024/2.54.1.xml
M meson.build
M src/build/configure.ac
M src/configure
M src/version.h
M test/code-count/file-type.yaml

Rephrase invitation to star on Github.

commit   : 359de9eb616572ac16a54d6c6d98e31a63e7fd05    
  
author   : David Steele <[email protected]>    
date     : Sun, 15 Dec 2024 11:28:46 -0500    
  
committer: David Steele <[email protected]>    
date     : Sun, 15 Dec 2024 11:28:46 -0500    

Click here for diff

M doc/xml/index.xml

Change "find" to "visit" in introduction.

commit   : f30efbe86dcb1529b9f2b5dcc0456fa65903473f    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 15:26:37 -0500    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 15:26:37 -0500    

Click here for diff

M doc/xml/index.xml

Update release notes for PostgreSQL 17 support.

commit   : 46360d1ed4521a1a635bd98b9ac87d35430a16f9    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 14:36:11 -0500    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 14:36:11 -0500    

Click here for diff

Accurately reflect when different versions of PostgreSQL were supported since an update was required for beta3.  

M doc/resource/git-history.cache
M doc/xml/release/2024/2.52.xml
M doc/xml/release/2024/2.53.1.xml

Update Fedora test image to Fedora 41.

commit   : dd424ba290f6f1d97a0e704273e5c190b9221d9a    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 14:28:44 -0500    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 14:28:44 -0500    

Click here for diff

M .github/workflows/test.yml
M test/container.yaml
M test/lib/pgBackRestTest/Common/ContainerTest.pm
M test/lib/pgBackRestTest/Common/VmTest.pm

Add wait for async archive log exists check in integration test.

commit   : b9e8a885962a62dd4ad6d2599bb283f4035457c6    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 14:22:24 -0500    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 14:22:24 -0500    

Click here for diff

They may be a small delay before the log exists, especially on slower platforms. Add a wait so the test does not fail in this case.  

M test/src/common/harnessStorage.c
M test/src/common/harnessStorage.h
M test/src/module/integration/allTest.c

Stabilize async archiving in integration tests.

commit   : b90ce9eb8c7cd9e9b131477a377249a3d3fda181    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 14:04:56 -0500    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 14:04:56 -0500    

Click here for diff

The integration tests could fail if:  
  
1. After restoring the PostgreSQL instance the recovery process starts, which calls asynchronous archive-get.  
2. After archive-get checks the existence of the queue directory, but before writing the WAL file, there are restores when the next test is begun, which leads to the deletion of the queue directory.  
3. Since the directory no longer exists, writing the WAL file will fail, and archive-get will write the error file to the queue.  
4. A new PostgreSQL instance will start and the recovery process will begin, which requests the WAL file.  
5. The new archive-get looks into the queue directory, finds the error file, and throws out the error, after which the PostgreSQL recovery fails because the previous archive-get background process has not finished yet.  
  
This patch fixes the problem by using a separate spool directory for each test.  

M doc/xml/release/2024/2.54.1.xml
M test/src/common/harnessHost.c

Exclude function void return logging macros from coverage reporting.

commit   : 3fa450f3a1626473162440eb4b4300e61c6a6d50    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 13:50:56 -0500    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 13:50:56 -0500    

Click here for diff

As in 355e27d6, it makes sense to exclude FUNCTION_(LOG|TEST)_RETURN_VOID() macros when then they are on the last line of a function because in this case they are a noop (but are still used for debugging).  

M doc/xml/auto/metric-coverage-report.auto.xml
M test/src/command/test/coverage.c
M test/src/module/test/coverageTest.c

Fix issue with version/help commands attempting to load pgbackrest.conf.

commit   : 8d6911898afd75c586ef70c6d8559b1e5959a155    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 13:41:55 -0500    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 13:41:55 -0500    

Click here for diff

8d6bceb5 refactored version/help to operate more like regular commands in part to simplify the implementation of --version and --help. Unfortunately this had the side effect of these commands also loading pgbackrest.conf which would lead to an error if the file could not be read or parsed.  
  
Add a filter to prevent version or help from loading pgbackrest.conf. Also prevent reads from the env to stop any warnings or errors from that source.  

M doc/xml/release/2024/2.54.1.xml
M doc/xml/release/contributor.xml
M src/config/parse.c
M test/src/module/config/parseTest.c

Exclude function logging macros from coverage reporting.

commit   : 38cecf9443cd03bb1dacd41163143d7365d648f4    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 13:31:52 -0500    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 13:31:52 -0500    

Click here for diff

It makes sense to exclude these from reporting since they are always covered when the function is covered and they are purely for debugging.  

M test/src/command/test/coverage.c
M test/src/module/test/coverageTest.c

Fix misplaced volatile qualifiers in GCS authorization JWT generation.

commit   : 12042c607e5e265e16c5b8ba9306887d6cb86a75    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 13:22:07 -0500    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 13:22:07 -0500    

Click here for diff

The volatile qualifiers should be on the pointers that are stored on the stack, not on the structures that are allocated by OpenSSL functions.  
  
Also remove all the casts that were required when volatile was in wrong place.  

M src/storage/gcs/storage.c

Update Cirrus MacOS runner to OpenSSL 3.

commit   : c6a2bfa55a84b05130497ca681309d8070cefd64    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 11:54:05 -0500    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 11:54:05 -0500    

Click here for diff

OpenSSL 1.1 is no longer available in HomeBrew.  

M .cirrus.yml

Begin v2.54.1 development.

commit   : f3c41ee8316e64e1ae35cba78b6d8cee118590be    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 11:50:14 -0500    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Dec 2024 11:50:14 -0500    

Click here for diff

M doc/resource/git-history.cache
M doc/xml/release.xml
A doc/xml/release/2024/2.54.1.xml
M meson.build
M src/build/configure.ac
M src/configure
M src/version.h