pgBackRest 2.19 commit log

v2.18: PostgreSQL 12 Support

commit   : 4629237d6a308a250cd52fff49693cd0a1069253    
  
author   : David Steele <[email protected]>    
date     : Tue, 1 Oct 2019 16:02:07 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 1 Oct 2019 16:02:07 -0400    

Click here for diff

Features:  
  
* PostgreSQL 12 support.  
* Add info command set option for detailed text output. The additional details include databases that can be used for selective restore and a list of tablespaces and symlinks with their default destinations. (Contributed by Cynthia Shang. Suggested by Stephen Frost, ejberdecia.)  
* Add standby restore type. This restore type automatically adds standby_mode=on to recovery.conf for PostgreSQL < 12 and creates standby.signal for PostgreSQL ≥ 12, creating a common interface between PostgreSQL versions. (Reviewed by Cynthia Shang.)  
  
Improvements:  
  
* The restore command is implemented entirely in C. (Reviewed by Cynthia Shang.)  
  
Documentation Improvements:  
  
* Document the relationship between db-timeout and protocol-timeout. (Contributed by Cynthia Shang. Suggested by James Chanco Jr.)  
* Add documentation clarifications regarding standby repositories. (Contributed by Cynthia Shang.)  
* Add FAQ for time-based Point-in-Time Recovery. (Contributed by Cynthia Shang.)  

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 lib/pgBackRest/Version.pm
M src/configure
M src/configure.ac
M src/perl/embed.auto.c
M src/version.h

PostgreSQL 12 support.

commit   : 29e132f5e928298e9be135d76674f2016b122029    
  
author   : David Steele <[email protected]>    
date     : Tue, 1 Oct 2019 13:20:43 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 1 Oct 2019 13:20:43 -0400    

Click here for diff

Recovery settings are now written into postgresql.auto.conf instead of recovery.conf.  Existing recovery_target* settings will be commented out to help avoid conflicts.  
  
A comment is added before recovery settings to identify them as written by pgBackRest since it is unclear how, in general, old settings will be removed.  
  
recovery.signal and standby.signal are automatically created based on the recovery settings.  

M doc/xml/release.xml
M doc/xml/user-guide.xml
M lib/pgBackRest/Db.pm
M lib/pgBackRest/DbVersion.pm
M lib/pgBackRest/Manifest.pm
M src/Makefile.in
M src/command/restore/restore.c
M src/perl/embed.auto.c
M src/postgres/interface.c
M src/postgres/interface.h
A src/postgres/interface/v120.c
M src/postgres/interface/version.auto.h
M src/postgres/interface/version.h
M src/postgres/version.h
M test/define.yaml
M test/expect/mock-all-001.log
M test/expect/mock-all-002.log
M test/expect/real-all-001.log
M test/expect/real-all-002.log
M test/expect/real-all-003.log
M test/expect/real-all-004.log
M test/expect/real-all-005.log
M test/expect/real-all-006.log
M test/lib/pgBackRestTest/Common/LogTest.pm
M test/lib/pgBackRestTest/Common/VmTest.pm
M test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm
M test/lib/pgBackRestTest/Env/HostEnvTest.pm
M test/lib/pgBackRestTest/Module/Real/RealAllTest.pm
M test/src/module/command/restoreTest.c

Fix misplaced String declarations.

commit   : 6be7e6fde54f2dc3edbed802efc3f5cb1e050fd2    
  
author   : Cynthia Shang <[email protected]>    
date     : Tue, 1 Oct 2019 09:47:46 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 1 Oct 2019 09:47:46 -0400    

Click here for diff

M src/info/info.h

Remove unneeded static declarations and use sizeof() where appropriate.

commit   : 309ae66e2fbd128b54f0859b231c14f6ab1518c4    
  
author   : David Steele <[email protected]>    
date     : Tue, 1 Oct 2019 08:47:56 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 1 Oct 2019 08:47:56 -0400    

Click here for diff

M src/command/info/info.c

Add info command set option for detailed text output.

commit   : f96c54c4ba0e526cda4cf9bed5cc1231b1d819b5    
  
author   : Cynthia Shang <[email protected]>    
date     : Mon, 30 Sep 2019 12:39:38 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 30 Sep 2019 12:39:38 -0400    

Click here for diff

The additional details include databases that can be used for selective restore and a list of tablespaces and symlinks with their default destinations.  
  
This information is not included in the JSON output because it requires reading the manifest which is too IO intensive to do for all manifests.  We plan to include this information for JSON in a future release.  

M build/lib/pgBackRestBuild/Config/Data.pm
M doc/xml/reference.xml
M doc/xml/release.xml
M doc/xml/user-guide.xml
M src/Makefile.in
M src/command/info/info.c
M src/config/define.auto.c
M test/src/module/command/infoTest.c

Sort lists where it might help performance.

commit   : 33ec5a3aacdfe0dd258463c0cbcd43f0d155152e    
  
author   : David Steele <[email protected]>    
date     : Sun, 29 Sep 2019 09:05:55 -0400    
  
committer: David Steele <[email protected]>    
date     : Sun, 29 Sep 2019 09:05:55 -0400    

Click here for diff

Most of these lists should be quite small with the exception of the list in get.c, but it doesn't cost much to sort them and may help in corner cases we have not thought of.  

M src/command/archive/get/get.c
M src/command/restore/restore.c

Move C performance tests out of unit tests.

commit   : a58635ac0285fbb3178329bdc222221fe7160380    
  
author   : David Steele <[email protected]>    
date     : Sat, 28 Sep 2019 14:24:27 -0400    
  
committer: David Steele <[email protected]>    
date     : Sat, 28 Sep 2019 14:24:27 -0400    

Click here for diff

Performance tests were being done in unit tests until there was a better place to put them.  
  
Now there is, so move them there.  

