pgBackRest 2.42 commit log

v2.41: Backup Annotations

commit   : 6b355806cc288e6f473254412337596287291798    
  
author   : David Steele <[email protected]>    
date     : Mon, 19 Sep 2022 10:08:10 -0700    
  
committer: David Steele <[email protected]>    
date     : Mon, 19 Sep 2022 10:08:10 -0700    

Click here for diff

Bug Fixes:  
  
* Fix incorrect time expiration being used for non-default repositories. (Reviewed by Stefan Fercot. Reported by Adam Brusselback.)  
* Fix issue when listing directories recursively with a filter. (Reviewed by Stephen Frost. Reported by Efremov Egor.)  
  
Features:  
  
* Backup key/value annotations. (Contributed by Stefan Fercot. Reviewed by David Steele. Suggested by Adam Berlin.)  
  
Improvements:  
  
* Support --set in JSON output for info command. (Contributed by Stefan Fercot. Reviewed by David Steele. Suggested by Anton Kurochkin.)  
* Update archive.info timestamps after a successful backup. (Reviewed by Stefan Fercot. Suggested by Alex Richman.)  
* Move standby timeline check after checkpoint. (Reviewed by Stefan Fercot, Keith Fiske. Suggested by Keith Fiske.)  
* Improve warning message on backup resume. (Suggested by Cynthia Shang.)  
  
Documentation Improvements:  
  
* Add absolute path for kill in pgbackrest.service. (Suggested by Don Seiler.)  

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/code-count/file-type.yaml

Fix issue when listing directories recursively with a filter.

commit   : c39c9f220ed328b4175d912e109697b726e9ea9b    
  
author   : David Steele <[email protected]>    
date     : Thu, 15 Sep 2022 12:00:44 -0700    
  
committer: GitHub <[email protected]>    
date     : Thu, 15 Sep 2022 12:00:44 -0700    

Click here for diff

While recursing and filtering, if the last entry in a directory was another directory containing entries then the parent list would get freed too early, causing a double free error or segfault.
  

  
Fix by ensuring that the completed list is at the top of the stack before freeing it. This will defer freeing parent lists until the contents of paths have been processed.

M doc/xml/release.xml
M src/storage/iterator.c
M test/src/module/storage/posixTest.c

Fix incorrect storage for rendering errors.

commit   : 08a44be4c38e4bc72a20c19d764be8a673c9b909    
  
author   : David Steele <[email protected]>    
date     : Wed, 14 Sep 2022 16:22:48 -0700    
  
committer: David Steele <[email protected]>    
date     : Wed, 14 Sep 2022 16:22:48 -0700    

Click here for diff

Coverity complained of a copy/paste error here, but the actual error was what it took to be the correct "copied from" code.  
  
In any case, the prior code would have blown up as soon as a new error type was added. Fix by updating to the writable build storage.  

M src/build/main.c

Add mem context test missing from 0f7b6a33.

commit   : 240cd755d19ae2688d0deee65c00daf0651bb601    
  
author   : David Steele <[email protected]>    
date     : Wed, 14 Sep 2022 10:06:06 -0700    
  
committer: David Steele <[email protected]>    
date     : Wed, 14 Sep 2022 10:06:06 -0700    

Click here for diff

A coverage exception was added during development but was not removed before commit.  
  
Remove the exception and add a test for coverage.  

M doc/xml/release.xml
M src/common/memContext.c
M test/src/module/common/memContextTest.c

Add FN_INLINE_ALWAYS macro.

commit   : 8fb61a809dc63936a78e5233a2e8bc8dc616c762    
  
author   : David Steele <[email protected]>    
date     : Thu, 8 Sep 2022 18:36:03 -0600    
  
committer: GitHub <[email protected]>    
date     : Thu, 8 Sep 2022 18:36:03 -0600    

Click here for diff

Eliminate a lot of useless repetition for a commonly used pattern.

