pgBackRest 2.56 commit log

v2.53.1: PostgreSQL 17beta3 Support

commit   : b84a3dd08c7eeea81ce4c77d0bb0c7ad16f61f4c    
  
author   : David Steele <[email protected]>    
date     : Mon, 19 Aug 2024 11:16:14 +0700    
  
committer: David Steele <[email protected]>    
date     : Mon, 19 Aug 2024 11:16:14 +0700    

Click here for diff

Bug Fixes:  
  
* Fix permissions when restore run as root user. (Reviewed by Stefan Fercot. Reported by Will M.)  
* Fix segfault on delayed connection errors. (Reviewed by David Christensen. Reported by Anton Glushakov.)  
* Skip local repository duplicate check for SFTP. (Fixed by Reid Thompson. Reviewed by David Steele. Reported by Anton Kurochkin.)  
  
Improvements:  
  
* PostgreSQL 17beta3 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/release/2024/2.53.1.xml
M meson.build
M src/build/configure.ac
M src/configure
M src/version.h

Fix segfault on delayed connection errors.

commit   : 377ba062ac81867dca6197265688deb0111ae81a    
  
author   : David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 11:46:56 +0700    
  
committer: David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 11:46:56 +0700    

Click here for diff

Connection errors could cause a segfault if the error was delayed enough to pass the initial call to sckClientOpenWait() and the error was instead thrown by a subsequent call to sckClientOpenWait(), which was not correctly initializing a variable required for error handling.  
  
While this can be produced fairly easily in a test environment, I was unable to craft a unit test to hit this exact condition, probably due to timing. The new code still has full coverage and I added several comments to help prevent regressions.  

M doc/xml/release/2024/2.53.1.xml
M src/common/io/socket/client.c

Skip local repository duplicate check for SFTP.

commit   : 98403046ed6af4c54fa2f572ecf9c211f94b67db    
  
author   : Reid Thompson <[email protected]>    
date     : Fri, 16 Aug 2024 11:21:44 +0700    
  
committer: David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 11:21:44 +0700    

Click here for diff

This check does not make sense for SFTP since the repository will never be local.  

M doc/xml/release/2024/2.53.1.xml
M src/config/load.c
M test/src/module/config/loadTest.c

PostgreSQL 17beta3 support.

commit   : 189d15d1a640e31aac5ffbbd0fb06eb9eed8b576    
  
author   : David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 11:13:35 +0700    
  
committer: David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 11:13:35 +0700    

Click here for diff

This release changed the control and WAL format, which is very unusual for a beta. Update control and WAL versions/structs to match.  

M doc/xml/release/2024/2.53.1.xml
M src/postgres/interface/version.vendor.h
M test/container.yaml
M test/src/module/postgres/interfaceTest.c

Fix permissions when restore run as root user.

commit   : 7bd8da4eecb0ce1461854414b727606a5e884edf    
  
author   : David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 10:46:41 +0700    
  
committer: David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 10:46:41 +0700    

Click here for diff

When restore was run as the root user the pg_control file would end up with root permissions. This bug was introduced in e634fd8. Fix this by directly overwriting the pg_control temp file rather than doing an atomic write that updates permissions. Also update other parameters to more closely match similar calls.  
  
There was also an adjacent error where restore as the root user would fail if the base path did not exist. Fix this by ignoring the missing path since it will be created later and this logic is just trying to find an alternate user for permissions if the user in the manifest does not exist.  

M doc/xml/release/2024/2.53.1.xml
M doc/xml/release/contributor.xml
M src/command/restore/restore.c
M test/src/common/harnessHost.c
M test/src/common/harnessHost.h
M test/src/module/integration/allTest.c

Fix typo in user guide.

commit   : 5fa74d5d3ce85b157b11169b25b15085379b84aa    
  
author   : Aleksey Tsalolikhin <[email protected]>    
date     : Fri, 16 Aug 2024 10:16:00 +0700    
  
committer: David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 10:16:00 +0700    

Click here for diff

M doc/xml/user-guide.xml

Do not allow help for command roles other than main.

commit   : c1fe2dbe81139482a42cc6ca957c68ff7454ce9e    
  
author   : David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 10:13:14 +0700    
  
committer: David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 10:13:14 +0700    

Click here for diff

Previously requesting help for roles other than main would result in a segfault since help.auto.c.inc does not include such help.  
  
Prevent this by erroring when a user requests help for roles other than main.  
  
This is a bug but it is unlikely to have ever been seen in the field and in any case it has a very low severity since it only impacts a corner-case for the help command.  

M src/config/parse.c
M test/src/module/config/parseTest.c

Begin v2.53.1 development.

commit   : 6d653a14a2330659928c4700f851d3bafb899527    
  
author   : David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 09:35:41 +0700    
  
committer: David Steele <[email protected]>    
date     : Fri, 16 Aug 2024 09:35:41 +0700    

Click here for diff

M doc/resource/git-history.cache
M doc/xml/release.xml
A doc/xml/release/2024/2.53.1.xml
M meson.build
M src/build/configure.ac
M src/configure
M src/version.h
M test/code-count/file-type.yaml