M test/define.yaml
M test/src/module/common/iniTest.c
M test/src/module/common/typeListTest.c
M test/src/module/info/manifestTest.c
A test/src/module/performance/typeTest.c

Add performance test capability in C with scaling.

commit   : f1ba428fb037eac7b6c6ea5b9f617d1ad4579026    
  
author   : David Steele <[email protected]>    
date     : Sat, 28 Sep 2019 14:02:12 -0400    
  
committer: David Steele <[email protected]>    
date     : Sat, 28 Sep 2019 14:02:12 -0400    

Click here for diff

Scaling allows the starting values to be increased from the command-line without code changes.  
  
Also suppress valgrind and assertions when running performance testing.  Optimization is left at -O0 because we should not be depending on compiler optimizations to make our code performant, and it makes profiling more informative.  

M test/lib/pgBackRestTest/Common/DefineTest.pm
M test/lib/pgBackRestTest/Common/JobTest.pm
M test/lib/pgBackRestTest/Common/ListTest.pm
M test/src/common/harnessTest.c
M test/src/common/harnessTest.h
M test/src/test.c
M test/test.pl

Identify Perl performance test by appending -perl.

commit   : 004ff99a2d918fa3a5079ce9d7ff2f5b120176e3    
  
author   : David Steele <[email protected]>    
date     : Sat, 28 Sep 2019 13:17:21 -0400    
  
committer: David Steele <[email protected]>    
date     : Sat, 28 Sep 2019 13:17:21 -0400    

Click here for diff

This is intended to differentiate the upcoming C performance tests from the Perl performance tests that will eventually be migrated.  

M test/define.yaml
M test/lib/pgBackRestTest/Common/DefineTest.pm
R097 test/lib/pgBackRestTest/Module/Performance/PerformanceArchiveTest.pm test/lib/pgBackRestTest/Module/Performance/PerformanceArchivePerlTest.pm

Use bsearch() on sorted lists rather than an iterative method.

commit   : cb62bebadf62613b770f79cd4fd43e20ec7db10c    
  
author   : David Steele <[email protected]>    
date     : Sat, 28 Sep 2019 10:08:20 -0400    
  
committer: David Steele <[email protected]>    
date     : Sat, 28 Sep 2019 10:08:20 -0400    

Click here for diff

bsearch() is far more efficient than an iterative approach except in the most trivial cases.  
  
For now insert will reset the sort order to none and the list will need to be resorted before bsearch() can be used.  This is necessary because item pointers are not stable after a sort, i.e. they can move around.  Until lists are stable it's not a good idea to surprise the caller by mixing up their pointers on insert.  

M src/common/type/list.c
M src/common/type/list.h
M src/common/type/stringList.c
M test/define.yaml
M test/src/module/common/typeListTest.c
M test/src/module/common/typeStringTest.c

Add line number and fix spacing in TEST_LOG*() macros.

commit   : d3d2a7cd8606be9696957eb052ca6569db1a8167    
  
author   : David Steele <[email protected]>    
date     : Sat, 28 Sep 2019 09:57:06 -0400    
  
committer: David Steele <[email protected]>    
date     : Sat, 28 Sep 2019 09:57:06 -0400    

Click here for diff

M test/src/common/harnessTest.h

Clarify which timeline should be used for timeline integration test.

commit   : afc483ef86aefe2cf8f057b6159af2c54f77c28b    
  
author   : David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 13:37:59 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 13:37:59 -0400    

Click here for diff

M test/lib/pgBackRestTest/Module/Real/RealAllTest.pm

Add reviewer.

commit   : 0a4122c77dc2e3fb866b95be73c2831530b2def1    
  
author   : David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 13:34:59 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 13:34:59 -0400    

Click here for diff

M doc/xml/release.xml

Fix old option name in documentation.

commit   : 6355451870c90be346a378ef8b301f182c635edb    
  
author   : Cynthia Shang <[email protected]>    
date     : Fri, 27 Sep 2019 13:33:14 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 13:33:14 -0400    

Click here for diff

M doc/xml/user-guide.xml

Add explicit promotes to recovery integration tests.

commit   : d82102d6ef5445e5c96e47a095210f36a618b800    
  
author   : David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 13:04:36 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 13:04:36 -0400    

Click here for diff

PostgreSQL 12 will shutdown in these cases which seems to be the correct action (according to the documentation) when hot_standby = off, but older versions are promoting instead.  Set target_action explicitly so all versions will behave the same way.  
  
This does beg the question of whether the PostgreSQL 12 behavior is wrong (though it matches the docs) or the previous versions are.  

M test/expect/real-all-001.log
M test/expect/real-all-002.log
M test/expect/real-all-003.log
M test/expect/real-all-004.log
M test/expect/real-all-005.log
M test/expect/real-all-006.log
M test/lib/pgBackRestTest/Module/Real/RealAllTest.pm

Store recovery file name in integration when testing preserve recovery.

commit   : 833d0da0d96036ada9e2397e2b1484d2032c25fa    
  
author   : David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 10:27:07 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 10:27:07 -0400    

Click here for diff

This makes the test a little more maintainable and is friendly with the changes needed for PostgreSQL 12.  

M test/lib/pgBackRestTest/Module/Real/RealAllTest.pm

Add missing PostgreSQL 11 control/WAL versions in Perl tests.

commit   : 80eb561cafc1af645e689cca865158e4336c143d    
  
author   : David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 09:45:11 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 09:45:11 -0400    

Click here for diff

These values don't seem to be used for testing but better to be tidy.  

M test/lib/pgBackRestTest/Env/HostEnvTest.pm

Add PostgreSQL 12 to u18 container.

commit   : d6a6d93a041af1b8e333d8e9b68b151ae43e564d    
  
author   : David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 09:35:59 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 09:35:59 -0400    

Click here for diff