M CODING.md
M CONTRIBUTING.md
M doc/xml/coding.xml
M doc/xml/contributing.xml
M doc/xml/release.xml
M meson.build
M src/build.auto.h.in
M src/build/common/render.h
M src/build/common/yaml.h
M src/common/exec.h
M src/common/ini.h
M src/common/io/bufferRead.h
M src/common/io/bufferWrite.h
M src/common/io/client.h
M src/common/io/fd.h
M src/common/io/fdRead.h
M src/common/io/fdWrite.h
M src/common/io/filter/filter.h
M src/common/io/filter/filter.intern.h
M src/common/io/filter/group.h
M src/common/io/http/client.h
M src/common/io/http/header.h
M src/common/io/http/query.h
M src/common/io/http/request.h
M src/common/io/http/response.h
M src/common/io/http/session.h
M src/common/io/http/url.h
M src/common/io/read.h
M src/common/io/read.intern.h
M src/common/io/server.h
M src/common/io/session.h
M src/common/io/write.h
M src/common/regExp.h
M src/common/type/blob.h
M src/common/type/buffer.h
M src/common/type/convert.h
M src/common/type/json.h
M src/common/type/keyValue.h
M src/common/type/list.h
M src/common/type/object.h
M src/common/type/pack.h
M src/common/type/string.h
M src/common/type/stringId.h
M src/common/type/stringList.c
M src/common/type/stringList.h
M src/common/type/variant.h
M src/common/type/variantList.h
M src/common/type/xml.h
M src/common/wait.h
M src/config/config.h
M src/config/config.intern.h
M src/db/db.h
M src/info/info.h
M src/info/infoArchive.h
M src/info/infoBackup.h
M src/info/infoPg.h
M src/info/manifest.h
M src/postgres/client.h
M src/protocol/client.h
M src/protocol/command.h
M src/protocol/parallel.h
M src/protocol/parallelJob.h
M src/protocol/server.h
M src/storage/iterator.h
M src/storage/list.h
M src/storage/read.h
M src/storage/storage.h
M src/storage/storage.intern.h
M src/storage/write.h
M test/src/command/test/build.h
M test/src/common/harnessConfig.c
M test/src/common/harnessPostgres.h

Update Cirrus CI FreedBSD 13 image version.

commit   : 2c9cbbcc4e72f5c1809e0001e40bfb3e7d8bbe01    
  
author   : David Steele <[email protected]>    
date     : Thu, 8 Sep 2022 18:16:38 -0600    
  
committer: David Steele <[email protected]>    
date     : Thu, 8 Sep 2022 18:16:38 -0600    

Click here for diff

M .cirrus.yml

Update archive.info timestamps after a successful backup.

commit   : 3b5df1e089234d425dd225f8c1976755dc947c8a    
  
author   : David Steele <[email protected]>    
date     : Fri, 2 Sep 2022 10:03:18 -0500    
  
committer: GitHub <[email protected]>    
date     : Fri, 2 Sep 2022 10:03:18 -0500    

Click here for diff

Lifecycle policies can cause the archive.info file and its copy to be removed since they are only updated on a stanza-upgrade. Update the timestamps after a successful backup to prevent this.
  

  
This does not mean that lifecycle policies should be used as a replacement for expiration. However, in some cases there may be policies in place that are out of admin control. If the lifecycle expiration is less than pgbackrest expiration then corruption of the earliest backup will occur at the very least and there might be other corruption which would make the repo unrecoverable.

M doc/xml/release.xml
M src/command/backup/backup.c
M test/src/module/command/backupTest.c

Skip mem context cleanup in CATCH_FATAL() block.

commit   : 0f7b6a3344b676d79afa7cd16ab54f67be870fdf    
  
author   : David Steele <[email protected]>    
date     : Wed, 31 Aug 2022 12:44:55 -0400    
  
committer: GitHub <[email protected]>    
date     : Wed, 31 Aug 2022 12:44:55 -0400    

Click here for diff

An error that gets raised all the way to the top TRY block might need to free a lot of resources and any of these callbacks could throw an error and mask the original error. In fact this is pretty likely since we are already in an error state. For example, the Db object will try to close the remote db connection, but if the protocol is in a bad state it will not be able to do so.
  

  
Solve this, for now, by not freeing memory or calling callbacks in the CATCH_FATAL() block. This gives us a better chance if being able to report the error without encountering another error first.
  

  
For the most part, we don't need to worry about freeing resources (file handles, TLS contexts, etc.) if the program is going to exit immediately. However, it is important to attempt to terminate all active protocol connections, which is done by protocolFree() in main() since the protocol objects live in the top context.
  

  
Another way to handle this would be to implement an error stack and that is probably something we will do in the future. But, in the case of a segfault the original error would still be lost. Yet another option would be to still do cleanup but defer it until after the CATCH_FATAL() block.

