pgBackRest 2.3 commit log

v2.03: Single Executable to Deploy

commit   : f7123c1bbf239814b33ddc97e53b472cf0e69d16    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 22 May 2018 19:53:25 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 22 May 2018 19:53:25 -0400    

Click here for diff

Bug Fixes:  
  
* Fix potential buffer overrun in error message handling. (Reported by Lætitia.)  
* Fix archive write lock being taken for the synchronous archive-get command. (Reported by Uspen.)  
  
Improvements:  
  
* Embed exported C functions and Perl modules directly into the pgBackRest executable.  
* Use time_t instead of __time_t for better portability. (Suggested by Nick Floersch.)  
* Print total runtime in milliseconds at command end.  

M README.md
M doc/resource/exe.cache
M doc/xml/release.xml
M lib/pgBackRest/Version.pm
M src/perl/embed.auto.c
M src/version.h
M test/code-count/file-type.yaml
M test/lib/pgBackRestTest/Common/CodeCountTest.pm
M test/test.pl

Embed exported C functions and Perl modules directly into the pgBackRest executable.

commit   : 4c7408ea52af7f8faec5244c65a55440643616eb    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 22 May 2018 12:53:08 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 22 May 2018 12:53:08 -0400    

Click here for diff

M .travis.yml
M build/lib/pgBackRestBuild/Build/Common.pm
A build/lib/pgBackRestBuild/Embed/Build.pm
M doc/xml/release.xml
M doc/xml/user-guide.xml
A lib/pgBackRest/LibC.pm
A lib/pgBackRest/LibCAuto.pm
M libc/LibC.xs
M libc/Makefile.PL
M libc/build/lib/pgBackRestLibC/Build.pm
D libc/build/lib/pgBackRestLibC/BuildParam.pm
D libc/build/lib/pgBackRestLibC/Config/Build.pm
D libc/build/lib/pgBackRestLibC/Config/BuildDefine.pm
D libc/lib/pgBackRest/LibC.pm
D libc/lib/pgBackRest/LibCAuto.pm
M libc/t/sanity.t
M libc/xs/cipher/block.xsh
M libc/xs/common/encode.xsh
D libc/xs/config/config.auto.xsh
D libc/xs/config/define.auto.xsh
M src/Makefile
A src/perl/embed.auto.c
M src/perl/exec.c
A src/perl/libc.auto.c
M test/lib/pgBackRestTest/Common/DefineTest.pm
M test/lib/pgBackRestTest/Common/JobTest.pm
M test/lib/pgBackRestTest/Common/ListTest.pm
M test/lib/pgBackRestTest/Common/VmTest.pm
A test/patch/debian-package.patch
A test/patch/rhel-package.patch
M test/test.pl
M test/travis.pl

Fix archive write lock being taken for the synchronous archive-get command.

commit   : ada5c5c0d96e63f9f13009b6b0818457b49c6591    
  
author   : David Steele <david@crunchydata.com>    
date     : Mon, 21 May 2018 10:46:45 -0400    
  
committer: David Steele <david@crunchydata.com>    
date     : Mon, 21 May 2018 10:46:45 -0400    

Click here for diff

Reported by Uspen.  

M doc/xml/release.xml
M lib/pgBackRest/Protocol/Base/Minion.pm
M libc/xs/common/lock.xs
M test/lib/pgBackRestTest/Module/Protocol/ProtocolCommonMinionPerlTest.pm

Fix potential buffer overrun in error message handling.

commit   : e69d5fbf624bbab45dcc820798284244fecd18c3    
  
author   : David Steele <david@crunchydata.com>    
date     : Mon, 21 May 2018 08:06:31 -0400    
  
committer: David Steele <david@crunchydata.com>    
date     : Mon, 21 May 2018 08:06:31 -0400    

Click here for diff

Reported by Lætitia.  

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

commit   : 72a9684d4e9dc15f7252b259dafb35a310fe2cd6    
  
author   : David Steele <david@crunchydata.com>    
date     : Fri, 18 May 2018 12:03:39 -0400    
  
committer: David Steele <david@crunchydata.com>    
date     : Fri, 18 May 2018 12:03:39 -0400    