This does not add PostgresQL 12 support; it simply adds PostgreSQL 12 to the u18 container for development and testing.  

M lib/pgBackRest/DbVersion.pm
M src/perl/embed.auto.c
M test/container.yaml
M test/lib/pgBackRestTest/Common/ContainerTest.pm
M test/lib/pgBackRestTest/Common/VmTest.pm

Refactor recovery file generation.

commit   : 03a7bda511b293cf40fd8324951ace1252d40ac2    
  
author   : David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 09:19:12 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 09:19:12 -0400    

Click here for diff

Separate the generation of recovery values and formatting them into recovery.conf format.  This is generally a good idea, but also makes the code ready to deal with a different recovery file in PostgreSQL 12.  
  
Also move the recovery file logic out of cmdRestore() into restoreRecoveryWrite().  

M src/command/restore/restore.c
M test/src/module/command/restoreTest.c

Refactor handling of ignored files in restore delta cleanup.

commit   : cf1e96e827d154a62c0b52ff5531dd687695bf73    
  
author   : David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 08:50:33 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 27 Sep 2019 08:50:33 -0400    

Click here for diff

Replace the boolean logic with a simple list that will be checked to see if the file should be ignored.  

M src/command/restore/restore.c

Add standby restore type.

commit   : c41fb575fbef7b4ce9714986b08f48d32b719862    
  
author   : David Steele <[email protected]>    
date     : Thu, 26 Sep 2019 17:39:45 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 26 Sep 2019 17:39:45 -0400    

Click here for diff

This restore type automatically adds standby_mode=on to recovery.conf.  
  
This could be accomplished previously by setting --recovery-option=standby_mode=on but PostgreSQL 12 requires standby mode to be enabled by a special file named standby.signal.  
  
The new restore type allows us to maintain a common interface between PostgreSQL versions.  

M build/lib/pgBackRestBuild/Config/Data.pm
M doc/xml/reference.xml
M doc/xml/release.xml
M doc/xml/user-guide.xml
M lib/pgBackRest/LibCAuto.pm
M src/command/restore/restore.c
M src/config/define.auto.c
M src/perl/embed.auto.c
M test/expect/real-all-001.log
M test/expect/real-all-002.log
M test/expect/real-all-003.log
M test/expect/real-all-005.log
M test/lib/pgBackRestTest/Module/Real/RealAllTest.pm
M test/src/module/command/restoreTest.c

Comment out unprivileged user documentation.

commit   : 89793368196e4073ca7137f2bf21edb385fb9ef6    
  
author   : David Steele <[email protected]>    
date     : Thu, 26 Sep 2019 16:02:39 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 26 Sep 2019 16:02:39 -0400    

Click here for diff

We haven't had the time to complete this documentation and it has suffered bit rot.  
  
This prevents us from building the docs on PostgreSQL >= 11 so just comment it all out until it can be updated.  

M doc/xml/user-guide.xml

The restore command is implemented entirely in C.

commit   : 451ae397bec3f3bc070c4db674cc5df61bd63498    
  
author   : David Steele <[email protected]>    
date     : Thu, 26 Sep 2019 07:52:02 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 26 Sep 2019 07:52:02 -0400    

Click here for diff

For the most part this is a direct migration of the Perl code into C.  
  
There is one important behavioral change with regard to how file permissions are handled.  The Perl code tried to set ownership as it was in the manifest even when running as an unprivileged user.  This usually just led to errors and frustration.  
  
The C code works like this:  
  
If a restore is run as a non-root user (the typical scenario) then all files restored will belong to the user/group executing pgBackRest. If existing files are not owned by the executing user/group then an error will result if the ownership cannot be updated to the executing user/group. In that case the file ownership will need to be updated by a privileged user before the restore can be retried.  
  
If a restore is run as the root user then pgBackRest will attempt to recreate the ownership recorded in the manifest when the backup was made. Only user/group names are stored in the manifest so the same names must exist on the restore host for this to work. If the user/group name cannot be found locally then the user/group of the PostgreSQL data directory will be used and finally root if the data directory user/group cannot be mapped to a name.  
  
Reviewed by Cynthia Shang.  

M doc/xml/release.xml
M doc/xml/user-guide.xml
M lib/pgBackRest/Main.pm
D lib/pgBackRest/Restore.pm
D lib/pgBackRest/RestoreFile.pm
M src/Makefile.in
M src/command/restore/protocol.c
A src/command/restore/restore.c
A src/command/restore/restore.h
M src/main.c
M src/perl/embed.auto.c
M src/postgres/interface.c
M src/postgres/interface.h
M src/postgres/version.h
M test/define.yaml
M test/expect/mock-all-001.log
M test/expect/mock-all-002.log
M test/lib/pgBackRestTest/Common/LogTest.pm
M test/lib/pgBackRestTest/Module/Mock/MockAllTest.pm
M test/src/module/command/restoreTest.c

Add missing asserts.

commit   : 92e48c856ac87838c479c2a454fe007cf026d4bd    
  
author   : Cynthia Shang <[email protected]>    
date     : Thu, 26 Sep 2019 07:27:07 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 26 Sep 2019 07:27:07 -0400    

Click here for diff

M src/info/manifest.c

Allow documentation to be built without encryption.

commit   : f2781bdad4bbe2afba4a0eda7df90753c63ccf03    
  
author   : David Steele <[email protected]>    
date     : Wed, 25 Sep 2019 16:38:13 -0400    
  
committer: David Steele <[email protected]>    
date     : Wed, 25 Sep 2019 16:38:13 -0400    

Click here for diff

This is mainly useful for testing, where an encrypted repo is a real nuisance.  

M doc/xml/user-guide.xml

Fix outdated comment.

commit   : e968acbdd74db8f78f718cbe5bd6358107bcf822    
  
