pgBackRest 1.12 commit log

v1.12: Page Checksums, Configuration, and Bug Fixes

  
commit   : 8e3464da805fc0975b6cf25ecb9ba16146b45c9e    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 12 Dec 2016 19:18:27 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 12 Dec 2016 19:18:27 -0500    

Click here for diff

  
IMPORTANT NOTE: In prior releases it was possible to specify options on the command-line that were invalid for the current command without getting an error. An error will now be generated for invalid options so it is important to carefully check command-line options in your environment to prevent disruption.  
  
Bug Fixes:  
  
* Fixed an issue where options that were invalid for the specified command could be provided on the command-line without generating an error. The options were ignored and did not cause any change in behavior, but it did lead to some confusion. Invalid options will now generate an error. (Reported by Nikhilchandra Kulkarni.)  
* Fixed an issue where internal symlinks were not being created for tablespaces in the repository. This issue was only apparent when trying to bring up clusters in-place manually using filesystem snapshots and did not affect normal backup and restore.  
* Fixed an issue that prevented errors from being output to the console before the logging system was initialized, i.e. while parsing options. Error codes were still being returned accurately so this would not have made a process look like it succeeded when it did not. (Reported by Adrian Vondendriesch.)  
* Fixed an issue where the db-port option specified on the backup server would not be properly passed to the remote unless it was from the first configured database. (Reported by Michael Vitale.)  
  
Features:  
  
* Added the --checksum-page option to allow pgBackRest to validate page checksums in data files when checksums are enabled on PostgreSQL >= 9.3. Note that this functionality requires a C library which may not initially be available in OS packages. The option will automatically be enabled when the library is present and checksums are enabled on the cluster. (Suggested by Stephen Frost.)  
* Added the --repo-link option to allow internal symlinks to be suppressed when the repository is located on a filesystem that does not support symlinks. This does not affect any pgBackRest functionality, but the convenience link latest will not be created and neither will internal tablespace symlinks, which will affect the ability to bring up clusters in-place manually using filesystem snapshots.  
* Added the --repo-sync option to allow directory syncs in the repository to be disabled for file systems that do not support them, e.g. NTFS.  
* Added a predictable log entry to signal that a command has completed successfully. For example a backup ends successfully with: INFO: backup command end: completed successfully. (Suggested by Jens Wilke.)  
  
Refactoring:  
  
* Abstracted code to determine which database cluster is the master and which are standbys. (Contributed by Cynthia Shang.)  
* Improved consistency and flexibility of the protocol layer by using JSON for all messages.  
* File copy protocol now accepts a function that can do additional processing on the copy buffers and return a result to the calling process.  
* Improved IO->bufferRead to always return requested number of bytes until EOF.  
* For simplicity, the pg_control file is now copied with the rest of the files instead of by itself of at the end of the process. The backup command does not require this behavior and the restore copies to a temporary file which is renamed at the end of the restore.  
* Simplified the result hash of File->manifest(), Db->tablespaceMapGet(), and Db->databaseMapGet().  
* Improved errors returned from child processes by removing redundant error level and code.  
* Code cleanup in preparation for improved stanza-create command. (Contributed by Cynthia Shang.)  
* Improved parameter/result logging in debug/trace functions.  
  

Added the –checksum-page option.

  
commit   : 36a5349b1c6b6bcd513464029733b62fe4200759    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 12 Dec 2016 18:54:07 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 12 Dec 2016 18:54:07 -0500    

Click here for diff

  
This option allows pgBackRest to validate page checksums in data files when checksums are enabled on PostgreSQL >= 9.3. Note that this functionality requires a C library which may not initially be available in OS packages. The option will automatically be enabled when the library is present and checksums are enabled on the cluster.  
  

File copy protocol now accepts a function that can do additional processing on the copy buffers and return a result to the calling process.

  
commit   : 6dd0829033fb600e0aa5d9c60d3315e65a6bb289    
  
author   : David Steele <david@pgmasters.net>    
date     : Mon, 12 Dec 2016 18:47:17 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Mon, 12 Dec 2016 18:47:17 -0500    

Click here for diff

  
  

Fixed an issue where the db-port option specified on the backup server would not be properly passed to the remote unless it was from the first configured database.

  
commit   : b4884e5a0bdb572aeb766f6d5f1be8b159de5ea7    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 14:05:28 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 14:05:28 -0500    