M doc/xml/release.xml
M src/common/error.c
M src/common/error.h
M src/common/memContext.c
M src/common/memContext.h
M src/common/stackTrace.c
M src/common/stackTrace.h
M test/src/common/harnessTest.h
M test/src/module/common/errorTest.c
M test/src/test.c

Fix incorrect time expiration being used for non-default repositories.

commit   : eda7f81ee4fd6818ce458768144fc3fc1e1f0f21    
  
author   : David Steele <[email protected]>    
date     : Wed, 31 Aug 2022 10:01:12 -0400    
  
committer: GitHub <[email protected]>    
date     : Wed, 31 Aug 2022 10:01:12 -0400    

Click here for diff

If a repo is not specified for the expire command then the lowest repo becomes the default. The repo-retention-full value for time was being retrieved from the default rather than a specific repo which led to an incorrect expiration being applied.
  

  
Get the value from the specific repo and add a test.
  

  
It would be better if the default repo could not be queried in this case but it is not clear how to do that since the repo option is valid for expire (unlike, e.g., archive-push).

M doc/xml/release.xml
M src/command/expire/expire.c
M test/src/module/command/expireTest.c

Fix comment typos in command/expire unit test.

commit   : f1cb8485917bc07e00e77efe4593fb737f72136a    
  
author   : David Steele <[email protected]>    
date     : Tue, 30 Aug 2022 18:04:32 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 30 Aug 2022 18:04:32 -0400    

Click here for diff

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

Support --set in JSON output for info command.

commit   : db75ffd27037d690a11eb02902f929250fe2bf5b    
  
author   : Stefan Fercot <[email protected]>    
date     : Thu, 25 Aug 2022 16:12:22 +0200    
  
committer: GitHub <[email protected]>    
date     : Thu, 25 Aug 2022 16:12:22 +0200    

Click here for diff

Allow detailed information (e.g. error list, tablespace list) in JSON output that is already available in text output with the --set option.

M doc/xml/release.xml
M src/command/info/info.c
M test/src/module/command/infoTest.c

Backup key/value annotations.

commit   : 381fd0a5a4de61624615b150ba98beeafac31f7e    
  
author   : Stefan Fercot <[email protected]>    
date     : Wed, 24 Aug 2022 16:52:33 +0200    
  
committer: GitHub <[email protected]>    
date     : Wed, 24 Aug 2022 16:52:33 +0200    

Click here for diff

Allow key/value annotations to be added with the backup command and added/modified/removed with the new annotate command.
  

  
Annotations can be viewed with the info command in text mode when --set is specified and are always included in JSON output.

M doc/xml/release.xml
M doc/xml/user-guide.xml
M src/Makefile.in
M src/build/config/config.yaml
M src/build/help/help.xml
A src/command/annotate/annotate.c
A src/command/annotate/annotate.h
M src/command/backup/backup.c
M src/command/info/info.c
M src/common/type/keyValue.c
M src/common/type/keyValue.h
M src/config/config.auto.h
M src/config/parse.auto.c.inc
M src/info/infoBackup.c
M src/info/infoBackup.h
M src/info/manifest.c
M src/info/manifest.h
M src/main.c
M src/meson.build
M test/define.yaml
A test/src/module/command/annotateTest.c
M test/src/module/command/backupTest.c
M test/src/module/command/helpTest.c
M test/src/module/command/infoTest.c
M test/src/module/common/typeKeyValueTest.c
M test/src/module/info/infoBackupTest.c
M test/src/module/info/manifestTest.c

Allow upload chunk size to be configured for object stores.

commit   : b05d31f531b55b747175cf94c963f95574c54d2b    
  
author   : David Steele <[email protected]>    
date     : Wed, 24 Aug 2022 09:33:26 -0400    
  
committer: GitHub <[email protected]>    
date     : Wed, 24 Aug 2022 09:33:26 -0400    