author   : David Steele <[email protected]>    
date     : Tue, 24 Sep 2019 16:55:11 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 24 Sep 2019 16:55:11 -0400    

Click here for diff

This was probably missed when a new test was added and the timeline was updated.  

M test/lib/pgBackRestTest/Module/Real/RealAllTest.pm

Thoughts on repository version 6.

commit   : 6af64df9b6519897a55a733583ee40a571a51ee6    
  
author   : David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 19:26:24 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 19:26:24 -0400    

Click here for diff

A doc/FORMAT.md

Add TEST_TITLE() macro.

commit   : 71349c89aecdb3b158d1638d0310cdba6c96362a    
  
author   : David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 17:56:17 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 17:56:17 -0400    

Click here for diff

This macro displays a title for each test.  A test frequently has multiple parts and it was hard to tell which subparts went together.  We used ad hoc indentation to do this.  
  
Anything that is a not a title is automatically indented so manually indenting is not longer needed.  This should make the tests and the test output easier to read.  

M test/src/common/harnessTest.h

Add TEST_RESULT_LOG*() and TEST_SYSTEM*() macros.

commit   : 2fd2fe509f3039ef28766b865f3b66cc524dee04    
  
author   : David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 17:20:47 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 17:20:47 -0400    

Click here for diff

These macros encapsulate the functionality provided by direct calls to harnessLogResult() and system().  They both have _FMT() variants.  
  
The primary advantage is that {[path]}, {[user]}, and {[group]} will be replaced with the test path, user, and group respectively.  This saves a log of strNewFmt() calls and makes the tests less noisy.  

M test/src/common/harnessLog.c
M test/src/common/harnessTest.c
M test/src/common/harnessTest.h

Only enable test.pl --debug-test-trace option when --debug also enabled.

commit   : d3a7055ee5d290da0196ba266051846c107ddede    
  
author   : David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 15:15:04 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 15:15:04 -0400    

Click here for diff

The other way makes no sense and leads to compile errors since --debug-test-trace requires some code that is only enabled by --debug.  

M test/lib/pgBackRestTest/Common/JobTest.pm

Add LFs to storage list tests.

commit   : 072aeb810932605bb5e2b8ef64288f24913ddd04    
  
author   : David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 15:10:31 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 15:10:31 -0400    

Click here for diff

This makes the diffs easier to read when testing.  

M test/src/common/harnessStorage.c
M test/src/module/storage/posixTest.c

Migrate backup manifest load/save to C.

commit   : c969137021da5dc03e5f95d36080f4e4fd08522b    
  
author   : David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 13:50:46 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 23 Sep 2019 13:50:46 -0400    

Click here for diff

The backup manifest stores a complete list of all files, links, and paths in a backup along with metadata such as checksums, sizes,  
timestamps, etc.  A list of databases is also included for selective restore.  
  
The purpose of the manifest is to allow the restore command to confidently reconstruct the PostgreSQL data directory and ensure that  
nothing is missing or corrupt.  It is also useful for reporting, e.g. size of backup, backup time, etc.  
  
For now, migrate enough functionality to implement the restore command.  
  
Reviewed by Cynthia Shang.  

M doc/xml/release.xml
M src/Makefile.in
A src/info/manifest.c
M src/info/manifest.h
M test/define.yaml
A test/src/module/info/manifestTest.c

Add local option for cfgExecParam().

commit   : 5b64c93e8b1de010176b8d3927f80cc8039f4dbc    
  
author   : David Steele <[email protected]>    
date     : Fri, 20 Sep 2019 17:50:49 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 20 Sep 2019 17:50:49 -0400    

Click here for diff

cfgExecParam() was originally written to provide options for remote processes.  Remotes processes do not have access to the local config so it was necessary to pass every non-default option.  
  
Local processes on the other hand, e.g. archive-get, archive-get-async, archive-push-async, and local, do have access to the local config and therefore don't need every parameter to be passed on the command-line.  The previous way was not wrong, but it was overly verbose and did not align with the way Perl had worked.  
  
Update cfgExecParam() to accept a local option which excludes options from the command line which can be read from local configs.  

M src/command/archive/get/get.c
M src/command/archive/push/push.c
M src/config/exec.c
M src/config/exec.h
M src/protocol/helper.c
M test/src/module/config/execTest.c

Rename MANIFEST_FILE to BACKUP_MANIFEST_FILE.

commit   : 3f18040aab5707c9be9b51fe37f3464d222fceb5    
  
author   : David Steele <[email protected]>    
date     : Fri, 20 Sep 2019 08:13:36 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 20 Sep 2019 08:13:36 -0400    

Click here for diff

This is a bit more descriptive and avoids a naming conflict in the new C manifest code.  

M src/command/expire/expire.c
M src/command/stanza/delete.c
M src/info/manifest.h
M test/src/module/command/expireTest.c

Add strPathAbsolute() and strLstRemoveIdx().

commit   : 174cb7b3af6b40d171186060509252c256208cd6    
  
author   : David Steele <[email protected]>    
date     : Thu, 19 Sep 2019 22:42:28 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 19 Sep 2019 22:42:28 -0400    

Click here for diff

strPathAbsolute() generates an absolute path from an absolute base path and an absolute/relative path.  
  
strLstRemoveIdx() is a support function based on lstRemoveIdx().  

M src/Makefile.in
M src/common/type/string.c
M src/common/type/string.h
M src/common/type/stringList.c
M src/common/type/stringList.h
M test/src/module/common/typeStringTest.c

Allow resets when generating local/remote command options.

commit   : 9421493d09033efda2d5e2cc6eb60d13491beca3    
  
author   : David Steele <[email protected]>    
date     : Thu, 19 Sep 2019 22:34:12 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 19 Sep 2019 22:34:12 -0400    

Click here for diff

Somehow this was left out of the original implementation, but it is particularly important for certain types of restores.  