Click here for diff

  
Reported by Michael Vitale.  
  

Improved parameter/result logging in debug/trace functions.

  
commit   : 1a5fa920e6baec14fc092d202839ab16d403b7fb    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 09:15:20 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 09:15:20 -0500    

Click here for diff

  
  

Add more realistic data files to synthetic backup and restore tests.

  
commit   : e61ef6ebce004ebacf95796acae835845b25758e    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 09:13:55 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 09:13:55 -0500    

Click here for diff

  
  

Various improvements to validation of backup and restore.

  
commit   : eff7b46eb1abb0d80de01730e6834f39f450f890    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 09:11:12 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 09:11:12 -0500    

Click here for diff

  
  

Fixed issues in the protocol layer when additional message fields were added.

  
commit   : b45e0d81898f21f8d65f029e382c3d202a3b0e7a    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 09:09:16 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 09:09:16 -0500    

Click here for diff

  
  

Added the –repo-sync option to allow directory syncs in the repository to be disabled.

  
commit   : f818901c0e619b50afa50412d246d0b1771fac11    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 09:06:45 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 10 Dec 2016 09:06:45 -0500    

Click here for diff

  
This is for file systems that do not support them, e.g. NTFS  
  

Added Retention to QuickStart section.

  
commit   : 36378c47bd3058b3986bf2913539724965c39e56    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 4 Dec 2016 18:11:23 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 4 Dec 2016 18:11:23 -0500    

Click here for diff

  
  

Improved errors returned from child processes by removing redundant error level and code.

  
commit   : 896984848bf46f85893d4f05cf06534b4fe49327    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 4 Dec 2016 17:51:00 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 4 Dec 2016 17:51:00 -0500    

Click here for diff

  
  

Added a predictable log entry to signal that a command has completed successfully.

  
commit   : 817592837ce08d412dc97e3cfeb543590a83d04f    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 4 Dec 2016 14:44:53 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 4 Dec 2016 14:44:53 -0500    

Click here for diff

  
For example a backup ends successfully with: INFO: backup command end: completed successfully.  
  

Fixed an issue where options that were invalid for the specified command could be provided on the command-line without generating an error.

  
commit   : f823a25ac20fac867038a4797d96c26e27f8388b    
  
author   : David Steele <david@pgmasters.net>    
date     : Sun, 4 Dec 2016 09:25:40 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sun, 4 Dec 2016 09:25:40 -0500    

Click here for diff

  
* The options were ignored and did not cause any change in behavior, but it did lead to some confusion. Invalid options will now generate an error.  
* Removed erroneous --no-config option in help test module.  
* Changed the --no-fork test option to --fork with negation to match all other boolean parameters.  
  

Fixed an issue that prevented errors from being output to the console before the logging system was initialized.

  
commit   : d18cd7ad0faa80c4ceacd708d0ae1e964f170a7a    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 3 Dec 2016 18:01:17 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 3 Dec 2016 18:01:17 -0500    

Click here for diff

  
That is, while parsing options. Error codes were still being returned accurately so this would not have made a process look like it succeeded when it did not.  
  

Improved consistency and flexibility of the protocol layer by using JSON for all messages.

  
commit   : 2e01e6b9e1a9c598715f7ad86177930fb3963e56    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 3 Dec 2016 17:34:51 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 3 Dec 2016 17:34:51 -0500    

Click here for diff

  
  

Code cleanup in preparation for improved stanza-create command.

  
commit   : b7f17382002046b7f52fdd874025428a649713a6    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Sat, 3 Dec 2016 10:28:08 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 3 Dec 2016 10:28:08 -0500    

Click here for diff

  
Contributed by Cynthia Shang.  
  

  
commit   : 005fc08795c0bd299f999eff665b4eb4e789b2d2    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 3 Dec 2016 10:23:26 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 3 Dec 2016 10:23:26 -0500    

Click here for diff

  
Allow internal symlinks to be suppressed when the repository is located on a filesystem that does not support symlinks. This does not affect any pgBackRest functionality, but the convenience link latest will not be created and neither will internal tablespace symlinks, which will affect the ability to bring up clusters in-place manually using filesystem snapshots.  
  

  
commit   : 6ae4d7de81cfdb8982f3bde0e920fb2a76250208    
  