Click here for diff

There are performance benefits to increasing the upload chunk size as long as the tradeoff with additional memory consumption is acceptable.
  

  
Make the chunk size configurable for S3, GCS, and Azure, but don't attempt to do any validation of the chunk size beyond some sane limits. The defaults remain as is for each storage type to avoid any unintentional regressions.

M src/build/config/config.yaml
M src/build/help/help.xml
M src/config/config.auto.h
M src/config/load.c
M src/config/parse.auto.c.inc
M src/storage/azure/helper.c
M src/storage/azure/storage.h
M src/storage/gcs/helper.c
M src/storage/gcs/storage.h
M src/storage/s3/helper.c
M src/storage/s3/storage.h
M test/src/module/command/helpTest.c
M test/src/module/config/loadTest.c
M test/src/module/storage/azureTest.c
M test/src/module/storage/gcsTest.c
M test/src/module/storage/s3Test.c

Allow host memory limits in the user guide to be disabled.

commit   : 37b4592e522289a0523f03f8e9b144ff28fa21d3    
  
author   : David Steele <[email protected]>    
date     : Wed, 24 Aug 2022 08:45:44 -0400    
  
committer: David Steele <[email protected]>    
date     : Wed, 24 Aug 2022 08:45:44 -0400    

Click here for diff

These limits can cause errors in some environments, e.g. Docker in Docker on Mac M1.  
  
Entirely remove limits from the build, s3, and azure hosts since memory usage on these hosts is out of our control and not useful for testing.  
  
Also allow empty variables to be rendered as blank.  

M doc/lib/pgBackRestDoc/Common/DocManifest.pm
M doc/xml/user-guide.xml

Allow quote tag in command-line help.

commit   : ff1188f92dfc9e8f6d4aeca8b71a9886f24f58b4    
  
author   : David Steele <[email protected]>    
date     : Mon, 22 Aug 2022 13:51:05 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 22 Aug 2022 13:51:05 -0400    

Click here for diff

The quote tag will be used in an upcoming commit.  

M src/build/help/render.c
M test/src/module/build/helpTest.c

Clear ProtocolClient callback after connection error.

commit   : 2a99ac4324b52b8b42db639e645378840159af00    
  
author   : David Steele <[email protected]>    
date     : Wed, 17 Aug 2022 11:24:20 -0400    
  
committer: David Steele <[email protected]>    
date     : Wed, 17 Aug 2022 11:24:20 -0400    

Click here for diff

Attempting to shut down the connection will fail since the server has already disconnected and a new error will be thrown, masking the original error.  

M src/protocol/helper.c

Do not allow CATCH() to catch a fatal error.

commit   : 82786da1545c0bfe8185837a35d13a50b5e11ade    
  
author   : David Steele <[email protected]>    
date     : Tue, 16 Aug 2022 16:15:48 -0400    
  
committer: GitHub <[email protected]>    
date     : Tue, 16 Aug 2022 16:15:48 -0400    

Click here for diff

Catching individual fatal errors was only used in testing so the tests have been updated to use other errors instead. CATCH_FATAL() is now the only way to catch fatal errors.
  

  
This simplifies the logic a bit for upcoming changes to error handling and cleanup.
  

  
Also fix an issue where passing errorMessage() directly to THROW*() would attempt to copy the message buffer instead of preserving it, which is undefined behavior. Since there were no instances of this behavior before this commit, this was not a live bug.

M doc/xml/release.xml
M src/common/error.c
M src/common/error.h
M test/src/module/common/errorTest.c
M test/src/module/common/memContextTest.c

Update Minio test/documentation container version.

commit   : 02665a5894dc4b025172b32c7a1ce42c81d6c582    
  
author   : David Steele <[email protected]>    
date     : Tue, 2 Aug 2022 11:05:31 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 2 Aug 2022 11:05:31 -0400    

Click here for diff

M doc/xml/user-guide.xml
M test/lib/pgBackRestTest/Env/Host/HostS3Test.pm

Add profiling, performance, and optimization to C test harness.

commit   : eb287b18c882a16eecfb1445a513c4da4ccab1b7    
  