M src/config/exec.c
M test/src/module/config/execTest.c

Only test timestamps for files.

commit   : e24b2e3f4dcb0a288b4e742fd0b198b768d6320a    
  
author   : David Steele <[email protected]>    
date     : Wed, 18 Sep 2019 22:23:04 -0400    
  
committer: David Steele <[email protected]>    
date     : Wed, 18 Sep 2019 22:23:04 -0400    

Click here for diff

In general we don't care about path and link times since they are easily recreated when restoring.  
  
So, outside of storageInfo() we don't need to bother testing them.  

M test/src/common/harnessStorage.c
M test/src/module/storage/posixTest.c

Add strLstRemove().

commit   : 54638e87042b2315f24abef2d7f8c5610c53762e    
  
author   : David Steele <[email protected]>    
date     : Wed, 18 Sep 2019 22:17:22 -0400    
  
committer: David Steele <[email protected]>    
date     : Wed, 18 Sep 2019 22:17:22 -0400    

Click here for diff

Allow a string to be removed from a StringList using the underlying lstRemove().  

M src/common/type/stringList.c
M src/common/type/stringList.h
M test/src/module/common/typeStringTest.c

Use switch instead of if else tree in jsonFromKvInternal().

commit   : a6a42b18a9c28b1410df803d7073340b2d7d52c6    
  
author   : David Steele <[email protected]>    
date     : Wed, 18 Sep 2019 22:09:49 -0400    
  
committer: David Steele <[email protected]>    
date     : Wed, 18 Sep 2019 22:09:49 -0400    

Click here for diff

This is more efficient but more importantly it is easier to read.  

M src/common/type/json.c

Use a callback to feed jobs to ProtocolParallel.

commit   : 60d93df503c234730109c87114068dde4203804e    
  
author   : David Steele <[email protected]>    
date     : Wed, 18 Sep 2019 07:15:16 -0400    
  
committer: David Steele <[email protected]>    
date     : Wed, 18 Sep 2019 07:15:16 -0400    

Click here for diff

Loading jobs in advance uses a lot of memory in the case that there are millions of jobs to be performed.  We haven't seen this yet, but with backup and restore on the horizon it will become the norm.  
  
Instead, use a callback so that jobs are only created as they are needed and can be freed as soon as they are completed.  

M src/command/archive/get/get.c
M src/command/archive/push/push.c
M src/protocol/parallel.c
M src/protocol/parallel.h
M test/src/module/protocol/protocolTest.c

Ignore write errors when the ls command is writing to stdout.

commit   : ce1c7b02520f2e37dfcfb283471fb4ec263b5d50    
  
author   : David Steele <[email protected]>    
date     : Tue, 17 Sep 2019 21:04:38 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 17 Sep 2019 21:04:38 -0400    

Click here for diff

It's possible (even likely) that the ls output is being piped to something like head which will exit when it gets what it needs and leave us writing to a broken pipe.  
  
It would be better to just ignore the broken pipe error but currently we don't store system error codes.  

M src/command/storage/list.c

Add FAQ for time-based Point-in-Time Recovery.

commit   : 8675699d08b91c57294becfcf27dbf7ddb594c46    
  
author   : Cynthia Shang <[email protected]>    
date     : Mon, 16 Sep 2019 14:09:53 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 16 Sep 2019 14:09:53 -0400    

Click here for diff

M doc/xml/faq.xml
M doc/xml/release.xml

Add documentation clarifications regarding standby repositories.

commit   : 49b421d372144df726d71552850e55cee298a566    
  
author   : Cynthia Shang <[email protected]>    
date     : Mon, 16 Sep 2019 13:56:25 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 16 Sep 2019 13:56:25 -0400    

Click here for diff

Clarify that placing the repository on a standby is not a robust configuration and recommend against it.  

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

Add FAQ regarding backup-standby.

commit   : 09ef03b7ef69d2760756146cad86b784b0b5d7c3    
  
author   : Cynthia Shang <[email protected]>    
date     : Sun, 15 Sep 2019 08:27:38 -0400    
  
committer: David Steele <[email protected]>    
date     : Sun, 15 Sep 2019 08:27:38 -0400    

Click here for diff

M doc/xml/faq.xml

Add required FreeBSD header.

commit   : f9c8bd31de89cc1140fe37e3996672bbb1c99934    
  
author   : Luca Ferrari <[email protected]>    
date     : Sat, 14 Sep 2019 14:10:04 -0400    
  
committer: David Steele <[email protected]>    
date     : Sat, 14 Sep 2019 14:10:04 -0400    

Click here for diff

M src/common/io/tls/client.c

Update HINT messages to conform to new standard detailed in CODING.md.

commit   : 56bf9d0566bbb9708d1687e9d2e59be306e32dda    
  
author   : Cynthia Shang <[email protected]>    
date     : Sat, 14 Sep 2019 12:21:08 -0400    
  
committer: David Steele <[email protected]>    
date     : Sat, 14 Sep 2019 12:21:08 -0400    

Click here for diff

M CODING.md
M doc/xml/coding.xml
M lib/pgBackRest/Archive/Info.pm
M lib/pgBackRest/Backup/Info.pm
M lib/pgBackRest/Common/Ini.pm
M lib/pgBackRest/Db.pm
M src/command/archive/common.c
M src/command/check/check.c
M src/command/check/common.c
M src/command/info/info.c
M src/config/load.c
M src/perl/embed.auto.c
M test/lib/pgBackRestTest/Module/Common/CommonIniPerlTest.pm
M test/lib/pgBackRestTest/Module/Info/InfoInfoArchivePerlTest.pm
M test/lib/pgBackRestTest/Module/Info/InfoInfoBackupPerlTest.pm
M test/src/module/command/archiveCommonTest.c
M test/src/module/command/archivePushTest.c
M test/src/module/command/checkTest.c
M test/src/module/command/infoTest.c
M test/src/module/command/stanzaTest.c
M test/src/module/config/loadTest.c