Click here for diff

M doc/xml/release.xml
M src/command/command.c
M src/command/command.h
M src/main.c
M test/src/module/command/commandTest.c

Add stack trace macros to all functions.

commit   : 52bc07323407668f49282d011b710f85fc9b11b6    
  
author   : David Steele <david@crunchydata.com>    
date     : Fri, 18 May 2018 11:57:32 -0400    
  
committer: David Steele <david@crunchydata.com>    
date     : Fri, 18 May 2018 11:57:32 -0400    

Click here for diff

Low-level functions only include stack trace in test builds while higher-level functions ship with stack trace built-in. Stack traces include all parameters passed to the function but production builds only create the parameter list when the log level is set high enough, i.e. debug or trace depending on the function.  

M doc/xml/release.xml
M libc/Makefile.PL
A libc/build/lib/pgBackRestLibC/BuildParam.pm
M src/Makefile
M src/cipher/block.c
M src/cipher/block.h
M src/cipher/cipher.c
M src/cipher/cipher.h
M src/cipher/random.c
M src/command/archive/common.c
M src/command/archive/get/get.c
M src/command/archive/push/push.c
M src/command/command.c
M src/command/help/help.c
M src/common/assert.h
A src/common/debug.c
M src/common/debug.h
M src/common/encode.c
M src/common/encode/base64.c
M src/common/error.c
M src/common/error.h
M src/common/exit.c
M src/common/fork.c
M src/common/ini.c
M src/common/ini.h
M src/common/io/handle.c
M src/common/lock.c
M src/common/log.c
M src/common/log.h
M src/common/memContext.c
M src/common/memContext.h
M src/common/regExp.c
M src/common/regExp.h
A src/common/stackTrace.c
A src/common/stackTrace.h
M src/common/time.c
M src/common/type/buffer.c
M src/common/type/buffer.h
A src/common/type/convert.c
A src/common/type/convert.h
M src/common/type/keyValue.c
M src/common/type/keyValue.h
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/variant.c
M src/common/type/variant.h
M src/common/type/variantList.c
M src/common/type/variantList.h
M src/common/wait.c
M src/common/wait.h
M src/config/config.c
M src/config/config.h
M src/config/define.c
M src/config/load.c
M src/config/parse.c
M src/main.c
M src/perl/config.c
M src/perl/exec.c
M src/postgres/info.c
M src/postgres/info.h
M src/postgres/pageChecksum.c
M src/storage/driver/posix/driver.c
M src/storage/driver/posix/driverFile.c
M src/storage/driver/posix/driverRead.c
M src/storage/driver/posix/driverRead.h
M src/storage/driver/posix/driverWrite.c
M src/storage/driver/posix/driverWrite.h
M src/storage/fileRead.c
M src/storage/fileRead.h
M src/storage/fileWrite.c
M src/storage/fileWrite.h
M src/storage/helper.c
M src/storage/info.h
M src/storage/storage.c
M src/storage/storage.h
M test/Vagrantfile
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-stanza-001.log
M test/expect/mock-stanza-002.log
M test/expect/mock-stanza-003.log
M test/lib/pgBackRestTest/Common/JobTest.pm
M test/src/common/harnessConfig.c
A test/src/common/harnessDebug.h
M test/src/common/harnessTest.c
M test/src/common/harnessTest.h
M test/src/common/logTest.c
M test/src/common/logTest.h
M test/src/module/archive/commonTest.c
M test/src/module/archive/getTest.c
M test/src/module/archive/pushTest.c
M test/src/module/cipher/blockTest.c
M test/src/module/cipher/randomTest.c
M test/src/module/command/commandTest.c
M test/src/module/common/assertOffTest.c
M test/src/module/common/assertOnTest.c
M test/src/module/common/debugOffTest.c
M test/src/module/common/debugOnTest.c
M test/src/module/common/encodeTest.c
M test/src/module/common/errorTest.c
M test/src/module/common/exitTest.c
M test/src/module/common/forkTest.c
M test/src/module/common/iniTest.c
M test/src/module/common/ioHandleTest.c
M test/src/module/common/lockTest.c
M test/src/module/common/logTest.c
M test/src/module/common/memContextTest.c
M test/src/module/common/regExpTest.c
A test/src/module/common/stackTraceTest.c
M test/src/module/common/timeTest.c
M test/src/module/common/typeBufferTest.c
A test/src/module/common/typeConvertTest.c
M test/src/module/common/typeKeyValueTest.c
M test/src/module/common/typeListTest.c
M test/src/module/common/typeStringListTest.c
M test/src/module/common/typeStringTest.c
M test/src/module/common/typeVariantListTest.c
M test/src/module/common/typeVariantTest.c
M test/src/module/common/typecTest.c
M test/src/module/common/waitTest.c
M test/src/module/config/configTest.c
M test/src/module/config/defineTest.c
M test/src/module/config/loadTest.c
M test/src/module/config/parseTest.c
M test/src/module/help/helpTest.c
M test/src/module/perl/configTest.c
M test/src/module/perl/execTest.c
M test/src/module/postgres/infoTest.c
M test/src/module/postgres/pageChecksumTest.c
M test/src/module/storage/fileTest.c
M test/src/module/storage/helperTest.c
M test/src/module/storage/storageTest.c
M test/src/test.c
M test/test.pl

