{"push_id":2918143807,"size":55,"distinct_size":55,"ref":"refs/heads/master","head":"51484a008f1172b51c2296974de7bfcd37ab24b8","before":"bef58a79743d3273d14de221e26291a5d90409b3","commits":[{"sha":"4498f726a59132421f8a1530783f8bb6cc8905c3","author":{"name":"Stephen Frost","email":"d3eaa418a359156a10c6383b2e3a44959960ecf6@snowman.net"},"message":"Improve asynchronous archive-get/archive-push performance by directly checking status files.\n\nPrior to this commit, an expression was used to search the spool directory for ok/error files for a specific WAL segment. This involved setting up a regular expression and using opendir/readdir.\n\nInstead, directly probe for the status files, checking directly if a '.ok' or '.error' file exists, avoiding the regular expression and eliminating the directory scan.\n\nOnly the two files now probed for could have ever matched the regular expression which had been provided and it's unlikely that many more additional files will be added, so this is a good improvement, and optimization, with little downside.\n\nContributed by Stephen Frost.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/4498f726a59132421f8a1530783f8bb6cc8905c3"},{"sha":"a6cecf7d5ef722bc962a1e6a3808dce3424ca710","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Prevent manifest from being built more than once.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/a6cecf7d5ef722bc962a1e6a3808dce3424ca710"},{"sha":"14cde54b37bec6ac831a2ddc870531bd61b034dd","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Limit manifest build recursion (i.e. links followed) to sixteen levels to detect link loops.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/14cde54b37bec6ac831a2ddc870531bd61b034dd"},{"sha":"c6384904512363baaa8c6dbec42799c0ddb1d4db","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Documentation updates for exclude feature based on review.\n\nReviewed by Cynthia Shang.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/c6384904512363baaa8c6dbec42799c0ddb1d4db"},{"sha":"1631f8b3cebbe761f5eb71c9b7203664f2ae5005","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Embedded documentation update missed in c6384904.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/1631f8b3cebbe761f5eb71c9b7203664f2ae5005"},{"sha":"70514061fdca620ba99dd0e36bb99dccbca43e1d","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Fix issue where relative links in $PGDATA could be stored in the backup with the wrong path.\n\nRelative link paths were being combined with the paths of previous links (relative or absolute) due to the $strPath variable being modified in the current iteration rather than simply being passed to the next level of recursion.\n\nThis issue did not affect absolute links and relative tablespace links were caught by other checks, though the error was confusing.\n\nReported by Cynthia Shang.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/70514061fdca620ba99dd0e36bb99dccbca43e1d"},{"sha":"c2d0a21d63a3c76bf513ac79c622e694ca9dfe1d","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Allow secrets to be passed via environment variables.\n\nWhen environment variables were added in d0b9f986 they were classified as cfgSourceParam, but one of the restrictions on this type is that they can't pass secrets because they might be exposed in the process list.\n\nThe solution is to reclassify environment variables as cfgSourceConfig.  This allows them to handle secrets because they will not pass values to subprocesses as parameters.  Instead, each subprocess is expected to check the environment directly during configuration parsing.\n\nIn passing, move the error about secrets being passed on the command-line up to command-line parsing and make the error more generic with respect to the configuration file now that multiple configuration files are allowed.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/c2d0a21d63a3c76bf513ac79c622e694ca9dfe1d"},{"sha":"d41570c37a2820380fa1708f31ed21c09e4065f8","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Improve log file names for remote processes started by locals.\n\nThe log-subprocess feature added in 22765670 failed to take into account the naming for remote processes spawned by local processes.  Not only was the local command used for the naming of log files but the process id was not pass through.  This meant every remote log was named \"[stanza]-local-remote-000\" which is confusing and meant multiple processes were writing to the same log.\n\nInstead, pass the real command and process id to the remote.  This required a minor change in locking to ignore locks if process id is greater than 0 since remotes started by locals never lock.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/d41570c37a2820380fa1708f31ed21c09e4065f8"},{"sha":"bc7462d86d3529712cf7c196a04f7d6f8dd8ee34","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"v2.05: Environment Variable Options and Exclude Temporary/Unlogged Relations\n\nBug Fixes:\n\n* Fix issue where relative links in $PGDATA could be stored in the backup with the wrong path. This issue did not affect absolute links and relative tablespace links were caught by other checks. (Reported by Cynthia Shang.)\n* Remove incompletely implemented online option from the check command. Offline operation runs counter to the purpose of this command, which is to check if archiving and backups are working correctly. (Reported by Jason O'Donnell.)\n* Fix issue where errors raised in C were not logged when called from Perl. pgBackRest properly terminated with the correct error code but lacked an error message to aid in debugging. (Reported by Douglas J Hunley.)\n* Fix issue when a boolean option (e.g. delta) was specified more than once. (Reported by Yogesh Sharma.)\n\nFeatures:\n\n* Allow any option to be set in an environment variable. This includes options that previously could only be specified on the command line, e.g. stanza, and secret options that could not be specified on the command-line, e.g. repo1-s3-key-secret.\n* Exclude temporary and unlogged relation (table/index) files from backup. Implemented using the same logic as the patches adding this feature to PostgreSQL, 8694cc96 and 920a5e50. Temporary relation exclusion is enabled in PostgreSQL ≥ 9.0. Unlogged relation exclusion is enabled in PostgreSQL ≥ 9.1, where the feature was introduced. (Contributed by Cynthia Shang.)\n* Allow arbitrary directories and/or files to be excluded from a backup. Misuse of this feature can lead to inconsistent backups so read the --exclude documentation carefully before using. (Reviewed by Cynthia Shang.)\n* Add log-subprocess option to allow file logging for local and remote subprocesses.\n* PostgreSQL 11 Beta 3 support.\n\nImprovements:\n\n* Allow zero-size files in backup manifest to reference a prior manifest regardless of timestamp delta. (Contributed by Cynthia Shang.)\n* Improve asynchronous archive-get/archive-push performance by directly checking status files. (Contributed by Stephen Frost.)\n* Improve error message when a command is missing the stanza option. (Suggested by Sarah Conway.)","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/bc7462d86d3529712cf7c196a04f7d6f8dd8ee34"},{"sha":"41746b53cd91c0d7203d855f9186c685ea59af47","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Begin v2.06 development.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/41746b53cd91c0d7203d855f9186c685ea59af47"},{"sha":"375ff9f9d283842da3620f22c9c5bdb61249ae9e","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Ignore all files in a linked tablespace directory except the subdirectory for the current version of PostgreSQL.\n\nPreviously an error would be generated if other files were present and not owned by the PostgreSQL user.  This hasn't been a big deal in practice but it could cause issues.\n\nAlso add tests to make sure the same logic applies with links to files, i.e. all other files in the directory should be ignored.  This was actually working correctly, but there were no tests for it before.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/375ff9f9d283842da3620f22c9c5bdb61249ae9e"},{"sha":"800afeef70464da57af023614b1dfeecce5e112c","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Posix file functions now differentiate between open and missing errors.\n\nThe Perl functions do so and the integration tests rely on checking for these errors.  This has been exposed as more functionality is moved into C.\n\nPassing the errors types is now a bit complicated so instead use a flag to determine which errors to throw.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/800afeef70464da57af023614b1dfeecce5e112c"},{"sha":"6361a061812b20efeb89db110ebd592a0d52404f","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Fix incorrectly reported error return in info logging.\n\nA return code of 1 from the archive-get was being logged as an error message at info level but otherwise worked correctly.\n\nAlso improve info messages when an archive segment is or is not found.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/6361a061812b20efeb89db110ebd592a0d52404f"},{"sha":"de1b74da0cf9c4f182e3a4cde52d0b5163111a44","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Move encryption in mock/archive tests to remote tests.\n\nThe new archive-get C code can't run (yet) when encryption is enabled.  Therefore move the encryption tests so we can test the new C code.  We'll move it back when encryption is enabled in C.\n\nAlso, push one WAL segment with compression to test decompression in the C code.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/de1b74da0cf9c4f182e3a4cde52d0b5163111a44"},{"sha":"960ad73298fa9c3b9ea60b24428a10ede9a58828","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Info objects now parse JSON and use specified storage.\n\nUse JSON code now that it is available and remove temporary hacks used to get things working initially.\n\nUse passed storage objects rather than using storageLocal().  All storage objects in C are still local but this won't always be the case.\n\nAlso, move Postgres version conversion functions to postgres/info.c since they have no dependency on the info objects and will likely be useful elsewhere.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/960ad73298fa9c3b9ea60b24428a10ede9a58828"},{"sha":"96600760930d1713645ffab211d98d2314818432","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Add helper for repository storage.\n\nImplement rules for generating paths within the archive part of the repository. Add a helper function, storageRepo(), to create the repository storage based on configuration settings.\n\nThe repository storage helper is located in the protocol module because it will support remote file systems in the future, just as the Perl version does.\n\nAlso, improve the existing helper functions a bit using string functions that were not available when they were written.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/96600760930d1713645ffab211d98d2314818432"},{"sha":"5bdaa35fa5fea30bf7cdf10a5077cb3b661aa3db","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Migrate walIsPartial(), walIsSegment(), and walSegmentFind() from Perl to C.\n\nAlso refactor regular expression defines to make them more reusable.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/5bdaa35fa5fea30bf7cdf10a5077cb3b661aa3db"},{"sha":"6e9b6fdca919b9f6fe2bfdb88447ee1f4f7abea7","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Migrate control functions to detect stop files to C from Perl.\n\nBasic functions to detect the presence of stanza or all stop files and error when they are present.\n\nThe functionality to detect stop files without error was not migrated. This functionality is only used by stanza-delete and will be migrated with that command.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/6e9b6fdca919b9f6fe2bfdb88447ee1f4f7abea7"},{"sha":"faaa9a91fda78f8e38d0a479675f08a5b17a7302","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Fix typo in unit test error messages, EXECTED => EXPECTED.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/faaa9a91fda78f8e38d0a479675f08a5b17a7302"},{"sha":"f7fc8422f780d18d045f42124dc40aa0920fe416","author":{"name":"David Steele","email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pgmasters.net"},"message":"Make Valgrind return an error even when a non-fatal issue is detected.\n\nBy default Valgrind does not exit with an error code when a non-fatal error is detected, e.g. unfreed memory.  Use the --error-exitcode option to enabled this behavior.\n\nUpdate some minor issues discovered in the tests as a result.  Luckily, no issues were missed in the core code.","distinct":true,"url":"https://api.github.com/repos/sfrost/pgbackrest/commits/f7fc8422f780d18d045f42124dc40aa0920fe416"}]}
{"actor":{"display_login":"sfrost"}}