Rename parameter processId to processIdx in harnessFork.h for clarity.

commit   : c5f496b903ab9a4fa545d5f1a0a8dae9ec5c49af    
  
author   : Cynthia Shang <[email protected]>    
date     : Sat, 14 Sep 2019 11:56:29 -0400    
  
committer: David Steele <[email protected]>    
date     : Sat, 14 Sep 2019 11:56:29 -0400    

Click here for diff

M test/src/common/harnessFork.h

Document the relationship between db-timeout and protocol-timeout.

commit   : f57e119b25d73a4b33aa83b5484898c5d7e84dfb    
  
author   : David Steele <[email protected]>    
date     : Fri, 13 Sep 2019 12:28:39 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 13 Sep 2019 12:28:39 -0400    

Click here for diff

Contributed by Cynthia Shang.  
Suggested by James Chanco Jr.  

M doc/xml/reference.xml
M doc/xml/release.xml
M src/config/define.auto.c

Add recursion and json output to the ls command.

commit   : 15d04ca19c0bd1aafe9d4389e8429bcc392e842d    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 16:29:50 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 16:29:50 -0400    

Click here for diff

These features finally make the ls command practical.  
  
Currently the JSON contains only name, type, and size.  We may add more fields in the future, but these seem like the minimum needed to be useful.  

M build/lib/pgBackRestBuild/Config/Data.pm
M doc/xml/reference.xml
M lib/pgBackRest/LibCAuto.pm
M src/Makefile.in
M src/command/storage/list.c
M src/config/config.auto.c
M src/config/config.auto.h
M src/config/define.auto.c
M src/config/define.auto.h
M src/config/parse.auto.c
M src/perl/embed.auto.c
M test/src/module/command/storageTest.c

Add sorting, filters, and recursion to storageInfoList().

commit   : e45baa1830ac5251fc4284d094c3e12920e50862    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 16:03:05 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 16:03:05 -0400    

Click here for diff

These are needed for the ls command and are also useful for testing.  

M src/Makefile.in
M src/storage/storage.c
M src/storage/storage.h
A test/src/common/harnessStorage.c
A test/src/common/harnessStorage.h
M test/src/module/storage/posixTest.c

Disable missing-field-initializers warnings in unit testing.

commit   : 92365fb801543f8d6d52037b1936b3cd42512238    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 15:55:18 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 15:55:18 -0400    

Click here for diff

This warning gives very unpredictable results between compiler versions and seems unrealistic since most of our structs are zeroed for initialization.  
  
This warning has been disabled in the Makefile for a long time.  

M test/lib/pgBackRestTest/Common/JobTest.pm

Ignore apt-get update errors in Travis CI.

commit   : f809d2f008a4d8d769b72a68ffff9ef75ab9de22    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 15:16:42 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 15:16:42 -0400    

Click here for diff

Broken vendor packages have been causing builds to break due to an error on apt-get update.  
  
Ignore errors and proceed directory to apt-get install.  It's possible that we'll try to reference an expired package version and get an error anyway, but that seems better than a guaranteed hard error.  

M .travis.yml
M test/lib/pgBackRestTest/Common/CiTest.pm

Sort and find improvements to List and StringList objects.

commit   : 506c10f7f270806aca8acecaa303bf4458463720    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 12:04:25 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 12:04:25 -0400    

Click here for diff

Push the responsibility for sort and find down to the List object by introducing a general comparator function that can be used for both sorting and finding.  
  
Update insert and add functions to return the item added rather than the list.  This is more useful in the core code, though numerous updates to the tests were required.  

M src/Makefile.in
M src/command/archive/common.c
M src/command/expire/expire.c
M src/common/type/list.c
M src/common/type/list.h
M src/common/type/string.c
M src/common/type/string.h
M src/common/type/stringList.c
M src/common/type/stringList.h
M src/common/type/variantList.c
M src/config/parse.c
M src/storage/s3/storage.c
M test/src/common/harnessTest.h
M test/src/module/command/expireTest.c
M test/src/module/common/execTest.c
M test/src/module/common/ioHttpTest.c
M test/src/module/common/typeListTest.c
M test/src/module/common/typeStringTest.c
M test/src/module/config/configTest.c
M test/src/module/config/parseTest.c

Add missing header in common/user module.

commit   : e4a071ce033ae53dafb35eb9ccd4daba1030064c    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 10:56:45 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 10:56:45 -0400    

Click here for diff

M src/common/user.h

Update incorrect pipelining references to connection reuse.

commit   : b53305cc361e9978807d506e3e8ec13b3ae93511    
  
author   : David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 08:17:07 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 12 Sep 2019 08:17:07 -0400    

Click here for diff

Connection reuse and pipelining are not the same thing and should not have been conflated.  
  
Update comments and release notes to reflect the correct usage.  

M doc/resource/git-history.cache
M src/common/io/http/client.h
M src/common/io/tls/client.h

Move documentation job first for Travis CI.

commit   : dca5b63f970be8a13cd11222f4b5a9d4ca71261e    
  
author   : David Steele <[email protected]>    
date     : Tue, 10 Sep 2019 13:06:44 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 10 Sep 2019 13:06:44 -0400    

Click here for diff

Since this job has been running long recently this should improved overall performance when multiple commits are queued up.  

M .travis.yml
M test/lib/pgBackRestTest/Common/CiTest.pm

Add groupIdFromName() and userIdFromName() to user module.

commit   : f4f21d0df7217bcb583189d0fc4ecaac3faed146    
  
author   : David Steele <[email protected]>    
date     : Tue, 10 Sep 2019 13:02:05 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 10 Sep 2019 13:02:05 -0400    

