pgBackRest 2.43 commit log

v2.42: Bug Fixes

commit   : 70b75532bf20a025323b2a3138497ef01eb1774f    
  
author   : David Steele <[email protected]>    
date     : Tue, 22 Nov 2022 10:20:59 +0800    
  
committer: David Steele <[email protected]>    
date     : Tue, 22 Nov 2022 10:20:59 +0800    

Click here for diff

Bug Fixes:  
  
* Fix memory leak in file bundle backup/restore. (Reviewed by John Morris, Oscar. Reported by Oscar.)  
* Fix protocol error on short read of remote file. (Reviewed by Stephen Frost.)  
  
Improvements:  
  
* Do not store references for zero-length files when bundling. (Reviewed by Stefan Fercot.)  
* Use more generic descriptions for pg_start_backup()/pg_stop_backup(). (Reviewed by Greg Sabino Mullane, David Christensen. Suggested by Greg Sabino Mullane.)  
  
Test Suite Improvements:  
  
* Update test.pl --psql-bin option to match command-line help. (Contributed by Koshi Shibagaki. 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.xml
M meson.build
M src/build/configure.ac
M src/configure
M src/version.h
M test/src/module/command/backupTest.c

Update test.pl --psql-bin option to match command-line help.

commit   : 3ad588443b452e04f3abcc107e825dc47e078103    
  
author   : k_zshiba <[email protected]>    
date     : Mon, 14 Nov 2022 13:47:27 +0900    
  
committer: GitHub <[email protected]>    
date     : Mon, 14 Nov 2022 13:47:27 +0900    

Click here for diff

The option to specify the path to psql was shown in the command-line help as --psql-bin but the option was actually named --pgsql-bin.
  

  
Rename to match the help so they are consistent.

M doc/xml/release.xml
M test/lib/pgBackRestTest/Common/JobTest.pm
M test/lib/pgBackRestTest/Common/ListTest.pm
M test/lib/pgBackRestTest/Common/VmTest.pm
M test/test.pl

Add raw mode to CipherBlock to save space.

commit   : 58b3c91babc6af9e003e5ef09bf99becf8a6f827    
  
author   : David Steele <[email protected]>    
date     : Thu, 10 Nov 2022 10:28:49 +0930    
  
committer: David Steele <[email protected]>    
date     : Thu, 10 Nov 2022 10:28:49 +0930    

Click here for diff

The magic in the header is only required so that command-line openssl will recognize the file as being encrypted. In cases where the encrypted data cannot be read with the command-line tool it makes sense to omit the header magic to save some space.  
  
Unfortunately this cannot be enabled for file bundling because it would break backward compatibility. However, it should be possible to enable it for the combination of bundling and block incremental.  

M doc/xml/release.xml
M src/common/crypto/cipherBlock.c
M src/common/crypto/cipherBlock.h
M test/src/module/common/cryptoTest.c

Update cipherBlockNew() to allow optional parameters.

commit   : c9db7bc274211820030c4ab6ab8c70c1b1896254    
  
author   : David Steele <[email protected]>    
date     : Sun, 6 Nov 2022 16:12:23 +0930    
  
committer: David Steele <[email protected]>    
date     : Sun, 6 Nov 2022 16:12:23 +0930    

Click here for diff

This simplifies calls a bit since digest is never passed and allows for new optional parameters.  

M doc/xml/release.xml
M src/command/archive/get/file.c
M src/command/archive/push/file.c
M src/command/backup/file.c
M src/command/restore/file.c
M src/command/verify/file.c
M src/common/crypto/cipherBlock.c
M src/common/crypto/cipherBlock.h
M test/src/common/harnessStorage.c
M test/src/module/common/cryptoTest.c
M test/src/module/info/infoTest.c
M test/src/module/storage/remoteTest.c

Shorten names in real/all integration test matrix.

commit   : 221db610d2a054ed00ad27377663941abfb9fb98    
  
author   : David Steele <[email protected]>    
date     : Tue, 18 Oct 2022 18:02:17 +1300    
  
committer: David Steele <[email protected]>    
date     : Tue, 18 Oct 2022 18:02:17 +1300    

Click here for diff

This should allow one or two more parameters to be added without going to a new line, which keeps the matrix easier to read.  

M doc/xml/release.xml
M test/lib/pgBackRestTest/Module/Real/RealAllTest.pm

Add backupFileRepoPathP().

commit   : 5fceee88a9439460bf24082f275ec2e695cc6bf6    
  
author   : David Steele <[email protected]>    
date     : Tue, 18 Oct 2022 17:39:59 +1300    
  
committer: David Steele <[email protected]>    
date     : Tue, 18 Oct 2022 17:39:59 +1300    

Click here for diff

The path for a backup file in the repository was being generated in four different places, so move the logic to a function.  

M doc/xml/release.xml
M src/command/backup/backup.c
M src/command/backup/common.c
M src/command/backup/common.h
M src/command/restore/restore.c

Pass filters to remote storage as a handler array.

commit   : fee38c2c7cc3ae318bf0d3b50fe23c22900c2311    
  
author   : David Steele <[email protected]>    
date     : Tue, 18 Oct 2022 16:11:35 +1300    
  
committer: David Steele <[email protected]>    
date     : Tue, 18 Oct 2022 16:11:35 +1300    

Click here for diff

The prior code required coverage in the storage/remote module for all filters that could be used remotely.  
  
Now the filter handlers are set at runtime so any filter list can be used with a remote. This is more flexible and makes coverage testing easier. It also resolves a test dependency.  
  
Move the command/remote unit test near the end so it will have access to all filters without using depends.  

M doc/xml/release.xml
M src/command/remote/remote.c
M src/storage/remote/protocol.c
M src/storage/remote/protocol.h
M test/define.yaml
M test/src/module/storage/remoteTest.c

Add noTruncate flag to storageNewWriteP().

commit   : 1730ef4ac3d88137bd218e6128b0107a8bf2c121    
  
author   : David Steele <[email protected]>    
date     : Tue, 18 Oct 2022 11:33:19 +1300    
  
committer: GitHub <[email protected]>    
date     : Tue, 18 Oct 2022 11:33:19 +1300    

Click here for diff

This flag skips truncation when opening a file for write on drivers that support it, currently Posix and CIFS. This is convenient for cases where the file needs to be manipulated directly using the file descriptor. Using the file descriptor is not ideal and additional functionality should be added to the storage interface, but for now at least this avoids code duplication, especially on close which updates owners, the timestamp, syncs, etc.
  

  
The remote driver forbids no truncate because a file descriptor is never available for a remote storage write object.
  

  
Update two instances in the current code which benefit from this new functionality, but the primary reason for the change is to support more complex restore deltas in the upcoming block incremental feature.

M doc/xml/release.xml
M src/command/control/stop.c
M src/command/restore/file.c
M src/storage/azure/storage.c
M src/storage/azure/write.c
M src/storage/gcs/storage.c
M src/storage/gcs/write.c
M src/storage/posix/storage.c
M src/storage/posix/write.c
M src/storage/posix/write.h
M src/storage/remote/protocol.c
M src/storage/remote/storage.c
M src/storage/remote/write.c
M src/storage/s3/storage.c
M src/storage/s3/write.c
M src/storage/storage.c
M src/storage/storage.h
M src/storage/storage.intern.h
M src/storage/write.h
M src/storage/write.intern.h
M test/src/module/storage/azureTest.c
M test/src/module/storage/gcsTest.c
M test/src/module/storage/posixTest.c
M test/src/module/storage/remoteTest.c
M test/src/module/storage/s3Test.c

Fix protocol error on short read of remote file.

commit   : 7967c750d83466d030081e9deb1d70a1ba240271    
  
author   : David Steele <[email protected]>    
date     : Tue, 18 Oct 2022 11:09:00 +1300    
  
committer: GitHub <[email protected]>    
date     : Tue, 18 Oct 2022 11:09:00 +1300    

Click here for diff

If a remote file read was stopped before the read was complete or if an error occurred in the middle of the read then the protocol would end up in a bad state and produce this error:
  

  
ProtocolError: client state is 'data-get' but expected 'idle'
  

  
Prevent this by reading the rest of the file on close() or free() to leave the protocol in an idle state for the next command.
  

  
This was a possible issue for bundling because the amount to read is known in advance and therefore eof may not be reached. However, I was only able to reproduce this issue with unreleased code.
  

  
On error this issue would cause the original error to be lost. The process may still fail with this fix (if the error comes from another source) but hopefully we'll get better information about the original error.

M doc/xml/release.xml
M src/storage/remote/read.c
M test/src/module/storage/remoteTest.c

Use more generic descriptions for pg_start_backup()/pg_stop_backup().

commit   : ddd966cadc30440a81100144204d4084a0f2ac3a    
  
author   : David Steele <[email protected]>    
date     : Tue, 18 Oct 2022 09:59:15 +1300    
  
committer: GitHub <[email protected]>    
date     : Tue, 18 Oct 2022 09:59:15 +1300    

Click here for diff

The names were changed in PostgreSQL 15, so update the code and docs to make the naming more generic where needed to avoid using a version-specific name in the logs and documentation.

M doc/xml/release.xml
M src/build/help/help.xml
M src/command/backup/backup.c
M src/command/check/common.c
M test/src/module/command/backupTest.c

Finalize catalog number for PostgreSQL 15 release.

commit   : 65be4c64a984d51306db4c6febe3a124c3230f51    
  
author   : David Steele <[email protected]>    
date     : Sun, 16 Oct 2022 09:58:35 +1300    
  
committer: David Steele <[email protected]>    
date     : Sun, 16 Oct 2022 09:58:35 +1300    

Click here for diff

M src/build/postgres/postgres.yaml
M src/postgres/interface/version.vendor.h
M test/container.yaml
M test/lib/pgBackRestTest/Common/ContainerTest.pm
M test/lib/pgBackRestTest/Env/HostEnvTest.pm

Move storageReadRemoteOpen() in storage/remote/read module.

commit   : ea162e821634919b7c839e866b99bf82010dbacc    
  
author   : David Steele <[email protected]>    
date     : Fri, 14 Oct 2022 12:54:43 +1300    
  
committer: David Steele <[email protected]>    
date     : Fri, 14 Oct 2022 12:54:43 +1300    

Click here for diff

This will make an upcoming important fix easier to review.  

M src/storage/remote/read.c

Swap command/backup and command/restore unit tests.

commit   : 909be412f8ad0d87f23ce2a2dbca94c3e0732f9f    
  
author   : David Steele <[email protected]>    
date     : Fri, 14 Oct 2022 12:08:40 +1300    
  
committer: David Steele <[email protected]>    
date     : Fri, 14 Oct 2022 12:08:40 +1300    

Click here for diff

Logically restore belongs after backup and in a future commit restore will have a dependency on some backup objects.  

M doc/xml/release.xml
M test/define.yaml

Enable FreeBSD 12/13 builds on Cirrus CI.

commit   : 8f67fb6db2645c2dae24429555ead66147ba176f    
  
author   : David Steele <[email protected]>    
date     : Fri, 14 Oct 2022 10:59:07 +1300    
  
committer: David Steele <[email protected]>    
date     : Fri, 14 Oct 2022 10:59:07 +1300    

Click here for diff

The builds were disabled in bb11539a and 164548f2 due to an error that seems to have been caused by a bad package dependency for rsync. In any case adding this fixed it:  
  
pkg update && pkg upgrade -y libiconv  

M .cirrus.yml

Use read-only storage to calculate checksum in restoreFile().

commit   : e7e106f781be01027d4829b258902549eb36eb7b    
  
author   : David Steele <[email protected]>    
date     : Tue, 11 Oct 2022 10:52:34 -1100    
  
committer: David Steele <[email protected]>    
date     : Tue, 11 Oct 2022 10:52:34 -1100    

Click here for diff

Writable storage is not required here so use read-only storage instead.  

M doc/xml/release.xml
M src/command/restore/file.c

Disable FreeBSD 12 builds on Cirrus CI.

commit   : 164548f2b744db5e6c7a3089176f6df2a638d105    
  
author   : David Steele <[email protected]>    
date     : Tue, 11 Oct 2022 10:20:44 -1100    
  
committer: David Steele <[email protected]>    
date     : Tue, 11 Oct 2022 10:20:44 -1100    

Click here for diff

Build have begin failing with this error:  
  
ld-elf.so.1: /usr/local/bin/rsync: Undefined symbol "locale_charset"  
  
There does not appear to be a new version so hopefully this is a transient error (hoping the same for FreeBSD 13, see bb11539a). Disable for now to free the build pipeline.  

M .cirrus.yml

Update ManifestFile booleans to bit fields.

commit   : 352cbf1d5738a720292b5067051a05efc2b9a8ac    
  
author   : David Steele <[email protected]>    
date     : Thu, 6 Oct 2022 10:15:38 -1000    
  
committer: David Steele <[email protected]>    
date     : Thu, 6 Oct 2022 10:15:38 -1000    

Click here for diff

M doc/xml/release.xml
M src/info/manifest.h

Return binary as result from CryptoHash filter.

commit   : 46a0af353139f3238dbe96671e99ea0456028940    
  
author   : David Steele <[email protected]>    
date     : Wed, 5 Oct 2022 18:05:56 -1000    
  
committer: David Steele <[email protected]>    
date     : Wed, 5 Oct 2022 18:05:56 -1000    

Click here for diff

The prior result was hex-encoded, which is not optimal. This was legacy from the interface with Perl and then the JSON protocol. The new binary protocol natively supports binary so it makes sense to use it and convert to hex where needed.  
  
A number of these hex conversions can now be removed but that will need to be handled in another commit.  

M src/command/archive/push/file.c
M src/command/backup/backup.c
M src/command/backup/file.c
M src/command/restore/file.c
M src/command/verify/file.c
M src/command/verify/verify.c
M src/common/crypto/hash.c
M src/info/info.c
M src/storage/gcs/write.c
M test/src/common/harnessInfo.c
M test/src/module/command/backupTest.c
M test/src/module/common/cryptoTest.c
M test/src/module/storage/remoteTest.c

Add varint-128 encode/decode to IoRead/IoWrite.

commit   : 5602f179a177a8513b96c762590829c012c28175    
  
author   : David Steele <[email protected]>    
date     : Wed, 5 Oct 2022 17:01:35 -1000    
  
committer: GitHub <[email protected]>    
date     : Wed, 5 Oct 2022 17:01:35 -1000    

Click here for diff

This makes it more efficient to read/write (especially read) varint-128 to/from IO.
  

  
Update the Pack type to take advantage of the more efficient read and remove some duplicate code.

M doc/xml/release.xml
M src/common/io/read.c
M src/common/io/read.h
M src/common/io/write.c
M src/common/io/write.h
M src/common/type/pack.c
M test/define.yaml
M test/src/module/common/ioTest.c
M test/src/module/common/typePackTest.c

Add persistent reference list to manifest.

commit   : 102ce5dee47e8d9a8d2eeaf2b2cc2bac105914ef    
  
author   : David Steele <[email protected]>    
date     : Wed, 5 Oct 2022 16:28:31 -1000    
  
committer: GitHub <[email protected]>    
date     : Wed, 5 Oct 2022 16:28:31 -1000    

Click here for diff

The reference list was previously built at load time from whichever references existed in the file list. This was sufficient since the list was for informational purposes only.
  

  
The block incremental feature will require a reference list that contains all prior backups, even those that are not explicitly referenced from the manifest. Therefore it makes sense to build and persist a manifest list rather than building it at load time.
  

  
This list can still be used for informational purposes, though it needs to be sorted since the list it sill built for older manifest versions and may not be in sorted order.
  

  
Add strLstFindIdx() to find references in the list.

M doc/xml/release.xml
M src/common/type/stringList.c
M src/common/type/stringList.h
M src/info/infoBackup.c
M src/info/manifest.c
M src/info/manifest.h
M test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm
M test/src/common/harnessLog.c
M test/src/module/command/backupTest.c
M test/src/module/command/restoreTest.c
M test/src/module/common/typeStringTest.c
M test/src/module/info/manifestTest.c

Add manifest flags for file processing during backup.

commit   : c647bcb50954f623d29104cdb8a1457ed8e94579    
  
author   : David Steele <[email protected]>    
date     : Wed, 5 Oct 2022 13:14:15 -1000    
  
committer: GitHub <[email protected]>    
date     : Wed, 5 Oct 2022 13:14:15 -1000    

Click here for diff

The prior method was to check a combination of fields to determine if a file needed to be copied, delta'd, or resumed. This was complicated and ultimately imposed a limitation on the number of operations that could be performed.
  

  
Introduce copy, delta, and resume flags in the manifest to make it clearer which operations need to be performed and to reduce complex and duplicated logic.
  

  
This also allows zero-length bundled files to be completed during manifest build rather than later on during backup processing.

M doc/xml/release.xml
M src/command/backup/backup.c
M src/command/backup/file.c
M src/command/backup/file.h
M src/command/backup/protocol.c
M src/info/manifest.c
M src/info/manifest.h
M test/src/module/command/backupTest.c
M test/src/module/info/manifestTest.c

Disable FreeBSD 13 builds on Cirrus CI.

commit   : bb11539a37e830ed2a836633218b7184a7a57f2d    
  
author   : David Steele <[email protected]>    
date     : Wed, 5 Oct 2022 12:20:02 -1000    
  
committer: David Steele <[email protected]>    
date     : Wed, 5 Oct 2022 12:20:02 -1000    

Click here for diff

Build have begin failing with this error:  
  
ld-elf.so.1: /usr/local/bin/rsync: Undefined symbol "locale_charset"  
  
There does not appear to be a new version so hopefully this is a transient error. Disable for now to free the build pipeline.  

M .cirrus.yml

Improve manifest file updates.

commit   : 1ea6a4142e47e2e0b56911ad1f028dfcddc5fd64    
  
author   : David Steele <[email protected]>    
date     : Tue, 4 Oct 2022 14:19:12 -1000    
  
committer: GitHub <[email protected]>    
date     : Tue, 4 Oct 2022 14:19:12 -1000    

Click here for diff

The prior manifestFileUpdate() function was pretty difficult to use since all the parameters had to specified. Instead, pass a ManifestFile struct that has all members set as needed.
  

  
When new struct members are added the manifestFileUpdate() call sites will still need to be reviewed, but this should make the process of adding members a bit simpler.

M doc/xml/release.xml
M src/command/backup/backup.c
M src/info/manifest.c
M src/info/manifest.h
M test/src/module/info/manifestTest.c

Do not store references for zero-length files when bundling.

commit   : f981fb45d9931e597afec764e13b1a53d8365d25    
  
author   : David Steele <[email protected]>    
date     : Tue, 4 Oct 2022 13:22:31 -1000    
  
committer: GitHub <[email protected]>    
date     : Tue, 4 Oct 2022 13:22:31 -1000    

Click here for diff

This appears to have been an oversight in 34d6495. Storing the reference is not really correct since the file is not stored in a prior backup. It also uses more space.
  

  
There is no real harm in storing the reference, since it is always ignored on restore, but the code is simpler if the zero-length files can be dealt with during the manifest and don't need additional handling later on. This is also an important part of some upcoming optimizations.

M doc/xml/release.xml
M src/command/backup/backup.c
M test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm
M test/src/module/command/backupTest.c

Fix assert message and add a clarifying comment.

commit   : f0acc195c0527495857f1afa8b24bdf2a4f477b5    
  
author   : David Steele <[email protected]>    
date     : Mon, 3 Oct 2022 10:02:44 -1000    
  
committer: David Steele <[email protected]>    
date     : Mon, 3 Oct 2022 10:02:44 -1000    

Click here for diff

M src/common/io/filter/filter.c

Do not log bundle info when a file is delta matched from a prior backup.

commit   : 6e26860c2648f6e23ad99bb4d38ecb1bfc45dd0c    
  
author   : David Steele <[email protected]>    
date     : Sun, 2 Oct 2022 17:48:43 -1000    
  
committer: David Steele <[email protected]>    
date     : Sun, 2 Oct 2022 17:48:43 -1000    

Click here for diff

It is possible to log the bundle info correctly but the information is useless with the backup reference, which does not appear until later. For now just omit the bundle info so we are not logging something incorrect.  

M src/command/backup/backup.c
M test/src/module/command/backupTest.c

Add test for differential file bundles to the command/backup unit.

commit   : 4722ad87a78f1085ef8d823b7460d191477e768e    
  
author   : David Steele <[email protected]>    
date     : Sun, 2 Oct 2022 17:41:31 -1000    
  
committer: David Steele <[email protected]>    
date     : Sun, 2 Oct 2022 17:41:31 -1000    

Click here for diff

This test exposes a small logging issue. The bundle information for the matched delta on PG_VERSION is not correct. This issue will be fixed in the next commit.  
  
The information stored in the manifest *is* correct so this bug is essentially cosmetic.  

M test/src/module/command/backupTest.c

Add bufferSize to cvtUInt64FromVarInt128() to further limit reads.

commit   : ac99201c0ebde616279214e600e49fdf506f7469    
  
author   : David Steele <[email protected]>    
date     : Sun, 2 Oct 2022 17:32:48 -1000    
  
committer: David Steele <[email protected]>    
date     : Sun, 2 Oct 2022 17:32:48 -1000    

Click here for diff

The current call site, manifestFileUnpack(), does not know the total buffer size but the buffer has always been maintained in memory so there should be no corruption. However, there are upcoming use cases where the buffer will be read from IO, the buffer size will be known, and additional sanity checking on buffer overruns will be valuable.  
  
Also rename params to align better with cvtUInt64ToVarInt128().  

M src/common/type/convert.c
M src/common/type/convert.h
M src/info/manifest.c
M test/src/module/common/typeConvertTest.c

commit   : 01b81f9d374701eb489dd1888bcba25fb5d6df84    
  
author   : Reid Thompson <[email protected]>    
date     : Sat, 1 Oct 2022 21:26:44 -0400    
  
committer: GitHub <[email protected]>    
date     : Sat, 1 Oct 2022 21:26:44 -0400    

Click here for diff

Direct link creation via Posix functions has been moved to the Posix driver.
  

  
This change allows adding SFTP softlink creation in the SFTP driver using the standard interface.

M doc/xml/release.xml
M src/command/backup/backup.c
M src/command/backup/common.c
M src/command/restore/restore.c
M src/storage/posix/storage.c
M src/storage/posix/storage.intern.h
M src/storage/remote/protocol.c
M src/storage/remote/protocol.h
M src/storage/remote/storage.c
M src/storage/storage.c
M src/storage/storage.h
M src/storage/storage.intern.h
M test/define.yaml
M test/src/module/storage/posixTest.c
M test/src/module/storage/remoteTest.c

Add zero-length chunked content test to common/ioHttp unit.

commit   : 2a4137ed2eeaa769508301056226d6f86a67fd06    
  
author   : David Steele <[email protected]>    
date     : Sun, 25 Sep 2022 16:15:23 -0800    
  
committer: David Steele <[email protected]>    
date     : Sun, 25 Sep 2022 16:15:23 -0800    

Click here for diff

It seems wasteful to chunk content when there is nothing to send but make sure we handle it gracefully just in case a server decides to do it.  

M test/src/module/common/ioHttpTest.c

Fix comment typo.

commit   : 64b64b614c8272d2a87ffcde2fa7f27cf7eee365    
  
author   : David Steele <[email protected]>    
date     : Sun, 25 Sep 2022 12:30:30 -0800    
  
committer: David Steele <[email protected]>    
date     : Sun, 25 Sep 2022 12:30:30 -0800    

Click here for diff

M test/src/module/command/backupTest.c

Use large error/log buffers in test harness.

commit   : f1e8e49fa933dd0f5dfab446f511ac010eb4d236    
  
author   : David Steele <[email protected]>    
date     : Fri, 23 Sep 2022 14:00:58 -0700    
  
committer: David Steele <[email protected]>    
date     : Fri, 23 Sep 2022 14:00:58 -0700    

Click here for diff

Ninja produces quite a bit of output so error messages are often truncated by the default error/log buffers. Use large buffers in the test harness to capture the error even when there is a lot of output.  
  
Ninja has introduced a --quiet option, but it is currently too new to be in any of our test distributions.  

M test/src/meson.build

Fix memory leak in file bundle backup/restore.

commit   : cd8db7d9e53e041ad6fb31f2f015541c1d24abc2    
  
author   : David Steele <[email protected]>    
date     : Thu, 22 Sep 2022 22:42:01 -0700    
  
committer: GitHub <[email protected]>    
date     : Thu, 22 Sep 2022 22:42:01 -0700    

Click here for diff

When converting restoreFile() to support file bundling in 34d64957 there were some I/O objects that were only freed at the end of the function that should have been freed at the end of each loop. Wrap the loops in temp mem contexts to fix this.
  

  
Do the same to backupFile() since it would have a similar leak when resuming a backup. Since file bundles cannot be resumed the leak would not be as severe, but still seems worth doing to protect against future leaks.

M doc/xml/release.xml
M src/command/backup/file.c
M src/command/restore/file.c

Add missed release note for b05d31f5.

commit   : d50a4442e45efa8d1a16c9bf68f2337367c42835    
  
author   : David Steele <[email protected]>    
date     : Thu, 22 Sep 2022 10:35:41 -0700    
  
committer: David Steele <[email protected]>    
date     : Thu, 22 Sep 2022 10:35:41 -0700    

Click here for diff

M doc/xml/release.xml

Update config.guess and config.sub to latest versions.

commit   : 9483844f7fc9a5eac64a87d3c80cfea3fd592e4e    
  
author   : David Steele <[email protected]>    
date     : Mon, 19 Sep 2022 10:25:38 -0700    
  
committer: David Steele <[email protected]>    
date     : Mon, 19 Sep 2022 10:25:38 -0700    

Click here for diff

M src/build/config.guess
M src/build/config.sub

Begin v2.42 development.

commit   : ab4209ebcbe23b5c3b759ba67f0e9bdc6cb66280    
  
author   : David Steele <[email protected]>    
date     : Mon, 19 Sep 2022 10:17:25 -0700    
  
committer: David Steele <[email protected]>    
date     : Mon, 19 Sep 2022 10:17:25 -0700    

Click here for diff

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