Test harness improvements.

commit   : abb9651f4c58446bbcf3f2013d075157a20beed5    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 18 May 2018 06:45:14 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 18 May 2018 06:45:14 -0400    

Click here for diff

* Allow more than one test to provide coverage for the same module.  
* Add option to disable valgrind.  
* Add option to disabled coverage.  
* Add option to disable debug build.  
* Add option to disable compiler optimization.  
* Add --dev-test mode.  

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

commit   : bce3d0fe1c96c0204fffd38145e4ddd56362a837    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 17 May 2018 17:09:06 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 17 May 2018 17:09:06 -0400    

Click here for diff

The C library builds with different options which should not be reused for the C binary or vice versa.  

M doc/xml/release.xml
M libc/Makefile.PL
M src/config/config.c
M src/config/define.c
M src/config/parse.c

Set log-timestamp=n for integration tests.

commit   : 91be372e6ac1601249df05e334ee93ba5540633c    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 11 May 2018 11:24:38 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 11 May 2018 11:24:38 -0400    

Click here for diff

This means less filtering of logs needs to be done and new timestamps can be added without adding new filters.  

M doc/xml/release.xml
M test/expect/mock-all-001.log
M test/expect/mock-all-002.log
M test/expect/mock-all-003.log
M test/expect/mock-archive-001.log
M test/expect/mock-archive-002.log
M test/expect/mock-archive-003.log
M test/expect/mock-archive-stop-001.log
M test/expect/mock-archive-stop-002.log
M test/expect/mock-archive-stop-003.log
M test/expect/mock-archive-stop-004.log
M test/expect/mock-archive-stop-005.log
M test/expect/mock-archive-stop-006.log
M test/expect/mock-archive-stop-007.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/expect/mock-stanza-003.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/Env/Host/HostBackupTest.pm

Update SSL error message test on CentOS 7.

commit   : a1be8e16cdfd364591c3a7104b1cc30084b13a08    
  
author   : David Steele <david@pgmasters.net>    
date     : Fri, 11 May 2018 10:39:36 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Fri, 11 May 2018 10:39:36 -0400    

Click here for diff

M doc/xml/release.xml
M test/lib/pgBackRestTest/Module/Storage/StorageS3CertPerlTest.pm

Use time_t instead of __time_t for better portability.

commit   : 4b4af1cbfc0859a3db2981229e864853a38722bb    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 9 May 2018 11:14:35 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 9 May 2018 11:14:35 -0400    

Click here for diff

Suggested by Nick Floersch.  

M doc/xml/release.xml
M src/common/time.c

Begin v2.03 development.

commit   : a9069f3fd3236d020c589265117817d3fddc6a5d    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 9 May 2018 10:50:05 -0400    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 9 May 2018 10:50:05 -0400    

Click here for diff

M doc/xml/release.xml
M lib/pgBackRest/Version.pm
M libc/lib/pgBackRest/LibCAuto.pm
M src/version.h