author   : David Steele <david@pgmasters.net>    
date     : Sat, 3 Dec 2016 09:56:05 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Sat, 3 Dec 2016 09:56:05 -0500    

Click here for diff

  
This issue was only apparent when trying to bring up clusters in-place with filesystem snapshots and did not affect normal backup and restore.  
  

Update control and wal test files to 9.4 with matching system identifiers.

  
commit   : 22cd29771fc87d98bc7269aad1e30b7c3d7de425    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Thu, 1 Dec 2016 09:33:14 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 1 Dec 2016 09:33:14 -0500    

Click here for diff

  
Contributed by Cynthia Shang.  
  

Simplified the result hash of File->manifest(), Db->tablespaceMapGet(), and Db->databaseMapGet().

  
commit   : a850335015207c95a05b4219997d025bcc854e1f    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 30 Nov 2016 14:36:39 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 30 Nov 2016 14:36:39 -0500    

Click here for diff

  
  

For simplicity, the pg_control file is now copied with the rest of the files instead of by itself of at the end of the process.

  
commit   : 09df07efb7496db9ac426da243acc636a628d2bb    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 30 Nov 2016 14:23:05 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 30 Nov 2016 14:23:05 -0500    

Click here for diff

  
The backup command does not require this behavior and the restore copies to a temporary file which is renamed at the end of the restore.  
  

Improved IO->bufferRead to always return requested number of bytes until EOF.

  
commit   : 4e9f8da9a6c85b8f486d4207d637f9d0b14b3049    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 30 Nov 2016 14:18:12 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 30 Nov 2016 14:18:12 -0500    

Click here for diff

  
  

Abstracted code to determine which database cluster is the master and which are standbys.

  
commit   : e951c4f9c267a7a860c22b29fc1208c3d96f7c89    
  
author   : Cynthia Shang <cynthia.shang@crunchydata.com>    
date     : Wed, 30 Nov 2016 14:15:11 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 30 Nov 2016 14:15:11 -0500    

Click here for diff

  
Contributed by Cynthia Shang.  
  

Improved exception handling in file unit tests.

  
commit   : d101e9c84e1e9bc7339a3d52a57964faf3aac51e    
  
author   : David Steele <david@pgmasters.net>    
date     : Wed, 30 Nov 2016 14:03:58 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Wed, 30 Nov 2016 14:03:58 -0500    

Click here for diff

  
  

Builds in release.pl now remove all docker containers to get consistent IP address assignments.

  
commit   : 4df3eabf6d5acda7e7095933ea7f85ce9c618151    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 22 Nov 2016 17:31:27 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 22 Nov 2016 17:31:27 -0500    

Click here for diff

  
  

  
commit   : dbd16d25b97ba2d2cd86bcfb35e1ca41a2323c33    
  
author   : David Steele <david@pgmasters.net>    
date     : Tue, 22 Nov 2016 17:29:24 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Tue, 22 Nov 2016 17:29:24 -0500    

Click here for diff

  
This was introduced in an effort to make the html output XHTML 1.0 STRICT compliant because the standard does not allow / characters in anchors.  
  
However, the / characters were changed to . in the anchors but not in the links.  For now revert the anchors to / so further though can be given to this issue.  
  

Doc engine improvements.

  
commit   : c9b49b0d7e1f0cc612511c1691dcde89ec0cee92    
  
author   : David Steele <david@pgmasters.net>    
date     : Thu, 17 Nov 2016 16:35:11 -0500    
  
committer: David Steele <david@pgmasters.net>    
date     : Thu, 17 Nov 2016 16:35:11 -0500    

Click here for diff

  
Bug Fixes:  
  
* Fixed and issue that suppressed exceptions in PDF builds.  
  
Features:  
  
* Allow a source to be included as a section so large documents can be broken up.  
* Added section link support to Markdown output.  
* Added list support to PDF output.  
* Added include option to explicitly build sources (complements the exclude option though both cannot be used in the same invocation).  
* Added keyword-add option to add keywords without overriding the default keyword.  
* Added debug option to doc.pl to easily add the debug keyword to documentation builds.  
* Added pre option to doc.pl to easily add the pre keyword to documentation builds.  
  
Refactoring:  
  
* Improvements to markdown rendering.  
* Remove code dependency on project variable, instead use title param.