author   : David Steele <[email protected]>    
date     : Fri, 29 Jul 2022 10:31:36 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 29 Jul 2022 10:31:36 -0400    

Click here for diff

All unit and performance tests are now built by the C harness.  
  
Remove all unit/performance test build code from Perl.  
  
Remove code from C harness that is no longer used. This code was included so the C harness could be run separately, but that is no longer needed with this full integration.  

M .github/workflows/test.yml
M test/lib/pgBackRestTest/Common/DefineTest.pm
M test/lib/pgBackRestTest/Common/JobTest.pm
M test/lib/pgBackRestTest/Common/ListTest.pm
M test/src/build/config/config.yaml
M test/src/build/help/help.xml
M test/src/command/test/build.c
M test/src/command/test/build.h
M test/src/command/test/define.c
M test/src/command/test/define.h
M test/src/command/test/test.c
M test/src/command/test/test.h
M test/src/main.c
M test/src/test.c

Add coverage to C test harness.

commit   : 1e83f2a022b36191c2d12185ed57cf4d96462862    
  
author   : David Steele <[email protected]>    
date     : Thu, 28 Jul 2022 14:53:48 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 28 Jul 2022 14:53:48 -0400    

Click here for diff

Coverage reports are still generated in Perl, but all the settings have been added to the C harness to generate raw coverage data.  

M test/lib/pgBackRestTest/Common/JobTest.pm
M test/src/build/config/config.yaml
M test/src/build/help/help.xml
M test/src/command/test/build.c
M test/src/command/test/build.h
M test/src/command/test/test.c
M test/src/command/test/test.h
M test/src/main.c

Integrate C test harness with Perl test harness.

commit   : c99ea54f17c1f26a5e996bb8cfd3df81684f813b    
  
author   : David Steele <[email protected]>    
date     : Wed, 27 Jul 2022 10:32:32 -0400    
  
committer: David Steele <[email protected]>    
date     : Wed, 27 Jul 2022 10:32:32 -0400    

Click here for diff

The C test harness is used for unit tests from the Perl harness where possible. Currently, unit tests can be run in the C harness when --no-coverage is specified and --profile is not specified.  
  
C harness tests work on meson 0.45.  
  
The C harness runs with valgrind by default. Valgrind can be disabled with --no-valgrind.  
  