Click here for diff

Update StorageWritePosix to use the new functions.  
  
A side effect is that storageWritePosixOpen() will no longer error when the user/group name does not exist.  It will simply retain the original user/group, i.e. the user that executed the restore.  
  
In general this is a feature since completing a restore is more important than setting permissions exactly from the source host.  However, some notification of this omission to the user would be beneficial.  

M src/Makefile.in
M src/common/user.c
M src/common/user.h
M src/storage/posix/write.c
M test/src/module/common/userTest.c
M test/src/module/storage/posixTest.c

Increase process timeout and emit occasional warnings.

commit   : f8d0574759340f0260f06e377da412041987f582    
  
author   : David Steele <[email protected]>    
date     : Tue, 10 Sep 2019 12:29:36 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 10 Sep 2019 12:29:36 -0400    

Click here for diff

Travis will timeout after 10 minutes with no output.  Emit a warning every 5 minutes to keep Travis alive and increase the total timeout to 20 minutes.  
  
Documentation builds have been timing out a lot recently so hopefully this will help.  

M test/lib/pgBackRestTest/Common/ExecuteTest.pm

Update comment missed in d957acb3.

commit   : e043c6b1bc388422aee9255077544c3644b8f69d    
  
author   : David Steele <[email protected]>    
date     : Mon, 9 Sep 2019 07:37:57 -0400    
  
committer: David Steele <[email protected]>    
date     : Mon, 9 Sep 2019 07:37:57 -0400    

Click here for diff

M src/postgres/interface.h

Add user module for managing system users/groups.

commit   : 1049632873d5a70cda90e5c4ed87312bfe4810d6    
  
author   : David Steele <[email protected]>    
date     : Sun, 8 Sep 2019 20:11:51 -0400    
  
committer: David Steele <[email protected]>    
date     : Sun, 8 Sep 2019 20:11:51 -0400    

Click here for diff

Centralize the management of users and groups.  
  
Also update Posix storage driver where users/groups were already in use.  

M libc/Makefile.PL
M src/Makefile.in
A src/common/user.c
A src/common/user.h
M src/storage/posix/storage.c
M test/define.yaml
A test/src/module/common/userTest.c

Add function to generate PostgreSQL tablespace identifier.

commit   : d957acb36b6b50c6166d9a68b03f239cdc508fa7    
  
author   : David Steele <[email protected]>    
date     : Sun, 8 Sep 2019 06:53:23 -0400    
  
committer: David Steele <[email protected]>    
date     : Sun, 8 Sep 2019 06:53:23 -0400    

Click here for diff

In PostgreSQL >= 9.0 each tablespace data is stored in a specially named directory so different major versions can share the same tablespace path.  

M src/postgres/interface.c
M src/postgres/interface.h
M test/src/module/postgres/interfaceTest.c

Add test macro for comparing String to zero-terminated strings.

commit   : 051128ed9ee0ebc63fb35e69818c6213397a053f    
  
author   : David Steele <[email protected]>    
date     : Sun, 8 Sep 2019 06:47:52 -0400    
  
committer: David Steele <[email protected]>    
date     : Sun, 8 Sep 2019 06:47:52 -0400    

Click here for diff

This macro avoids the need to wrap the first parameter in strPtr() and should improve readability.  

M test/src/common/harnessTest.h

Remove most references to PostgreSQL control and catalog versions.

commit   : 0a96764cb8daa615121069e840268e216d1983ff    
  
author   : David Steele <[email protected]>    
date     : Sat, 7 Sep 2019 18:04:39 -0400    
  
committer: David Steele <[email protected]>    
date     : Sat, 7 Sep 2019 18:04:39 -0400    

Click here for diff

The control and catalog versions were stored a variety of places in the optimistic hope that they would be useful.  In fact they never were.  
  
We can't remove them from the backup.info and backup.manifest files due to backwards compatibility concerns, but we can at least avoid loading and storing them in C structures.  
  
Add functions to the PostgreSQL interface which will return the control and catalog versions for any supported version of PostgreSQL to allow backwards compatibility for backup.info and backup.manifest.  These functions will be useful in other ways, e.g. generating the tablespace identifier in PostgreSQL >= 9.0.  

M src/command/stanza/create.c
M src/command/stanza/upgrade.c
M src/info/infoArchive.c
M src/info/infoBackup.c
M src/info/infoBackup.h
M src/info/infoPg.c
M src/info/infoPg.h
M src/postgres/interface.c
M src/postgres/interface.h
M src/postgres/interface/version.h
M src/postgres/interface/version.intern.h
M test/define.yaml
M test/src/module/command/stanzaTest.c
M test/src/module/info/infoBackupTest.c
M test/src/module/info/infoPgTest.c
M test/src/module/postgres/interfaceTest.c

Add user/group id to storageInfo().

commit   : 843a602080e13ea0f205720892f7bfee58e075fb    
  
author   : David Steele <[email protected]>    
date     : Sat, 7 Sep 2019 15:41:55 -0400    
  
committer: David Steele <[email protected]>    
date     : Sat, 7 Sep 2019 15:41:55 -0400    

Click here for diff

This is required for some operations on Posix storage.  

M src/storage/info.h
M src/storage/posix/storage.c
M test/src/module/storage/posixTest.c

Remove extraneous semicolons and add spaces.

commit   : 1c7c1042b4509ff3ad42dad240d895617f01d644    
  
author   : David Steele <[email protected]>    
date     : Sat, 7 Sep 2019 12:32:25 -0400    
  
committer: David Steele <[email protected]>    
date     : Sat, 7 Sep 2019 12:32:25 -0400    

Click here for diff

M src/common/debug.h

Rename lstRemove() to lstRemoveIdx().

commit   : 2eb1d1fee315e1e757856d3d88eb74b8434dad74    
  