Also rebuild containers to add meson and update the documentation so that meson builds will work (even though we don't do them yet).  

M .github/workflows/test.yml
M doc/xml/user-guide.xml
M test/container.yaml
M test/lib/pgBackRestTest/Common/ContainerTest.pm
M test/lib/pgBackRestTest/Common/JobTest.pm
M test/src/build/config/config.yaml
M test/src/build/help/help.xml
M test/src/command/test/build.c
M test/src/command/test/test.c
M test/src/command/test/test.h
M test/src/main.c
M test/test.pl

Add reviewer for c267ba51.

commit   : 2caef37fd55ea12959015f02a106774f6ad711b7    
  
author   : David Steele <[email protected]>    
date     : Tue, 26 Jul 2022 18:25:24 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 26 Jul 2022 18:25:24 -0400    

Click here for diff

M doc/xml/release.xml

Add absolute path for kill in pgbackrest.service.

commit   : e9ff5248039eedb25da2fee550ec64fcebbc51c7    
  
author   : David Steele <[email protected]>    
date     : Tue, 26 Jul 2022 15:15:12 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 26 Jul 2022 15:15:12 -0400    

Click here for diff

M doc/xml/release.xml
M doc/xml/user-guide.xml

Move release build check to src/meson.build.

commit   : 79d9884141f90a9e93fb2ec8faef15e460dd3442    
  
author   : David Steele <[email protected]>    
date     : Mon, 25 Jul 2022 09:39:54 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 25 Jul 2022 09:39:54 -0400    

Click here for diff

This allows the C harness to perform release builds which are required for some tests.  

M meson.build
M test/src/meson.build

Move standby timeline check after checkpoint.

commit   : c267ba51b1778b5872f4ee928a9614545d743f3f    
  
author   : David Steele <[email protected]>    
date     : Fri, 22 Jul 2022 16:24:55 -0400    
  
committer: GitHub <[email protected]>    
date     : Fri, 22 Jul 2022 16:24:55 -0400    

Click here for diff

The standby timeline check was being performed using pg_control data loaded before the backup started. If the backup was started immediately after a promotion the standby might not have executed a checkpoint and written the new timeline to pg_control.
  

  
Instead perform the timeline check after the checkpoint is executed. This should ensure that the new timeline is in pg_control.

M doc/xml/release.xml
M src/db/db.c
M test/src/module/db/dbTest.c

Improve warning message on backup resume.

commit   : cbbe93f592d8097393c5ffe214f0a8c5fb0549c1    
  
author   : David Steele <[email protected]>    
date     : Fri, 22 Jul 2022 14:45:38 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 22 Jul 2022 14:45:38 -0400    

Click here for diff

The prior warning made it sound as if some action was required on the part of the user.  
  
The new message should make it clearer that this action will be performed by pgBackRest.  

M doc/xml/release.xml
M src/command/backup/backup.c
M test/src/module/command/backupTest.c

Remove Debian package patch now that it has been merged upstream.

commit   : 4c47cc5d4786b88a06c38aefe628356342433f64    
  
author   : David Steele <[email protected]>    
date     : Fri, 22 Jul 2022 09:24:29 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 22 Jul 2022 09:24:29 -0400    

Click here for diff

D test/patch/debian-package.patch

More C test harness improvements and CI.

commit   : 19d9941367f68d6effb516fbb1444877fea9a9ce    
  
author   : David Steele <[email protected]>    
date     : Thu, 21 Jul 2022 20:10:51 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 21 Jul 2022 20:10:51 -0400    

Click here for diff

Build pgbackrest binary and auto-generated code automatically.  
  
Remove --module option and allow modules to run by parameter. This is less verbose and multiple modules can be run at a time.  
  
Allow filtering of modules. Multiple tests can be passed as parameters and if the module ends in / it will be used as a prefix filter. For example, common/ will run all the common modules.  
  
If a test errors the remaining tests will still run but the test process will eventually exit with an error.  
  
CI tests are included but unit tests remain on the development branch.  
  
With these changes all unit tests run except those that specify the define (e.g. common/assert-off) or containerReq (e.g. protocol/protocol) keywords.  
  
Building the C test harness has been simplified:  
  
meson -Dwerror=true -Dfatal-errors=true -Dbuildtype=debug test/build/none pgbackrest  
ninja -C test/build/none test/src/test-pgbackrest  
  
To run all modules:  
  
test/build/none/test/src/test-pgbackrest test  
  
Just the common/error module:  
  
test/build/none/test/src/test-pgbackrest test common/error  
  
All info modules:  
  
test/build/none/test/src/test-pgbackrest test info/  

M .github/workflows/test.yml
M test/src/build/config/config.yaml
M test/src/build/help/help.xml
M test/src/command/help/meson.build
M test/src/command/test/build.c
M test/src/command/test/build.h
M test/src/command/test/test.c
M test/src/command/test/test.h
M test/src/main.c

Test Dockerfile improvements.

commit   : edfcf1652c6ab07fe5a147b97df0c563e09d3445    
  
author   : David Steele <[email protected]>    
date     : Thu, 21 Jul 2022 19:27:58 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 21 Jul 2022 19:27:58 -0400    

Click here for diff

Add tzdata package so timezone tests in command/restore work correctly.  
  
Mark default git path as safe. This is a security fix that is not applicable in this environment, but must be set.  
  
Also remove package cleanup, which is inconvenient when new packages need to be installed. It makes sense for containers that will be downloaded from Dockerhub but not so much for a locally-maintained container.  

M test/Dockerfile

Fix common/lock test creating "750" path.

commit   : 5e5b04be3741b4e903c9a7764dadfbe5bda121ae    
  
author   : David Steele <[email protected]>    
date     : Thu, 21 Jul 2022 18:19:47 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 21 Jul 2022 18:19:47 -0400    

Click here for diff

This was clearly an attempt to set the mode when creating a directory, but it never worked and instead created a "750" directory in the current working directory.  
  
Detected when running in an environment where the current working directory was read-only.  

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

C test harness improvements.

commit   : f9bbafbf3fbd67fc289cf849900799b4718dace1    
  
author   : David Steele <[email protected]>    
date     : Wed, 20 Jul 2022 19:02:14 -0400    
  
committer: David Steele <[email protected]>    
date     : Wed, 20 Jul 2022 19:02:14 -0400    

Click here for diff

Add harness depends when present.  
  
Include libyaml in all test builds.  
  
Fix mode on paths before trying to remove and set test path with mode 770 to match the Perl test harness.  
  
With these changes all unit tests run except those that specify the define (e.g. common/assert-off), binReq (e.g. command/archive-get), or containerReq (e.g. protocol/protocol) keywords.  
  
Builds and code generation need to be done in advance. The following commands are required for setup:  
  
meson setup -Dwerror=true -Dfatal-errors=true -Dbuildtype=debug build pgbackrest  
ninja -C build test/src/test-pgbackrest  
build/src/build-code help pgbackrest  
build/src/build-code postgres pgbackrest  
  
Now tests can be run, e.g.:  
  
build/test/src/test-pgbackrest --module=postgres/interface  

M test/src/command/test/build.c
M test/src/command/test/test.c

Unify code builder binaries into a single binary.

commit   : c625f05a13e0238bf06feb26d0d8757dd2bedffd    
  
author   : David Steele <[email protected]>    
date     : Wed, 20 Jul 2022 17:45:39 -0400    
  
committer: David Steele <[email protected]>    
date     : Wed, 20 Jul 2022 17:45:39 -0400    

Click here for diff

Creating new binaries was convenient at first but has now become a maintenance issue.  
  
Solve this by combining that into a single binary that takes an additional parameter to indicate which code should be built.  
  
Also clean up path handling to make it easier to build code from the command line.  

M src/.gitignore
M src/Makefile.in
M src/build/common/render.h
D src/build/config/main.c
D src/build/error/main.c
M src/build/help/render.c
R056 src/build/help/main.c src/build/main.c
D src/build/postgres/main.c
M src/build/postgres/render.c
M src/command/help/meson.build
M src/common/error.auto.c.inc
M src/common/error.auto.h
M src/config/config.auto.h
M src/config/parse.auto.c.inc
M src/meson.build
M src/postgres/meson.build
M test/src/command/help/meson.build
M test/src/config/meson.build
M test/src/module/build/configTest.c
M test/src/module/build/errorTest.c
M test/src/module/build/helpTest.c
M test/src/module/build/postgresTest.c
M test/test.pl

Add module harness and shim support to the C test harness.

commit   : 7eb5d679857999faebe78730c5a30e450ef80d5c    
  
author   : David Steele <[email protected]>    
date     : Tue, 19 Jul 2022 18:03:39 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 19 Jul 2022 18:03:39 -0400    

Click here for diff

This allows running unit tests up to common/ini, excluding common/debug-off and common/assert-off.  

M test/src/command/test/build.c
M test/src/command/test/define.c
M test/src/command/test/define.h

commit   : 8fdeed780787a2c6df6672f5d9c75fb7b5b613bc    
  
author   : David Steele <[email protected]>    
date     : Tue, 19 Jul 2022 17:57:13 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 19 Jul 2022 17:57:13 -0400    

Click here for diff

This makes the test code a bit simpler where we are listing a path but not following links.  
  
Links in the repository can be used for testing but should never be committed to the main branch.  

M test/test.pl

Fix comment typo.

commit   : eb775790087cd8594f6649893895c42a407302cd    
  
author   : David Steele <[email protected]>    
date     : Tue, 19 Jul 2022 17:25:07 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 19 Jul 2022 17:25:07 -0400    

Click here for diff

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

Update config.guess to latest version.

commit   : f3a10b921bf3d87152d27347df23b487877abe94    
  
author   : David Steele <[email protected]>    
date     : Mon, 18 Jul 2022 10:52:57 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 18 Jul 2022 10:52:57 -0400    

Click here for diff

M src/build/config.guess

Begin v2.41 development.

commit   : 20f9f726478a4d1c8897cc31a5bf7df52275b84f    
  
author   : David Steele <[email protected]>    
date     : Mon, 18 Jul 2022 10:49:58 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 18 Jul 2022 10:49:58 -0400    

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