author   : David Steele <[email protected]>    
date     : Fri, 6 Sep 2019 16:50:57 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 6 Sep 2019 16:50:57 -0400    

Click here for diff

This works better with the names of upcoming functions and seems sensible even in isolation.  

M src/common/type/list.c
M src/common/type/list.h
M src/info/infoBackup.c
M src/protocol/parallel.c
M test/src/module/common/typeListTest.c

Rename INFO_MANIFEST_FILE to MANIFEST_FILE.

commit   : dde0c2b0c9c9743a863b6064e7dbb69de26fa364    
  
author   : David Steele <[email protected]>    
date     : Fri, 6 Sep 2019 16:43:53 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 6 Sep 2019 16:43:53 -0400    

Click here for diff

This was missed in 5c314df0 when the module was renamed.  

M src/command/expire/expire.c
M src/command/stanza/delete.c
M src/info/manifest.h
M test/src/module/command/expireTest.c

Improve performance of info file load/save.

commit   : 4d84820021ad2a96922c87263d9200aace42358f    
  
author   : David Steele <[email protected]>    
date     : Fri, 6 Sep 2019 13:48:28 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 6 Sep 2019 13:48:28 -0400    

Click here for diff

Info files required three copies in memory to be loaded (the original string, an ini representation, and the final info object). Not only was this memory inefficient but the Ini object does sequential scans when searching for keys making large files very slow to load.  
  
This has not been an issue since archive.info and backup.info are very small, but it becomes a big deal when loading manifests with hundreds of thousands of files.  
  
Instead of holding copies of the data in memory, use a callback to deliver the ini data directly to the object when loading. Use a similar method for save to avoid having an intermediate copy. Save is a bit complex because sections/keys must be written in alpha order or older versions of pgBackRest will not calculate the correct checksum.  
  
Also move the load retry logic to helper functions rather than embedding it in the Info object. This allows for more flexibility in loading and ensures that stack traces will be available when developing unit tests.  
  
Reviewed by Cynthia Shang.  

M doc/xml/release.xml
M src/Makefile.in
M src/command/archive/get/file.c
M src/command/archive/push/push.c
M src/command/check/check.c
M src/command/expire/expire.c
M src/command/info/info.c
M src/command/stanza/create.c
M src/command/stanza/upgrade.c
M src/common/ini.c
M src/common/ini.h
M src/info/info.c
M src/info/info.h
M src/info/infoArchive.c
M src/info/infoArchive.h
M src/info/infoBackup.c
M src/info/infoBackup.h
M src/info/infoPg.c
M src/info/infoPg.h
M test/define.yaml
M test/expect/mock-all-001.log
M test/expect/mock-all-002.log
M test/expect/mock-archive-001.log
M test/expect/mock-archive-002.log
M test/expect/mock-archive-stop-001.log
M test/expect/mock-archive-stop-002.log
M test/expect/mock-expire-001.log
M test/expect/mock-expire-002.log
M test/expect/mock-stanza-001.log
M test/expect/mock-stanza-002.log
M test/src/common/harnessInfo.c
M test/src/common/harnessInfo.h
M test/src/module/command/expireTest.c
M test/src/module/command/infoTest.c
M test/src/module/command/stanzaTest.c
M test/src/module/common/iniTest.c
M test/src/module/info/infoArchiveTest.c
M test/src/module/info/infoBackupTest.c
M test/src/module/info/infoPgTest.c
M test/src/module/info/infoTest.c

Add helper function for adding CipherBlock filters to groups.

commit   : 7334f30c350b5275106b9acf28b60d999287d800    
  
author   : David Steele <[email protected]>    
date     : Fri, 6 Sep 2019 13:35:28 -0400    
  
committer: David Steele <[email protected]>    
date     : Fri, 6 Sep 2019 13:35:28 -0400    

Click here for diff

Reviewed by Cynthia Shang.  

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

Rename infoManifest module to manifest.

commit   : 5c314df098ee2295af400fb0b6b4f0cccd96fb69    
  
author   : David Steele <[email protected]>    
date     : Thu, 5 Sep 2019 19:53:00 -0400    
  
committer: David Steele <[email protected]>    
date     : Thu, 5 Sep 2019 19:53:00 -0400    

Click here for diff

The manifest is not an info file so if anything it should be called backupManifest.  But that seems too long for such a commonly used object so manifest seems better.  
  
Note that unlike Perl there is no storage manifest method so this stands as the only manifest in the C code, as befits its importance.  

M src/Makefile.in
M src/command/expire/expire.c
M src/command/stanza/delete.c
M src/info/infoBackup.c
R085 src/info/infoManifest.h src/info/manifest.h
M test/code-count/file-type.yaml

Fix sudo missed in "Build pgBackRest as an unprivileged user".

commit   : 8df7d68c8dca2c61b665bbbd1f26800c0dca3ae8    
  
author   : David Steele <[email protected]>    
date     : Tue, 3 Sep 2019 18:28:53 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 3 Sep 2019 18:28:53 -0400    

Click here for diff

286a106a updated the documentation to build pgBackRest as an unprivileged user, but the wget command was missed.  This command is not actually run, just displayed, because the release is not yet available when the documentation is built.  
  
Update the wget command to run as the local user.  

M doc/xml/user-guide.xml

Begin v2.18 development.

commit   : 005684bf1f55206f122e1d0fcb4164cc84875ff5    
  
author   : David Steele <[email protected]>    
date     : Tue, 3 Sep 2019 17:53:50 -0400    
  
committer: David Steele <[email protected]>    
date     : Tue, 3 Sep 2019 17:53:50 -0400    

Click here for diff

M doc/resource/git-history.cache
M doc/xml/release.xml
M lib/pgBackRest/Version.pm
M src/configure
M src/configure.ac
M src/perl/embed.auto.c
M src/version.h