From de7fc37f88f670a1b4b4f95ff354384f37d983b1 Mon Sep 17 00:00:00 2001 From: David Steele Date: Fri, 9 Jun 2017 17:51:41 -0400 Subject: [PATCH] Storage and IO layer refactor: Refactor storage layer to allow for new repository filesystems using drivers. (Reviewed by Cynthia Shang.) Refactor IO layer to allow for new compression formats, checksum types, and other capabilities using filters. (Reviewed by Cynthia Shang.) --- .travis.yml | 51 +- bin/pgbackrest | 33 +- doc/doc.pl | 18 +- doc/lib/BackRestDoc/Common/Doc.pm | 54 +- doc/lib/BackRestDoc/Common/DocConfig.pm | 3 +- doc/lib/BackRestDoc/Common/DocExecute.pm | 12 +- doc/lib/BackRestDoc/Common/DocManifest.pm | 16 +- .../BackRestDoc/Custom/DocCustomRelease.pm | 1 - doc/lib/BackRestDoc/Html/DocHtmlSite.pm | 11 +- doc/lib/BackRestDoc/Latex/DocLatex.pm | 8 +- doc/lib/BackRestDoc/Latex/DocLatexSection.pm | 1 - doc/lib/BackRestDoc/Markdown/DocMarkdown.pm | 8 +- doc/release.pl | 8 +- doc/xml/reference.xml | 25 +- doc/xml/release.xml | 16 + doc/xml/user-guide.xml | 15 +- lib/pgBackRest/Archive/Archive.pm | 17 +- lib/pgBackRest/Archive/ArchiveCommon.pm | 25 +- lib/pgBackRest/Archive/ArchiveGet.pm | 40 +- lib/pgBackRest/Archive/ArchiveInfo.pm | 101 +- lib/pgBackRest/Archive/ArchivePush.pm | 30 +- lib/pgBackRest/Archive/ArchivePushAsync.pm | 21 +- lib/pgBackRest/Archive/ArchivePushFile.pm | 67 +- lib/pgBackRest/Backup/Backup.pm | 538 +++--- lib/pgBackRest/Backup/Common.pm | 42 +- lib/pgBackRest/Backup/File.pm | 225 +-- lib/pgBackRest/Backup/Filter/PageChecksum.pm | 196 +++ lib/pgBackRest/Backup/Info.pm | 63 +- lib/pgBackRest/Check/Check.pm | 32 +- lib/pgBackRest/Common/Exception.pm | 4 + lib/pgBackRest/Common/Ini.pm | 105 +- lib/pgBackRest/Common/Io/Base.pm | 126 ++ lib/pgBackRest/Common/Io/Buffered.pm | 266 +++ lib/pgBackRest/Common/Io/Handle.pm | 157 ++ lib/pgBackRest/Common/Io/Process.pm | 188 ++ lib/pgBackRest/Common/Lock.pm | 4 +- lib/pgBackRest/Common/Log.pm | 25 +- lib/pgBackRest/Common/String.pm | 6 +- lib/pgBackRest/Config/Config.pm | 170 +- lib/pgBackRest/Config/ConfigHelpData.pm | 45 +- lib/pgBackRest/Db.pm | 31 +- lib/pgBackRest/Expire.pm | 88 +- lib/pgBackRest/File.pm | 1480 ---------------- lib/pgBackRest/FileCommon.pm | 1143 ------------- lib/pgBackRest/Info.pm | 47 +- lib/pgBackRest/Manifest.pm | 40 +- .../Protocol/{Common => Base}/Master.pm | 81 +- .../Protocol/{Common => Base}/Minion.pm | 81 +- lib/pgBackRest/Protocol/Command/Master.pm | 22 +- lib/pgBackRest/Protocol/Command/Minion.pm | 22 +- lib/pgBackRest/Protocol/Common/Common.pm | 735 -------- lib/pgBackRest/Protocol/Common/Io/Handle.pm | 462 ----- lib/pgBackRest/Protocol/Common/Io/Process.pm | 214 --- lib/pgBackRest/Protocol/Helper.pm | 232 ++- lib/pgBackRest/Protocol/Local/Master.pm | 8 +- lib/pgBackRest/Protocol/Local/Minion.pm | 38 +- lib/pgBackRest/Protocol/Local/Process.pm | 4 +- lib/pgBackRest/Protocol/Remote/Master.pm | 5 +- lib/pgBackRest/Protocol/Remote/Minion.pm | 77 +- lib/pgBackRest/Protocol/Storage/File.pm | 151 ++ lib/pgBackRest/Protocol/Storage/Helper.pm | 220 +++ lib/pgBackRest/Protocol/Storage/Remote.pm | 315 ++++ lib/pgBackRest/Restore.pm | 151 +- lib/pgBackRest/RestoreFile.pm | 84 +- lib/pgBackRest/Stanza.pm | 357 ++-- lib/pgBackRest/Storage/Base.pm | 295 ++++ lib/pgBackRest/Storage/Cifs/Driver.pm | 54 + lib/pgBackRest/Storage/Filter/Gzip.pm | 263 +++ lib/pgBackRest/Storage/Filter/Sha.pm | 123 ++ lib/pgBackRest/Storage/Helper.pm | 130 ++ lib/pgBackRest/Storage/Local.pm | 773 +++++++++ lib/pgBackRest/Storage/Posix/Driver.pm | 1000 +++++++++++ lib/pgBackRest/Storage/Posix/FileRead.pm | 104 ++ lib/pgBackRest/Storage/Posix/FileWrite.pm | 192 +++ test/Vagrantfile | 5 +- test/expect/archive-get-001.log | 45 +- test/expect/archive-get-002.log | 93 +- test/expect/archive-get-003.log | 45 +- test/expect/archive-get-004.log | 93 +- test/expect/archive-get-005.log | 41 +- test/expect/archive-get-006.log | 79 +- test/expect/archive-get-007.log | 41 +- test/expect/archive-get-008.log | 79 +- test/expect/archive-push-001.log | 744 ++++---- test/expect/archive-push-002.log | 105 +- test/expect/archive-push-003.log | 737 ++++---- test/expect/archive-push-004.log | 96 +- test/expect/archive-push-005.log | 643 ++++--- test/expect/archive-push-006.log | 105 +- test/expect/archive-push-007.log | 636 ++++--- test/expect/archive-push-008.log | 96 +- test/expect/archive-stop-001.log | 6 +- test/expect/archive-stop-002.log | 6 +- test/expect/archive-stop-003.log | 6 +- test/expect/archive-stop-004.log | 6 +- test/expect/archive-stop-005.log | 6 +- test/expect/archive-stop-006.log | 6 +- test/expect/expire-expire-001.log | 76 +- test/expect/expire-expire-002.log | 53 +- test/expect/full-real-001.log | 20 +- test/expect/full-real-002.log | 14 +- test/expect/full-real-003.log | 18 +- test/expect/full-real-004.log | 18 +- test/expect/full-real-005.log | 41 +- test/expect/full-real-006.log | 41 +- test/expect/full-real-007.log | 88 +- test/expect/full-real-008.log | 28 +- test/expect/full-real-009.log | 28 +- test/expect/full-real-010.log | 28 +- test/expect/full-real-011.log | 62 +- test/expect/full-synthetic-001.log | 1293 ++++++++------ test/expect/full-synthetic-002.log | 1203 +++++++------ test/expect/full-synthetic-003.log | 1047 +++++++----- test/expect/full-synthetic-004.log | 1203 +++++++------ test/expect/full-synthetic-005.log | 1510 ++++++++++------- test/expect/full-synthetic-006.log | 1288 ++++++++------ test/expect/full-synthetic-007.log | 1132 +++++++----- test/expect/full-synthetic-008.log | 1288 ++++++++------ test/expect/help-help-001.log | 2 + test/expect/stanza-create-001.log | 125 +- test/expect/stanza-create-002.log | 122 +- test/expect/stanza-upgrade-001.log | 38 +- test/expect/stanza-upgrade-002.log | 54 +- test/lib/pgBackRestTest/Common/CiTest.pm | 41 +- .../pgBackRestTest/Common/ContainerTest.pm | 88 +- test/lib/pgBackRestTest/Common/DefineTest.pm | 208 ++- test/lib/pgBackRestTest/Common/ExecuteTest.pm | 23 +- test/lib/pgBackRestTest/Common/FileTest.pm | 167 +- .../pgBackRestTest/Common/HostGroupTest.pm | 10 +- test/lib/pgBackRestTest/Common/HostTest.pm | 5 + test/lib/pgBackRestTest/Common/JobTest.pm | 5 +- test/lib/pgBackRestTest/Common/LogTest.pm | 37 +- test/lib/pgBackRestTest/Common/RunTest.pm | 41 +- test/lib/pgBackRestTest/Common/VmTest.pm | 9 +- test/lib/pgBackRestTest/Env/ExpireEnvTest.pm | 76 +- .../pgBackRestTest/Env/Host/HostBackupTest.pm | 209 +-- .../pgBackRestTest/Env/Host/HostBaseTest.pm | 6 +- .../Env/Host/HostDbCommonTest.pm | 86 +- .../Env/Host/HostDbSyntheticTest.pm | 22 +- .../lib/pgBackRestTest/Env/Host/HostDbTest.pm | 8 +- test/lib/pgBackRestTest/Env/HostEnvTest.pm | 57 +- .../Module/Archive/ArchiveGetTest.pm | 63 +- .../Module/Archive/ArchivePushTest.pm | 104 +- .../Module/Archive/ArchivePushUnitTest.pm | 248 ++- .../Module/Archive/ArchiveStopTest.pm | 38 +- .../Module/Archive/ArchiveUnitTest.pm | 59 +- .../Module/Backup/BackupInfoUnitTest.pm | 33 +- .../Module/Backup/BackupUnitTest.pm | 71 +- .../Module/Common/CommonIniTest.pm | 138 +- .../Module/Common/CommonIoBufferedTest.pm | 259 +++ .../Module/Common/CommonIoHandleTest.pm | 216 +++ .../CommonIoProcessTest.pm} | 49 +- .../Module/Config/ConfigConfigTest.pm | 41 +- .../Module/Config/ConfigOptionTest.pm | 6 +- .../Module/Config/ConfigUnitTest.pm | 2 +- .../Module/Expire/ExpireExpireTest.pm | 25 +- .../Module/File/FileCommonTest.pm | 125 -- .../Module/File/FileCompressTest.pm | 101 -- .../Module/File/FileCopyTest.pm | 244 --- .../Module/File/FileExistsTest.pm | 91 - .../Module/File/FileHashTest.pm | 100 -- .../Module/File/FileListTest.pm | 124 -- .../Module/File/FileManifestTest.pm | 215 --- .../Module/File/FileMoveTest.pm | 107 -- .../Module/File/FileOwnerTest.pm | 105 -- .../Module/File/FilePathCreateTest.pm | 115 -- .../Module/File/FileRemoveTest.pm | 112 -- .../Module/File/FileStatTest.pm | 64 - .../Module/File/FileUnitTest.pm | 137 -- .../Module/File/FileWaitTest.pm | 71 - .../Module/Full/FullRealTest.pm | 73 +- .../Module/Full/FullSyntheticTest.pm | 126 +- .../Module/Info/InfoUnitTest.pm | 50 +- .../Protocol/ProtocolCommonMinionTest.pm | 132 ++ .../Module/Stanza/StanzaCreateTest.pm | 103 +- .../Module/Stanza/StanzaUnitTest.pm | 287 +++- .../Module/Stanza/StanzaUpgradeTest.pm | 66 +- .../Module/Storage/StorageFilterGzipTest.pm | 197 +++ .../Module/Storage/StorageFilterShaTest.pm | 105 ++ .../Module/Storage/StorageHelperTest.pm | 147 ++ .../Module/Storage/StorageLocalTest.pm | 363 ++++ .../Module/Storage/StoragePosixTest.pm | 389 +++++ test/test.pl | 81 +- 183 files changed, 17880 insertions(+), 14734 deletions(-) create mode 100644 lib/pgBackRest/Backup/Filter/PageChecksum.pm create mode 100644 lib/pgBackRest/Common/Io/Base.pm create mode 100644 lib/pgBackRest/Common/Io/Buffered.pm create mode 100644 lib/pgBackRest/Common/Io/Handle.pm create mode 100644 lib/pgBackRest/Common/Io/Process.pm delete mode 100644 lib/pgBackRest/File.pm delete mode 100644 lib/pgBackRest/FileCommon.pm rename lib/pgBackRest/Protocol/{Common => Base}/Master.pm (80%) rename lib/pgBackRest/Protocol/{Common => Base}/Minion.pm (72%) delete mode 100644 lib/pgBackRest/Protocol/Common/Common.pm delete mode 100644 lib/pgBackRest/Protocol/Common/Io/Handle.pm delete mode 100644 lib/pgBackRest/Protocol/Common/Io/Process.pm create mode 100644 lib/pgBackRest/Protocol/Storage/File.pm create mode 100644 lib/pgBackRest/Protocol/Storage/Helper.pm create mode 100644 lib/pgBackRest/Protocol/Storage/Remote.pm create mode 100644 lib/pgBackRest/Storage/Base.pm create mode 100644 lib/pgBackRest/Storage/Cifs/Driver.pm create mode 100644 lib/pgBackRest/Storage/Filter/Gzip.pm create mode 100644 lib/pgBackRest/Storage/Filter/Sha.pm create mode 100644 lib/pgBackRest/Storage/Helper.pm create mode 100644 lib/pgBackRest/Storage/Local.pm create mode 100644 lib/pgBackRest/Storage/Posix/Driver.pm create mode 100644 lib/pgBackRest/Storage/Posix/FileRead.pm create mode 100644 lib/pgBackRest/Storage/Posix/FileWrite.pm create mode 100644 test/lib/pgBackRestTest/Module/Common/CommonIoBufferedTest.pm create mode 100644 test/lib/pgBackRestTest/Module/Common/CommonIoHandleTest.pm rename test/lib/pgBackRestTest/Module/{File/FileLinkTest.pm => Common/CommonIoProcessTest.pm} (55%) delete mode 100644 test/lib/pgBackRestTest/Module/File/FileCommonTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileCompressTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileCopyTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileExistsTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileHashTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileListTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileManifestTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileMoveTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileOwnerTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FilePathCreateTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileRemoveTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileStatTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileUnitTest.pm delete mode 100644 test/lib/pgBackRestTest/Module/File/FileWaitTest.pm create mode 100644 test/lib/pgBackRestTest/Module/Protocol/ProtocolCommonMinionTest.pm create mode 100644 test/lib/pgBackRestTest/Module/Storage/StorageFilterGzipTest.pm create mode 100644 test/lib/pgBackRestTest/Module/Storage/StorageFilterShaTest.pm create mode 100644 test/lib/pgBackRestTest/Module/Storage/StorageHelperTest.pm create mode 100644 test/lib/pgBackRestTest/Module/Storage/StorageLocalTest.pm create mode 100644 test/lib/pgBackRestTest/Module/Storage/StoragePosixTest.pm diff --git a/.travis.yml b/.travis.yml index a70b2000d..71a974d3b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,43 +13,46 @@ services: - docker env: - - PGB_TEST_VM="co6" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=common --module=help --module=config --module=file --module=info --module=stanza --module=archive --module=backup --module=expire" - - PGB_TEST_VM="co6" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=full --test=synthetic --no-lint --no-package" + - PGB_TEST_VM="co6" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=common --module=help --module=config --module=storage --module=protocol --module=info --module=archive --module=backup --module=expire --module=stanza" + - PGB_TEST_VM="co6" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=full --test=synthetic --no-lint --no-package" - PGB_TEST_VM="co6" PGB_BUILD_PARAM="--db=9.1" PGB_TEST_PARAM="--module=full --test=real --db=9.1 --process-max=2 --no-lint --no-package" - PGB_TEST_VM="co6" PGB_BUILD_PARAM="--db=9.0" PGB_TEST_PARAM="--module=full --test=real --db=9.0 --process-max=2 --no-lint --no-package" - - PGB_TEST_VM="u16" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=common --module=help --module=config --module=file --module=info --module=stanza --module=archive --module=backup --module=expire --no-lint" - - PGB_TEST_VM="u16" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=full --test=synthetic --no-lint --no-package" + - PGB_TEST_VM="u16" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=common --module=help --module=config --module=storage --module=protocol --module=info --module=archive --module=backup --module=expire --module=stanza --no-lint" + - PGB_TEST_VM="u16" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=full --test=synthetic --no-lint --no-package" - PGB_TEST_VM="u16" PGB_BUILD_PARAM="--db=9.4" PGB_TEST_PARAM="--module=full --test=real --db=9.4 --process-max=2 --no-lint --no-package" - - PGB_TEST_VM="d8" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=common --module=help --module=config --module=file --module=info --module=stanza --module=archive --module=backup --module=expire --no-lint" - - PGB_TEST_VM="d8" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=full --test=synthetic --no-lint --no-package" + - PGB_TEST_VM="d8" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=common --module=help --module=config --module=storage --module=protocol --module=info --module=archive --module=backup --module=expire --module=stanza --no-lint" + - PGB_TEST_VM="d8" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=full --test=synthetic --no-lint --no-package" - PGB_TEST_VM="d8" PGB_BUILD_PARAM="--db=9.3" PGB_TEST_PARAM="--module=full --test=real --db=9.3 --process-max=2 --no-lint --no-package" - PGB_TEST_VM="d8" PGB_BUILD_PARAM="--db=8.4" PGB_TEST_PARAM="--module=full --test=real --db=8.4 --process-max=2 --no-lint --no-package" - - PGB_TEST_VM="co7" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=common --module=help --module=config --module=file --module=info --module=stanza --module=archive --module=backup --module=expire --no-lint" - - PGB_TEST_VM="co7" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=full --test=synthetic --no-lint --no-package" + - PGB_TEST_VM="co7" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=common --module=help --module=config --module=storage --module=protocol --module=info --module=archive --module=backup --module=expire --module=stanza --no-lint" + - PGB_TEST_VM="co7" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=full --test=synthetic --no-lint --no-package" - PGB_TEST_VM="co7" PGB_BUILD_PARAM="--db=9.6" PGB_TEST_PARAM="--module=full --test=real --db=9.6 --process-max=2 --no-lint --no-package" - PGB_TEST_VM="co7" PGB_BUILD_PARAM="--db=9.5" PGB_TEST_PARAM="--module=full --test=real --db=9.5 --process-max=2 --no-lint --no-package" - - PGB_TEST_VM="u14" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=common --module=help --module=config --module=file --module=info --module=stanza --module=archive --module=backup --module=expire --no-lint" - - PGB_TEST_VM="u14" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=full --test=synthetic --no-lint --no-package" + - PGB_TEST_VM="u14" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=common --module=help --module=config --module=storage --module=protocol --module=info --module=archive --module=backup --module=expire --module=stanza --no-lint" + - PGB_TEST_VM="u14" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=full --test=synthetic --no-lint --no-package" - PGB_TEST_VM="u14" PGB_BUILD_PARAM="--db=9.2" PGB_TEST_PARAM="--module=full --test=real --db=9.2 --process-max=2 --no-lint --no-package" - - PGB_TEST_VM="u12" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=common --module=help --module=config --module=file --module=info --module=stanza --module=archive --module=backup --module=expire --no-lint" - - PGB_TEST_VM="u12" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--module=full --test=synthetic --no-lint --no-package" + - PGB_TEST_VM="u12" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=common --module=help --module=config --module=storage --module=protocol --module=info --module=archive --module=backup --module=expire --module=stanza --no-lint" + - PGB_TEST_VM="u12" PGB_BUILD_PARAM="--db=none" PGB_TEST_PARAM="--vm-max=2 --module=full --test=synthetic --no-lint --no-package" - PGB_TEST_VM="u12" PGB_BUILD_PARAM="--db=8.3" PGB_TEST_PARAM="--module=full --test=real --db=8.3 --process-max=2 --no-lint --no-package" before_install: - - sudo apt-get -qq update - - sudo apt-get install libxml-checker-perl libdbd-pg-perl libperl-critic-perl libtemplate-perl libpod-coverage-perl libtest-differences-perl libhtml-parser-perl lintian debhelper txt2man devscripts libjson-perl - - git clone https://anonscm.debian.org/git/pkg-perl/packages/libdevel-cover-perl.git ~/libdevel-cover-perl - - cd ~/libdevel-cover-perl && git checkout debian/1.23-2 && debuild -i -us -uc -b - - sudo dpkg -i ~/libdevel-cover-perl_1.23-2_amd64.deb - - /usr/bin/cover -v + - sudo apt-get -qq update && sudo apt-get install libxml-checker-perl libdbd-pg-perl libperl-critic-perl libtemplate-perl libpod-coverage-perl libtest-differences-perl libhtml-parser-perl lintian debhelper txt2man devscripts libjson-perl libio-socket-ssl-perl libxml-libxml-perl python-pip + - | + # Build Devel::Cover + git clone https://anonscm.debian.org/git/pkg-perl/packages/libdevel-cover-perl.git ~/libdevel-cover-perl + cd ~/libdevel-cover-perl && git checkout debian/1.23-2 && debuild -i -us -uc -b + sudo dpkg -i ~/libdevel-cover-perl_1.23-2_amd64.deb + /usr/bin/cover -v install: - - sudo adduser --ingroup=${USER?} --disabled-password --gecos "" backrest - - umask 0022 - - cd ~ && pwd && whoami && umask && groups - - mv ${TRAVIS_BUILD_DIR?} pgbackrest - - rm -rf ${TRAVIS_BUILD_DIR?} + - | + # User Configuration + sudo adduser --ingroup=${USER?} --disabled-password --gecos "" backrest + umask 0022 + cd ~ && pwd && whoami && umask && groups + mv ${TRAVIS_BUILD_DIR?} pgbackrest + rm -rf ${TRAVIS_BUILD_DIR?} - pgbackrest/test/test.pl --vm-build --vm=${PGB_TEST_VM?} ${PGB_BUILD_PARAM?} script: - - pgbackrest/test/test.pl --vm-host=u14 --vm-max=2 --vm=${PGB_TEST_VM?} ${PGB_TEST_PARAM?} + - pgbackrest/test/test.pl --vm-host=u14 --vm=${PGB_TEST_VM?} ${PGB_TEST_PARAM?} diff --git a/bin/pgbackrest b/bin/pgbackrest index e610d6b0e..2690fd684 100755 --- a/bin/pgbackrest +++ b/bin/pgbackrest @@ -23,8 +23,7 @@ use pgBackRest::Common::Exit; use pgBackRest::Common::Lock; use pgBackRest::Common::Log; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::Protocol::Common::Common; +use pgBackRest::Storage::Local; use pgBackRest::Protocol::Helper; #################################################################################################################################### @@ -64,7 +63,6 @@ local $EVAL_ERROR = undef; eval optionSet(OPTION_LOG_LEVEL_STDERR, PROTOCOL, true); logLevelSet(OFF, OFF, optionGet(OPTION_LOG_LEVEL_STDERR)); - # Check that the repo path exists if this is a backup remote if (optionTest(OPTION_TYPE, BACKUP) && !-e optionGet(OPTION_REPO_PATH)) { confess &log(ERROR, 'repo-path \'' . optionGet(OPTION_REPO_PATH) . '\' does not exist', ERROR_PATH_MISSING); @@ -75,18 +73,12 @@ local $EVAL_ERROR = undef; eval pgBackRest::Protocol::Remote::Minion->import(); # Create the remote object - my $oRemote = new pgBackRest::Protocol::Remote::Minion - ( - optionGet(OPTION_COMMAND), - optionGet(OPTION_BUFFER_SIZE), - optionGet(OPTION_COMPRESS_LEVEL), - optionGet(OPTION_COMPRESS_LEVEL_NETWORK), - optionGet(OPTION_PROTOCOL_TIMEOUT) - ); + my $oRemote = new pgBackRest::Protocol::Remote::Minion(optionGet(OPTION_BUFFER_SIZE), optionGet(OPTION_PROTOCOL_TIMEOUT)); # Acquire a remote lock (except for commands that are read-only or local processes) if (!(optionTest(OPTION_COMMAND, CMD_ARCHIVE_GET) || optionTest(OPTION_COMMAND, CMD_INFO) || - optionTest(OPTION_COMMAND, CMD_RESTORE) || optionTest(OPTION_COMMAND, CMD_CHECK) || optionTest(OPTION_PROCESS))) + optionTest(OPTION_COMMAND, CMD_RESTORE) || optionTest(OPTION_COMMAND, CMD_CHECK) || + optionTest(OPTION_COMMAND, CMD_LOCAL))) { lockAcquire(optionGet(OPTION_COMMAND), undef, true); } @@ -109,18 +101,12 @@ local $EVAL_ERROR = undef; eval pgBackRest::Protocol::Local::Minion->import(); # Create the local object - my $oLocal = new pgBackRest::Protocol::Local::Minion(optionGet(OPTION_COMMAND)); + my $oLocal = new pgBackRest::Protocol::Local::Minion(); # Process local requests exitSafe($oLocal->process()); } - # Check that the repo path exists - if (isRepoLocal() && !-e optionGet(OPTION_REPO_PATH)) - { - confess &log(ERROR, 'repo-path \'' . optionGet(OPTION_REPO_PATH) . '\' does not exist', ERROR_PATH_MISSING); - } - ################################################################################################################################ # Archive commands must run on the db host ################################################################################################################################ @@ -179,6 +165,15 @@ local $EVAL_ERROR = undef; eval exitSafe(0); } + # Check that the repo path exists + require pgBackRest::Protocol::Storage::Helper; + pgBackRest::Protocol::Storage::Helper->import(); + + if (isRepoLocal() && !storageRepo()->pathExists('')) + { + confess &log(ERROR, 'repo-path \'' . optionGet(OPTION_REPO_PATH) . '\' does not exist', ERROR_PATH_MISSING); + } + ################################################################################################################################ # Process info command ################################################################################################################################ diff --git a/doc/doc.pl b/doc/doc.pl index 7adbc058a..80c08722f 100755 --- a/doc/doc.pl +++ b/doc/doc.pl @@ -20,8 +20,8 @@ use Pod::Usage qw(pod2usage); use Storable; use lib dirname($0) . '/lib'; -use lib dirname($0) . '/../lib'; -use lib dirname($0) . '/../test/lib'; +use lib dirname(dirname($0)) . '/lib'; +use lib dirname(dirname($0)) . '/test/lib'; use BackRestDoc::Common::Doc; use BackRestDoc::Common::DocConfig; @@ -35,7 +35,8 @@ use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Config::Config; -use pgBackRest::FileCommon; +use pgBackRest::Storage::Local; +use pgBackRest::Storage::Posix::Driver; use pgBackRest::Version; #################################################################################################################################### @@ -205,6 +206,9 @@ eval # Get the base path my $strBasePath = abs_path(dirname($0)); + my $oStorageDoc = new pgBackRest::Storage::Local( + $strBasePath, new pgBackRest::Storage::Posix::Driver({bFileSync => false, bPathSync => false})); + if (!defined($strDocPath)) { $strDocPath = $strBasePath; @@ -221,7 +225,8 @@ eval # Load the manifest my $oManifest = new BackRestDoc::Common::DocManifest( - \@stryKeyword, \@stryRequire, \@stryInclude, \@stryExclude, $oVariableOverride, $strDocPath, $bDeploy, $bCacheOnly); + $oStorageDoc, \@stryKeyword, \@stryRequire, \@stryInclude, \@stryExclude, $oVariableOverride, $strDocPath, $bDeploy, + $bCacheOnly); if (!$bNoCache) { @@ -276,8 +281,9 @@ eval } else { - filePathCreate("${strBasePath}/output/man", '0770', true, true); - fileStringWrite("${strBasePath}/output/man/" . lc(BACKREST_NAME) . '.1.txt', $oDocConfig->manGet($oManifest), false); + $oStorageDoc->pathCreate( + "${strBasePath}/output/man", {strMode => '0770', bIgnoreExists => true, bCreateParent => true}); + $oStorageDoc->put("${strBasePath}/output/man/" . lc(BACKREST_NAME) . '.1.txt', $oDocConfig->manGet($oManifest)); } } elsif ($strOutput eq 'html') diff --git a/doc/lib/BackRestDoc/Common/Doc.pm b/doc/lib/BackRestDoc/Common/Doc.pm index 722e3e569..11ae2829a 100644 --- a/doc/lib/BackRestDoc/Common/Doc.pm +++ b/doc/lib/BackRestDoc/Common/Doc.pm @@ -14,7 +14,6 @@ use XML::Checker::Parser; use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::FileCommon; #################################################################################################################################### # CONSTRUCTOR @@ -33,53 +32,44 @@ sub new ( my $strOperation, $self->{strFileName}, - my $bCached ) = logDebugParam ( __PACKAGE__ . '->new', \@_, {name => 'strFileName', required => false}, - {name => 'bCached', default => false} ); # Load the doc from a file if one has been defined if (defined($self->{strFileName})) { - if ($bCached) + my $oParser = XML::Checker::Parser->new(ErrorContext => 2, Style => 'Tree'); + $oParser->set_sgml_search_path(dirname(dirname($0)) . '/doc/xml/dtd'); + + my $oTree; + + eval { - $self->oDoc = XMLin(fileStringRead($self->{strFileName})); - } - else - { - my $oParser = XML::Checker::Parser->new(ErrorContext => 2, Style => 'Tree'); - $oParser->set_sgml_search_path(dirname(dirname($0)) . '/doc/xml/dtd'); - - my $oTree; - - eval + local $XML::Checker::FAIL = sub { - local $XML::Checker::FAIL = sub - { - my $iCode = shift; + my $iCode = shift; - die XML::Checker::error_string($iCode, @_); - }; - - $oTree = $oParser->parsefile($self->{strFileName}); - - return true; - } - # Report any error that stopped parsing - or do - { - my $strException = $EVAL_ERROR; - $strException =~ s/at \/.*?$//s; # remove module line number - die "malformed xml in '$self->{strFileName}':\n" . trim($strException); + die XML::Checker::error_string($iCode, @_); }; - # Parse and build the doc - $self->{oDoc} = $self->build($self->parse(${$oTree}[0], ${$oTree}[1])); + $oTree = $oParser->parsefile($self->{strFileName}); + + return true; } + # Report any error that stopped parsing + or do + { + my $strException = $EVAL_ERROR; + $strException =~ s/at \/.*?$//s; # remove module line number + die "malformed xml in '$self->{strFileName}':\n" . trim($strException); + }; + + # Parse and build the doc + $self->{oDoc} = $self->build($self->parse(${$oTree}[0], ${$oTree}[1])); } # Else create a blank doc else diff --git a/doc/lib/BackRestDoc/Common/DocConfig.pm b/doc/lib/BackRestDoc/Common/DocConfig.pm index 8eff050ae..1412476da 100644 --- a/doc/lib/BackRestDoc/Common/DocConfig.pm +++ b/doc/lib/BackRestDoc/Common/DocConfig.pm @@ -15,7 +15,6 @@ use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Config::Config; use pgBackRest::Config::ConfigHelp; -use pgBackRest::FileCommon; use pgBackRest::Version; #################################################################################################################################### @@ -410,7 +409,7 @@ sub helpDataWrite "1;\n"; # Write the perl module into the lib path - fileStringWrite(dirname(dirname($0)) . '/lib/pgBackRest/Config/ConfigHelpData.pm', $strHelpData, false); + $oManifest->storage()->put(dirname(dirname($0)) . '/lib/pgBackRest/Config/ConfigHelpData.pm', $strHelpData); # Return from function and log return values if any logDebugReturn($strOperation); diff --git a/doc/lib/BackRestDoc/Common/DocExecute.pm b/doc/lib/BackRestDoc/Common/DocExecute.pm index f32c5c5c1..51b3f76b3 100644 --- a/doc/lib/BackRestDoc/Common/DocExecute.pm +++ b/doc/lib/BackRestDoc/Common/DocExecute.pm @@ -18,7 +18,6 @@ use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Config::Config; -use pgBackRest::FileCommon; use pgBackRest::Version; use pgBackRestTest::Common::ExecuteTest; @@ -562,7 +561,7 @@ sub backrestConfig my $strLocalFile = '/home/' . DOC_USER . '/data/pgbackrest.conf'; # Save the ini file - fileStringWrite($strLocalFile, iniRender($self->{config}{$strHostName}{$$hCacheKey{file}}, true)); + $self->{oManifest}->storage()->put($strLocalFile, iniRender($self->{config}{$strHostName}{$$hCacheKey{file}}, true)); $oHost->copyTo( $strLocalFile, $$hCacheKey{file}, @@ -579,10 +578,10 @@ sub backrestConfig delete($$oConfigClean{&CONFIG_SECTION_GLOBAL}); } - fileStringWrite("${strLocalFile}.clean", iniRender($oConfigClean, true)); + $self->{oManifest}->storage()->put("${strLocalFile}.clean", iniRender($oConfigClean, true)); # Push config file into the cache - $strConfig = fileStringRead("${strLocalFile}.clean"); + $strConfig = ${$self->{oManifest}->storage()->get("${strLocalFile}.clean")}; my @stryConfig = undef; @@ -662,7 +661,8 @@ sub postgresConfig if (!defined(${$self->{'pg-config'}}{$strHostName}{$$hCacheKey{file}}{base}) && $self->{bExe}) { - ${$self->{'pg-config'}}{$strHostName}{$$hCacheKey{file}}{base} = fileStringRead($strLocalFile); + ${$self->{'pg-config'}}{$strHostName}{$$hCacheKey{file}}{base} = + ${$self->{oManifest}->storage()->get($strLocalFile)}; } my $oConfigHash = $self->{'pg-config'}{$strHostName}{$$hCacheKey{file}}; @@ -712,7 +712,7 @@ sub postgresConfig # Save the conf file if ($self->{bExe}) { - fileStringWrite($strLocalFile, $$oConfigHash{base} . + $self->{oManifest}->storage()->put($strLocalFile, $$oConfigHash{base} . (defined($strConfig) ? "\n# pgBackRest Configuration\n${strConfig}\n" : '')); $oHost->copyTo($strLocalFile, $$hCacheKey{file}, 'postgres:postgres', '640'); diff --git a/doc/lib/BackRestDoc/Common/DocManifest.pm b/doc/lib/BackRestDoc/Common/DocManifest.pm index 40419fe49..8abc9f888 100644 --- a/doc/lib/BackRestDoc/Common/DocManifest.pm +++ b/doc/lib/BackRestDoc/Common/DocManifest.pm @@ -15,7 +15,6 @@ use JSON::PP; use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::FileCommon; #################################################################################################################################### # File constants @@ -56,6 +55,7 @@ sub new # Assign function parameters, defaults, and log debug info ( my $strOperation, + $self->{oStorage}, $self->{stryKeyword}, $self->{stryRequire}, $self->{stryInclude}, @@ -68,6 +68,7 @@ sub new logDebugParam ( __PACKAGE__ . '->new', \@_, + {name => 'oStorage'}, {name => 'stryKeyword'}, {name => 'stryRequire'}, {name => 'stryInclude'}, @@ -627,16 +628,16 @@ sub cacheRead my $strCacheFile = $self->{bDeploy} ? $self->{strExeCacheDeploy} : $self->{strExeCacheLocal}; - if (!fileExists($strCacheFile) && !$self->{bDeploy}) + if (!$self->storage()->exists($strCacheFile) && !$self->{bDeploy}) { $strCacheFile = $self->{strExeCacheDeploy}; } - if (fileExists($strCacheFile)) + if ($self->storage()->exists($strCacheFile)) { my ($strKeyword, $strRequire) = $self->cacheKey(); my $oJSON = JSON::PP->new()->allow_nonref(); - $self->{hCache} = $oJSON->decode(fileStringRead($strCacheFile)); + $self->{hCache} = $oJSON->decode(${$self->storage()->get($strCacheFile)}); foreach my $strSource (sort(keys(%{${$self->{oManifest}}{source}}))) { @@ -681,7 +682,7 @@ sub cacheWrite if (defined($self->{hCache})) { my $oJSON = JSON::PP->new()->canonical()->allow_nonref()->pretty(); - fileStringWrite($strCacheFile, $oJSON->encode($self->{hCache}), false); + $self->storage()->put($strCacheFile, $oJSON->encode($self->{hCache})); } # Return from function and log return values if any @@ -719,4 +720,9 @@ sub cacheReset return logDebugReturn($strOperation); } +#################################################################################################################################### +# Getters +#################################################################################################################################### +sub storage {shift->{oStorage}}; + 1; diff --git a/doc/lib/BackRestDoc/Custom/DocCustomRelease.pm b/doc/lib/BackRestDoc/Custom/DocCustomRelease.pm index a4a1b3928..5afd9357b 100644 --- a/doc/lib/BackRestDoc/Custom/DocCustomRelease.pm +++ b/doc/lib/BackRestDoc/Custom/DocCustomRelease.pm @@ -14,7 +14,6 @@ use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Config::Config; use pgBackRest::Config::ConfigHelp; -use pgBackRest::FileCommon; use BackRestDoc::Common::DocRender; diff --git a/doc/lib/BackRestDoc/Html/DocHtmlSite.pm b/doc/lib/BackRestDoc/Html/DocHtmlSite.pm index 912b07249..532849330 100644 --- a/doc/lib/BackRestDoc/Html/DocHtmlSite.pm +++ b/doc/lib/BackRestDoc/Html/DocHtmlSite.pm @@ -19,7 +19,6 @@ use Storable qw(dclone); use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::FileCommon; use pgBackRest::Version; use pgBackRestTest::Common::ExecuteTest; @@ -138,8 +137,8 @@ sub process { $strHtml = $self->{oManifest}->variableReplace( new BackRestDoc::Html::DocHtmlPage( - $self->{oManifest}, $strPageId, $bMenu, $self->{bExe}, $bCompact, fileStringRead($self->{strCssFile}), - $bPretty)->process()); + $self->{oManifest}, $strPageId, $bMenu, $self->{bExe}, $bCompact, + ${$self->{oManifest}->storage()->get($self->{strCssFile})}, $bPretty)->process()); return true; } @@ -154,8 +153,8 @@ sub process $strHtml = $self->{oManifest}->variableReplace( new BackRestDoc::Html::DocHtmlPage( - $self->{oManifest}, $strPageId, $bMenu, $self->{bExe}, $bCompact, fileStringRead($self->{strCssFile}), - $bPretty)->process()); + $self->{oManifest}, $strPageId, $bMenu, $self->{bExe}, $bCompact, + ${$self->{oManifest}->storage()->get($self->{strCssFile})}, $bPretty)->process()); } else { @@ -165,7 +164,7 @@ sub process # Save the html page my $strFile = "$self->{strHtmlPath}/" . (defined($$oRenderOut{file}) ? $$oRenderOut{file} : "${strPageId}.html"); - fileStringWrite($strFile, $strHtml, false); + $self->{oManifest}->storage()->put($strFile, $strHtml); } # Return from function and log return values if any diff --git a/doc/lib/BackRestDoc/Latex/DocLatex.pm b/doc/lib/BackRestDoc/Latex/DocLatex.pm index cb98b1ffd..81443e3fd 100644 --- a/doc/lib/BackRestDoc/Latex/DocLatex.pm +++ b/doc/lib/BackRestDoc/Latex/DocLatex.pm @@ -19,7 +19,6 @@ use Storable qw(dclone); use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::FileCommon; use pgBackRest::Version; use pgBackRestTest::Common::ExecuteTest; @@ -98,9 +97,10 @@ sub process copy("$self->{oManifest}{strDocPath}/resource/latex/cds-logo.eps", "$self->{strLatexPath}/logo.eps") or confess &log(ERROR, "unable to copy logo"); - my $strLatex = $self->{oManifest}->variableReplace(fileStringRead($self->{strPreambleFile}), 'latex') . "\n"; + my $strLatex = $self->{oManifest}->variableReplace( + ${$self->{oManifest}->storage()->get($self->{strPreambleFile})}, 'latex') . "\n"; - # !!! Temp hack for underscores in filename + # ??? Temp hack for underscores in filename $strLatex =~ s/pgaudit\\\_doc/pgaudit\_doc/g; foreach my $strPageId ($self->{oManifest}->renderOutList(RENDER_TYPE_PDF)) @@ -143,7 +143,7 @@ sub process my $strLatexFileName = $self->{oManifest}->variableReplace("$self->{strLatexPath}/" . $$oRender{file} . '.tex'); - fileStringWrite($strLatexFileName, $strLatex, false); + $self->{oManifest}->storage()->put($strLatexFileName, $strLatex); executeTest("pdflatex -output-directory=$self->{strLatexPath} -shell-escape $strLatexFileName", {bSuppressStdErr => true}); diff --git a/doc/lib/BackRestDoc/Latex/DocLatexSection.pm b/doc/lib/BackRestDoc/Latex/DocLatexSection.pm index cd43a5849..c7cb0e6a1 100644 --- a/doc/lib/BackRestDoc/Latex/DocLatexSection.pm +++ b/doc/lib/BackRestDoc/Latex/DocLatexSection.pm @@ -15,7 +15,6 @@ use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Config::ConfigHelp; -use pgBackRest::FileCommon; use BackRestDoc::Common::DocManifest; diff --git a/doc/lib/BackRestDoc/Markdown/DocMarkdown.pm b/doc/lib/BackRestDoc/Markdown/DocMarkdown.pm index 0893ee3d4..cc2ff6c4a 100644 --- a/doc/lib/BackRestDoc/Markdown/DocMarkdown.pm +++ b/doc/lib/BackRestDoc/Markdown/DocMarkdown.pm @@ -17,7 +17,6 @@ use Storable qw(dclone); use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::FileCommon; use pgBackRest::Version; use pgBackRestTest::Common::ExecuteTest; @@ -96,10 +95,9 @@ sub process &log(INFO, " render out: ${strRenderOutId}"); # Save the html page - fileStringWrite($strFile, - $self->{oManifest}->variableReplace((new BackRestDoc::Markdown::DocMarkdownRender($self->{oManifest}, - $strRenderOutId, $self->{bExe}))->process()), - false); + $self->{oManifest}->storage()->put( + $strFile, $self->{oManifest}->variableReplace((new BackRestDoc::Markdown::DocMarkdownRender($self->{oManifest}, + $strRenderOutId, $self->{bExe}))->process())); } # Return from function and log return values if any diff --git a/doc/release.pl b/doc/release.pl index 5473dcf28..c5166b2c7 100755 --- a/doc/release.pl +++ b/doc/release.pl @@ -35,7 +35,8 @@ use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Config::Config; -use pgBackRest::FileCommon; +use pgBackRest::Storage::Local; +use pgBackRest::Storage::Posix::Driver; use pgBackRest::Version; use pgBackRestTest::Common::ExecuteTest; @@ -123,6 +124,9 @@ eval my $strDocHtml = "${strDocPath}/output/html"; my $strDocExe = "${strDocPath}/doc.pl"; + my $oStorageDoc = new pgBackRest::Storage::Local( + $strDocPath, new pgBackRest::Storage::Posix::Driver({bFileSync => false, bPathSync => false})); + # Determine if this is a dev release my $bDev = BACKREST_VERSION =~ /dev$/; my $strVersion = $bDev ? 'dev' : BACKREST_VERSION; @@ -130,7 +134,7 @@ eval if ($bBuild) { # Remove permanent cache file - fileRemove("${strDocPath}/resource/exe.cache", true); + $oStorageDoc->remove("${strDocPath}/resource/exe.cache", {bIgnoreMissing => true}); # Remove all docker containers to get consistent IP address assignments executeTest('docker rm -f $(docker ps -a -q)', {bSuppressError => true}); diff --git a/doc/xml/reference.xml b/doc/xml/reference.xml index 37edcd53b..fb667b51c 100644 --- a/doc/xml/reference.xml +++ b/doc/xml/reference.xml @@ -218,17 +218,6 @@ 630 - - - Create convenience symlinks in repository. - - Creates the convenience link latest in the stanza directory and internal tablespace symlinks in each backup directory. The internal tablespace symlinks allow clusters to be brought up manually in-place using filesystem snapshots as long as the backup is not compressed. - - This option should be disabled when the repository is located on a filesystem that does not support symlinks. No functionality will be affected, but certain manual operations on the repository may be less convenient. - - n - - Repository path where WAL segments and backups stored. @@ -240,13 +229,17 @@ /backup/db/backrest - - - Sync directories in repository. + + + Type of storage used for the repository. - Syncs directories when writing to the repository. Not all file systems support directory syncs (e.g., NTFS) so this option allows them to be disabled. + The following repository types are supported: +
    +
  • cifs - Like posix, but disables links and directory fsyncs
  • +
  • posix - Posix-compliant file systems
  • +
- n + cifs
diff --git a/doc/xml/release.xml b/doc/xml/release.xml index 0eed6dafb..9861dd8e1 100644 --- a/doc/xml/release.xml +++ b/doc/xml/release.xml @@ -187,6 +187,22 @@ + + + + + +

Refactor storage layer to allow for new repository filesystems using drivers.

+
+ + + + + + +

Refactor IO layer to allow for new compression formats, checksum types, and other capabilities using filters.

+
+

Move modules in Protocol directory in subdirectories.

diff --git a/doc/xml/user-guide.xml b/doc/xml/user-guide.xml index e6ee55623..c469e8423 100644 --- a/doc/xml/user-guide.xml +++ b/doc/xml/user-guide.xml @@ -81,7 +81,7 @@ {[host-mount]} - ls -1 {[backrest-repo-path]}/backup/demo | tail -4 | head -1 + ls -1 {[backrest-repo-path]}/backup/demo | tail -5 | head -1 Important Data @@ -697,7 +697,7 @@ Revoke write privileges in the <backrest/> repository and attempt a backup - chmod 550 {[backrest-repo-path]}/temp + chmod 550 {[backrest-repo-path]}/backup/{[postgres-cluster-demo]}/ @@ -713,7 +713,7 @@ Restore write privileges in the <backrest/> repository and attempt a backup - chmod 750 {[backrest-repo-path]}/temp + chmod 750 {[backrest-repo-path]}/backup/{[postgres-cluster-demo]}/ @@ -1384,8 +1384,6 @@ {[db-path]} - {[backrest-repo-path]} - {[host-backup]} backrest @@ -1634,7 +1632,7 @@ {[project-exe]} {[dash]}-stanza={[postgres-cluster-demo]} backup - remote process terminated on [^ ]+ host: stop file exists for all stanzas + process .* terminated unexpectedly.*: stop file exists for all stanzas @@ -1675,7 +1673,7 @@ {[project-exe]} {[dash]}-stanza={[postgres-cluster-demo]} backup - remote process terminated on [^ ]+ host: stop file exists for stanza demo + process .* terminated unexpectedly.*: stop file exists for stanza demo @@ -1759,7 +1757,6 @@ {[db-path]} - {[backrest-repo-path]} {[host-backup]} standby_mode=on @@ -2081,7 +2078,7 @@ -
+
Upgrading <postgres/> diff --git a/lib/pgBackRest/Archive/Archive.pm b/lib/pgBackRest/Archive/Archive.pm index dd76314b0..33ae8efaf 100644 --- a/lib/pgBackRest/Archive/Archive.pm +++ b/lib/pgBackRest/Archive/Archive.pm @@ -19,8 +19,9 @@ use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::Protocol::Common::Common; +use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; use pgBackRest::Version; #################################################################################################################################### @@ -64,7 +65,6 @@ sub getCheck my ( $strOperation, - $oFile, $strDbVersion, $ullDbSysId, $strWalFile, @@ -72,7 +72,6 @@ sub getCheck logDebugParam ( __PACKAGE__ . '->getCheck', \@_, - {name => 'oFile'}, {name => 'strDbVersion', required => false}, {name => 'ullDbSysId', required => false}, {name => 'strWalFile', required => false}, @@ -88,20 +87,22 @@ sub getCheck ($strDbVersion, my $iControlVersion, my $iCatalogVersion, $ullDbSysId) = dbMasterGet()->info(); } - if ($oFile->isRemote(PATH_BACKUP_ARCHIVE)) + # Get db info from the repo + if (!isRepoLocal()) { - ($strArchiveId, $strArchiveFile) = $oFile->{oProtocol}->cmdExecute( + ($strArchiveId, $strArchiveFile) = protocolGet(BACKUP)->cmdExecute( OP_ARCHIVE_GET_CHECK, [$strDbVersion, $ullDbSysId, $strWalFile], true); } else { # check that the archive info is compatible with the database $strArchiveId = - (new pgBackRest::Archive::ArchiveInfo($oFile->pathGet(PATH_BACKUP_ARCHIVE), true))->check($strDbVersion, $ullDbSysId); + (new pgBackRest::Archive::ArchiveInfo( + storageRepo()->pathGet(STORAGE_REPO_ARCHIVE), true))->check($strDbVersion, $ullDbSysId); if (defined($strWalFile)) { - $strArchiveFile = walSegmentFind($oFile, ${strArchiveId}, $strWalFile); + $strArchiveFile = walSegmentFind(storageRepo(), ${strArchiveId}, $strWalFile); } } diff --git a/lib/pgBackRest/Archive/ArchiveCommon.pm b/lib/pgBackRest/Archive/ArchiveCommon.pm index 7ec34ec55..3b726d155 100644 --- a/lib/pgBackRest/Archive/ArchiveCommon.pm +++ b/lib/pgBackRest/Archive/ArchiveCommon.pm @@ -9,7 +9,7 @@ use Carp qw(confess); use Exporter qw(import); our @EXPORT = qw(); -use Fcntl qw(SEEK_CUR O_RDONLY); # !!! Only needed until read from buffer +use Fcntl qw(SEEK_CUR O_RDONLY); use File::Basename qw(dirname); use pgBackRest::Db; @@ -18,9 +18,8 @@ use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; -use pgBackRest::Protocol::Common::Common; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; #################################################################################################################################### # RegEx constants @@ -38,6 +37,12 @@ use constant PG_WAL_SYSTEM_ID_OFFSET_GTE_93 => 20; use constant PG_WAL_SYSTEM_ID_OFFSET_LT_93 => 12; push @EXPORT, qw(PG_WAL_SYSTEM_ID_OFFSET_LT_93); +#################################################################################################################################### +# WAL segment size +#################################################################################################################################### +use constant PG_WAL_SEGMENT_SIZE => 16777216; + push @EXPORT, qw(PG_WAL_SEGMENT_SIZE); + #################################################################################################################################### # PostgreSQL WAL magic #################################################################################################################################### @@ -260,7 +265,7 @@ sub walSegmentFind my ( $strOperation, - $oFile, + $oStorageRepo, $strArchiveId, $strWalSegment, $iWaitSeconds, @@ -268,7 +273,7 @@ sub walSegmentFind logDebugParam ( __PACKAGE__ . '::walSegmentFind', \@_, - {name => 'oFile'}, + {name => 'oStorageRepo'}, {name => 'strArchiveId'}, {name => 'strWalSegment'}, {name => 'iWaitSeconds', required => false}, @@ -298,8 +303,8 @@ sub walSegmentFind } else { - @stryTimelineMajor = $oFile->list( - PATH_BACKUP_ARCHIVE, $strArchiveId, + @stryTimelineMajor = $oStorageRepo->list( + STORAGE_REPO_ARCHIVE . "/${strArchiveId}", {strExpression => '[0-F]{8}' . substr($strWalSegment, 0, 8), bIgnoreMissing => true}); } @@ -310,8 +315,8 @@ sub walSegmentFind my $strWalSegmentFind = $bTimeline ? substr($strWalSegment, 0, 24) : $strTimelineMajor . substr($strWalSegment, 8, 16); # Get the name of the requested WAL segment (may have hash info and compression extension) - push(@stryWalFileName, $oFile->list( - PATH_BACKUP_ARCHIVE, "${strArchiveId}/${strTimelineMajor}", + push(@stryWalFileName, $oStorageRepo->list( + STORAGE_REPO_ARCHIVE . "/${strArchiveId}/${strTimelineMajor}", {strExpression => "^${strWalSegmentFind}" . (walIsPartial($strWalSegment) ? "\\.partial" : '') . "-[0-f]{40}(\\." . COMPRESS_EXT . "){0,1}\$", diff --git a/lib/pgBackRest/Archive/ArchiveGet.pm b/lib/pgBackRest/Archive/ArchiveGet.pm index 3c131db11..270d658e4 100644 --- a/lib/pgBackRest/Archive/ArchiveGet.pm +++ b/lib/pgBackRest/Archive/ArchiveGet.pm @@ -25,10 +25,11 @@ use pgBackRest::Common::Wait; use pgBackRest::Config::Config; use pgBackRest::Db; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Base; +use pgBackRest::Storage::Filter::Gzip; +use pgBackRest::Storage::Helper; #################################################################################################################################### # process @@ -86,23 +87,18 @@ sub get lockStopTest(); - # Create the file object - my $oFile = new pgBackRest::File - ( - optionGet(OPTION_STANZA), - optionGet(OPTION_REPO_PATH), - protocolGet(BACKUP) - ); + # Get the repo storage + my $oStorageRepo = storageRepo(); # Construct absolute path to the WAL file when it is relative $strDestinationFile = walPath($strDestinationFile, optionGet(OPTION_DB_PATH, false), commandGet()); # Get the wal segment filename my ($strArchiveId, $strArchiveFile) = $self->getCheck( - $oFile, undef, undef, walIsSegment($strSourceArchive) ? $strSourceArchive : undef); + undef, undef, walIsSegment($strSourceArchive) ? $strSourceArchive : undef); if (!defined($strArchiveFile) && !walIsSegment($strSourceArchive) && - $oFile->exists(PATH_BACKUP_ARCHIVE, "${strArchiveId}/${strSourceArchive}")) + $oStorageRepo->exists(STORAGE_REPO_ARCHIVE . "/${strArchiveId}/${strSourceArchive}")) { $strArchiveFile = $strSourceArchive; } @@ -122,13 +118,16 @@ sub get else { # Determine if the source file is already compressed - my $bSourceCompressed = $strArchiveFile =~ "^.*\.$oFile->{strCompressExtension}\$" ? true : false; + my $bSourceCompressed = $strArchiveFile =~ ('^.*\.' . COMPRESS_EXT . '$') ? true : false; # Copy the archive file to the requested location - $oFile->copy(PATH_BACKUP_ARCHIVE, "${strArchiveId}/${strArchiveFile}", # Source file - PATH_DB_ABSOLUTE, $strDestinationFile, # Destination file - $bSourceCompressed, # Source compression based on detection - false); # Destination is not compressed + $oStorageRepo->copy( + $oStorageRepo->openRead( + STORAGE_REPO_ARCHIVE . "/${strArchiveId}/${strArchiveFile}", {bProtocolCompress => !$bSourceCompressed}), + storageDb()->openWrite( + $strDestinationFile, + {rhyFilter => $bSourceCompressed ? + [{strClass => STORAGE_FILTER_GZIP, rxyParam => [{strCompressType => STORAGE_DECOMPRESS}]}] : undef})); } # Return from function and log return values if any @@ -149,20 +148,19 @@ sub get sub getArchiveId { my $self = shift; - my $oFile = shift; # Assign function parameters, defaults, and log debug info my ($strOperation) = logDebugParam(__PACKAGE__ . '->getArchiveId'); my $strArchiveId; - if ($oFile->isRemote(PATH_BACKUP_ARCHIVE)) + if (!isRepoLocal()) { - $strArchiveId = $oFile->{oProtocol}->cmdExecute(OP_ARCHIVE_GET_ARCHIVE_ID, undef, true); + $strArchiveId = protocolGet(BACKUP)->cmdExecute(OP_ARCHIVE_GET_ARCHIVE_ID, undef, true); } else { - $strArchiveId = (new pgBackRest::Archive::ArchiveInfo($oFile->pathGet(PATH_BACKUP_ARCHIVE), true))->archiveId(); + $strArchiveId = (new pgBackRest::Archive::ArchiveInfo(storageRepo()->pathGet(STORAGE_REPO_ARCHIVE), true))->archiveId(); } # Return from function and log return values if any diff --git a/lib/pgBackRest/Archive/ArchiveInfo.pm b/lib/pgBackRest/Archive/ArchiveInfo.pm index 540441c50..979ba583b 100644 --- a/lib/pgBackRest/Archive/ArchiveInfo.pm +++ b/lib/pgBackRest/Archive/ArchiveInfo.pm @@ -14,27 +14,27 @@ use Carp qw(confess); use English '-no_match_vars'; use Exporter qw(import); + our @EXPORT = qw(); use File::Basename qw(dirname basename); -use File::stat; -use Fcntl qw(O_RDONLY); -use IO::Uncompress::Gunzip qw(gunzip $GunzipError); +use pgBackRest::Archive::ArchiveCommon; use pgBackRest::Common::Exception; +use pgBackRest::Config::Config; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; -use pgBackRest::Archive::ArchiveCommon; -use pgBackRest::Config::Config; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::InfoCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Base; +use pgBackRest::Storage::Filter::Gzip; +use pgBackRest::Storage::Helper; #################################################################################################################################### # File/path constants #################################################################################################################################### use constant ARCHIVE_INFO_FILE => 'archive.info'; - our @EXPORT = qw(ARCHIVE_INFO_FILE); + push @EXPORT, qw(ARCHIVE_INFO_FILE); #################################################################################################################################### # Archive info constants @@ -71,29 +71,57 @@ sub new my ( $strOperation, - $strArchiveClusterPath, # Backup cluster path - $bRequired # Is archive info required? + $strArchiveClusterPath, # Archive cluster path + $bRequired, # Is archive info required? + $bLoad, # Should the file attempt to be loaded? + $bIgnoreMissing, # Don't error on missing files ) = logDebugParam ( __PACKAGE__ . '->new', \@_, {name => 'strArchiveClusterPath'}, - {name => 'bRequired', default => true} + {name => 'bRequired', default => true}, + {name => 'bLoad', optional => true, default => true}, + {name => 'bIgnoreMissing', optional => true, default => false}, ); # Build the archive info path/file name my $strArchiveInfoFile = "${strArchiveClusterPath}/" . ARCHIVE_INFO_FILE; - my $bExists = fileExists($strArchiveInfoFile); - - if (!$bExists && $bRequired) - { - confess &log(ERROR, $strArchiveInfoMissingMsg, ERROR_FILE_MISSING); - } + my $self = {}; + my $iResult = 0; + my $strResultMessage; # Init object and store variables - my $self = $class->SUPER::new($strArchiveInfoFile, {bLoad => $bExists}); + eval + { + $self = $class->SUPER::new($strArchiveInfoFile, {bLoad => $bLoad, bIgnoreMissing => $bIgnoreMissing, + oStorage => storageRepo()}); + return true; + } + or do + { + # Capture error information + $iResult = exceptionCode($EVAL_ERROR); + $strResultMessage = exceptionMessage($EVAL_ERROR->message()); + }; + + if ($iResult != 0) + { + # If the file does not exist but is required to exist, then error + # The archive info is only allowed not to exist when running a stanza-create on a new install + if ($iResult == ERROR_FILE_MISSING) + { + if ($bRequired) + { + confess &log(ERROR, $strArchiveInfoMissingMsg, ERROR_FILE_MISSING); + } + } + else + { + confess &log(ERROR, $strResultMessage, $iResult); + } + } - $self->{bExists} = $bExists; $self->{strArchiveClusterPath} = $strArchiveClusterPath; # Return from function and log return values if any @@ -276,21 +304,19 @@ sub reconstruct my ( $strOperation, - $oFile, $strCurrentDbVersion, $ullCurrentDbSysId, ) = logDebugParam ( __PACKAGE__ . '->reconstruct', \@_, - {name => 'oFile'}, {name => 'strCurrentDbVersion'}, {name => 'ullCurrentDbSysId'}, ); my $strInvalidFileStructure = undef; - my @stryArchiveId = fileList( + my @stryArchiveId = storageRepo()->list( $self->{strArchiveClusterPath}, {strExpression => REGEX_ARCHIVE_DIR_DB_VERSION, bIgnoreMissing => true}); my %hDbHistoryVersion; @@ -308,7 +334,7 @@ sub reconstruct my $strVersionDir = $strDbVersion . "-" . $iDbHistoryId; # Get the name of the first archive directory - my $strArchiveDir = (fileList( + my $strArchiveDir = (storageRepo()->list( $self->{strArchiveClusterPath} . "/${strVersionDir}", {strExpression => REGEX_ARCHIVE_DIR_WAL, bIgnoreMissing => true}))[0]; @@ -320,9 +346,9 @@ sub reconstruct } # ??? Should probably make a function in ArchiveCommon - my $strArchiveFile = (fileList( + my $strArchiveFile = (storageRepo()->list( $self->{strArchiveClusterPath} . "/${strVersionDir}/${strArchiveDir}", - {strExpression => "^[0-F]{24}(\\.partial){0,1}(-[0-f]+){0,1}(\\.$oFile->{strCompressExtension}){0,1}\$", + {strExpression => "^[0-F]{24}(\\.partial){0,1}(-[0-f]+){0,1}(\\." . COMPRESS_EXT . "){0,1}\$", bIgnoreMissing => true}))[0]; # Continue if any file structure or missing files info @@ -339,27 +365,16 @@ sub reconstruct # Get the db-system-id from the WAL file depending on the version of postgres my $iSysIdOffset = $strDbVersion >= PG_VERSION_93 ? PG_WAL_SYSTEM_ID_OFFSET_GTE_93 : PG_WAL_SYSTEM_ID_OFFSET_LT_93; - # If the file is a compressed file, unzip it, else open the first 8KB + # Read first 8k of WAL segment my $tBlock; - sysopen(my $hFile, $strArchiveFilePath, O_RDONLY) - or confess &log(ERROR, "unable to open ${strArchiveFilePath}", ERROR_FILE_OPEN); + my $oFileIo = storageRepo()->openRead( + $strArchiveFilePath, + {rhyFilter => $strArchiveFile =~ ('\.' . COMPRESS_EXT . '$') ? + [{strClass => STORAGE_FILTER_GZIP, rxyParam => [{strCompressType => STORAGE_DECOMPRESS}]}] : undef}); - if ($strArchiveFile =~ "^.*\.$oFile->{strCompressExtension}\$") - { - gunzip($hFile => \$tBlock) - or confess &log(ERROR, - "gunzip failed with error: " . $GunzipError . - " on file ${strArchiveFilePath}", ERROR_FILE_READ); - } - else - { - # Read part of the file - sysread($hFile, $tBlock, 8192) == 8192 - or confess &log(ERROR, "unable to read ${strArchiveFilePath}", ERROR_FILE_READ); - } - - close($hFile); + $oFileIo->read(\$tBlock, 512, true); + $oFileIo->close(); # Get the required data from the file that was pulled into scalar $tBlock my ($iMagic, $iFlag, $junk, $ullDbSysId) = unpack('SSa' . $iSysIdOffset . 'Q', $tBlock); diff --git a/lib/pgBackRest/Archive/ArchivePush.pm b/lib/pgBackRest/Archive/ArchivePush.pm index 50d5a490f..6ffa957a5 100644 --- a/lib/pgBackRest/Archive/ArchivePush.pm +++ b/lib/pgBackRest/Archive/ArchivePush.pm @@ -20,10 +20,9 @@ use pgBackRest::Common::Lock; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; #################################################################################################################################### # WAL status constants @@ -79,8 +78,7 @@ sub process if (optionGet(OPTION_ARCHIVE_ASYNC)) { # Get the spool path - $self->{strSpoolPath} = (new pgBackRest::File( - optionGet(OPTION_STANZA), optionGet(OPTION_SPOOL_PATH), protocolGet(NONE)))->pathGet(PATH_BACKUP_ARCHIVE_OUT); + $self->{strSpoolPath} = storageSpool()->pathGet(STORAGE_SPOOL_ARCHIVE_OUT); # Loop to check for status files and launch async process my $bPushed = false; @@ -119,14 +117,6 @@ sub process require pgBackRest::Archive::ArchivePushFile; pgBackRest::Archive::ArchivePushFile->import(); - # Create the file object - my $oFile = new pgBackRest::File - ( - optionGet(OPTION_STANZA), - optionGet(OPTION_REPO_PATH), - protocolGet(BACKUP) - ); - # Drop file if queue max has been exceeded $self->{strWalPath} = $strWalPath; @@ -138,7 +128,7 @@ sub process # Else push the WAL file else { - archivePushFile($oFile, $strWalPath, $strWalFile, optionGet(OPTION_COMPRESS), optionGet(OPTION_REPO_SYNC)); + archivePushFile($strWalPath, $strWalFile, optionGet(OPTION_COMPRESS)); } } @@ -185,7 +175,8 @@ sub walStatus my $bResult = false; # Find matching status files - my @stryStatusFile = fileList($strSpoolPath, {strExpression => '^' . $strWalFile . '\.(ok|error)$', bIgnoreMissing => true}); + my @stryStatusFile = storageSpool()->list( + $strSpoolPath, {strExpression => '^' . $strWalFile . '\.(ok|error)$', bIgnoreMissing => true}); if (@stryStatusFile > 0) { @@ -197,7 +188,8 @@ sub walStatus } # Read the status file - my @stryWalStatus = split("\n", fileStringRead("${strSpoolPath}/$stryStatusFile[0]")); + my $rstrWalStatus = storageSpool()->get("${strSpoolPath}/$stryStatusFile[0]"); + my @stryWalStatus = split("\n", defined($$rstrWalStatus) ? $$rstrWalStatus : ''); # Status file must have at least two lines if it has content my $iCode; @@ -272,7 +264,7 @@ sub readyList if (defined($self->{strSpoolPath})) { - foreach my $strOkFile (fileList($self->{strSpoolPath}, {strExpression => '\.ok$', bIgnoreMissing => true})) + foreach my $strOkFile (storageSpool()->list($self->{strSpoolPath}, {strExpression => '\.ok$', bIgnoreMissing => true})) { $strOkFile = substr($strOkFile, 0, length($strOkFile) - length('.ok')); $hOkFile->{$strOkFile} = true; @@ -281,7 +273,7 @@ sub readyList # Read the .ready files my $strWalStatusPath = "$self->{strWalPath}/archive_status"; - my @stryReadyFile = fileList($strWalStatusPath, {strExpression => '\.ready$'}); + my @stryReadyFile = storageDb()->list($strWalStatusPath, {strExpression => '\.ready$'}); # Generate a list of new files my @stryNewReadyFile; @@ -308,7 +300,7 @@ sub readyList { if (!defined($hReadyFile->{$strOkFile})) { - fileRemove("$self->{strSpoolPath}/${strOkFile}.ok"); + storageSpool()->remove("$self->{strSpoolPath}/${strOkFile}.ok"); } } diff --git a/lib/pgBackRest/Archive/ArchivePushAsync.pm b/lib/pgBackRest/Archive/ArchivePushAsync.pm index 6f65db87a..225221ac7 100644 --- a/lib/pgBackRest/Archive/ArchivePushAsync.pm +++ b/lib/pgBackRest/Archive/ArchivePushAsync.pm @@ -28,11 +28,9 @@ use pgBackRest::Common::Wait; use pgBackRest::Config::Config; use pgBackRest::Db; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Local::Process; use pgBackRest::Protocol::Helper; +use pgBackRest::Storage::Helper; use pgBackRest::Version; #################################################################################################################################### @@ -151,7 +149,7 @@ sub initServer my ($strOperation) = logDebugParam(__PACKAGE__ . '->initServer'); # Create the spool path - filePathCreate($self->{strSpoolPath}, undef, true, true); + storageSpool()->pathCreate($self->{strSpoolPath}, {bIgnoreExists => true, bCreateParent => true}); # Initialize the archive process $self->{oArchiveProcess} = new pgBackRest::Protocol::Local::Process( @@ -203,8 +201,7 @@ sub processQueue foreach my $strWalFile (@{$stryWalFile}) { $self->{oArchiveProcess}->queueJob( - 1, 'default', $strWalFile, OP_ARCHIVE_PUSH_FILE, - [$self->{strWalPath}, $strWalFile, optionGet(OPTION_COMPRESS), optionGet(OPTION_REPO_SYNC)]); + 1, 'default', $strWalFile, OP_ARCHIVE_PUSH_FILE, [$self->{strWalPath}, $strWalFile, optionGet(OPTION_COMPRESS)]); } # Process jobs if there are any @@ -218,18 +215,15 @@ sub processQueue 'push ' . @{$stryWalFile} . ' WAL file(s) to archive: ' . ${$stryWalFile}[0] . (@{$stryWalFile} > 1 ? "...${$stryWalFile}[-1]" : '')); - # Protocol created below so errors are handled correctly - my $oProtocol; - eval { # Hold a lock when the repo is remote to be sure no other process is pushing WAL - $oProtocol = protocolGet(BACKUP); + !isRepoLocal() && protocolGet(BACKUP); while (my $hyJob = $self->{oArchiveProcess}->process()) { # Send keep alives to protocol - $oProtocol->keepAlive(); + protocolKeepAlive(); foreach my $hJob (@{$hyJob}) { @@ -341,7 +335,7 @@ sub walStatusWrite if ($strType ne WAL_STATUS_ERROR) { # Remove the error file, if any - fileRemove("$self->{strSpoolPath}/${strWalFile}.error", true); + storageSpool()->remove("$self->{strSpoolPath}/${strWalFile}.error", {bIgnoreMissing => true}); } # Write the status file @@ -361,7 +355,8 @@ sub walStatusWrite confess &log(ASSERT, 'error status must have iCode and strMessage set'); } - fileStringWrite("$self->{strSpoolPath}/${strWalFile}.${strType}", $strStatus); + storageSpool()->put( + storageSpool()->openWrite("$self->{strSpoolPath}/${strWalFile}.${strType}", {bAtomic => true}), $strStatus); } 1; diff --git a/lib/pgBackRest/Archive/ArchivePushFile.pm b/lib/pgBackRest/Archive/ArchivePushFile.pm index 39b311e22..828c6bc2c 100644 --- a/lib/pgBackRest/Archive/ArchivePushFile.pm +++ b/lib/pgBackRest/Archive/ArchivePushFile.pm @@ -10,15 +10,18 @@ use English '-no_match_vars'; use Exporter qw(import); our @EXPORT = qw(); -use File::Basename qw(basename); +use File::Basename qw(basename dirname); use pgBackRest::Archive::ArchiveCommon; use pgBackRest::Archive::ArchiveInfo; use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::Protocol::Common::Common; +use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Filter::Gzip; +use pgBackRest::Storage::Filter::Sha; +use pgBackRest::Storage::Helper; #################################################################################################################################### # archivePushCheck @@ -32,7 +35,6 @@ sub archivePushCheck my ( $strOperation, - $oFile, $strArchiveFile, $strDbVersion, $ullDbSysId, @@ -41,7 +43,6 @@ sub archivePushCheck logDebugParam ( __PACKAGE__ . '::archivePushCheck', \@_, - {name => 'oFile'}, {name => 'strArchiveFile'}, {name => 'strDbVersion', required => false}, {name => 'ullDbSysId', required => false}, @@ -49,16 +50,17 @@ sub archivePushCheck ); # Set operation and debug strings + my $oStorageRepo = storageRepo(); my $strArchiveId; my $strChecksum; # WAL file is segment? my $bWalSegment = walIsSegment($strArchiveFile); - if ($oFile->isRemote(PATH_BACKUP_ARCHIVE)) + if (!isRepoLocal()) { # Execute the command - ($strArchiveId, $strChecksum) = $oFile->{oProtocol}->cmdExecute( + ($strArchiveId, $strChecksum) = protocolGet(BACKUP)->cmdExecute( OP_ARCHIVE_PUSH_CHECK, [$strArchiveFile, $strDbVersion, $ullDbSysId], true); } else @@ -67,11 +69,11 @@ sub archivePushCheck if ($bWalSegment) { # If the info file exists check db version and system-id else error - $strArchiveId = (new pgBackRest::Archive::ArchiveInfo($oFile->pathGet(PATH_BACKUP_ARCHIVE)))->check( - $strDbVersion, $ullDbSysId); + $strArchiveId = (new pgBackRest::Archive::ArchiveInfo( + $oStorageRepo->pathGet(STORAGE_REPO_ARCHIVE)))->check($strDbVersion, $ullDbSysId); # Check if the WAL segment already exists in the archive - my $strFoundFile = walSegmentFind($oFile, $strArchiveId, $strArchiveFile); + my $strFoundFile = walSegmentFind($oStorageRepo, $strArchiveId, $strArchiveFile); if (defined($strFoundFile)) { @@ -81,7 +83,7 @@ sub archivePushCheck # Else just get the archive id else { - $strArchiveId = (new pgBackRest::Archive::ArchiveInfo($oFile->pathGet(PATH_BACKUP_ARCHIVE)))->archiveId(); + $strArchiveId = (new pgBackRest::Archive::ArchiveInfo($oStorageRepo->pathGet(STORAGE_REPO_ARCHIVE)))->archiveId(); } } @@ -89,7 +91,7 @@ sub archivePushCheck if (defined($strChecksum) && !commandTest(CMD_REMOTE)) { - my $strChecksumNew = $oFile->hash(PATH_DB_ABSOLUTE, $strWalFile); + my ($strChecksumNew) = storageDb()->hashSize($strWalFile); if ($strChecksumNew ne $strChecksum) { @@ -126,23 +128,20 @@ sub archivePushFile my ( $strOperation, - $oFile, $strWalPath, $strWalFile, $bCompress, - $bRepoSync, ) = logDebugParam ( __PACKAGE__ . '::archivePushFile', \@_, - {name => 'oFile'}, {name => 'strWalPath'}, {name => 'strWalFile'}, {name => 'bCompress'}, - {name => 'bRepoSync'}, ); # Get cluster info from the WAL + my $oStorageRepo = storageRepo(); my $strDbVersion; my $ullDbSysId; @@ -153,7 +152,7 @@ sub archivePushFile # Check if the WAL already exists in the repo my ($strArchiveId, $strChecksum, $strWarning) = archivePushCheck( - $oFile, $strWalFile, $strDbVersion, $ullDbSysId, walIsSegment($strWalFile) ? "${strWalPath}/${strWalFile}" : undef); + $strWalFile, $strDbVersion, $ullDbSysId, walIsSegment($strWalFile) ? "${strWalPath}/${strWalFile}" : undef); # Only copy the WAL segment if checksum is not defined. If checksum is defined it means that the WAL segment already exists # in the repository with the same checksum (else there would have been an error on checksum mismatch). @@ -161,26 +160,30 @@ sub archivePushFile { my $strArchiveFile = "${strArchiveId}/${strWalFile}"; - # Append compression extension - if (walIsSegment($strWalFile) && $bCompress) + # If a WAL segment + if (walIsSegment($strWalFile)) { - $strArchiveFile .= '.' . $oFile->{strCompressExtension}; + # Get hash + my ($strSourceHash) = storageDb()->hashSize("${strWalPath}/${strWalFile}"); + + $strArchiveFile .= "-${strSourceHash}"; + + # Add compress extension + if ($bCompress) + { + $strArchiveFile .= qw{.} . COMPRESS_EXT; + } } - # Copy the WAL segment - $oFile->copy( - PATH_DB_ABSOLUTE, "${strWalPath}/${strWalFile}", # Source type/file - PATH_BACKUP_ARCHIVE, $strArchiveFile, # Destination type/file - false, # Source is not compressed - walIsSegment($strWalFile) && $bCompress, # Destination compress is configurable - undef, undef, undef, # Unused params - true, # Create path if it does not exist - undef, undef, # Default User and group - walIsSegment($strWalFile), # Append checksum if WAL segment - $bRepoSync); # Sync repo directories? + # Copy + $oStorageRepo->copy( + storageDb()->openRead("${strWalPath}/${strWalFile}", + {rhyFilter => walIsSegment($strWalFile) && $bCompress ? [{strClass => STORAGE_FILTER_GZIP}] : undef}), + $oStorageRepo->openWrite( + STORAGE_REPO_ARCHIVE . "/${strArchiveFile}", + {bPathCreate => true, bAtomic => true, bProtocolCompress => !walIsSegment($strWalFile) || !$bCompress})); } - # Return from function and log return values if any return logDebugReturn ( diff --git a/lib/pgBackRest/Backup/Backup.pm b/lib/pgBackRest/Backup/Backup.pm index 33ebb1e21..60ee32b05 100644 --- a/lib/pgBackRest/Backup/Backup.pm +++ b/lib/pgBackRest/Backup/Backup.pm @@ -9,30 +9,32 @@ use Carp qw(confess); use English '-no_match_vars'; use Exporter qw(import); -use Fcntl 'SEEK_CUR'; use File::Basename; -use File::Path qw(remove_tree); +use pgBackRest::Archive::ArchiveCommon; +use pgBackRest::Archive::ArchiveGet; +use pgBackRest::Backup::Filter::PageChecksum; # ??? Temporary until isLibC is moved to a better place +use pgBackRest::Backup::Common; +use pgBackRest::Backup::File; +use pgBackRest::Backup::Info; use pgBackRest::Common::Exception; use pgBackRest::Common::Exit; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; -use pgBackRest::Archive::ArchiveGet; -use pgBackRest::Archive::ArchiveCommon; -use pgBackRest::Backup::Common; -use pgBackRest::Backup::File; -use pgBackRest::Backup::Info; use pgBackRest::Common::String; use pgBackRest::Config::Config; use pgBackRest::Db; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Manifest; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Local::Process; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Common::Io::Handle; +use pgBackRest::Storage::Base; +use pgBackRest::Storage::Filter::Gzip; +use pgBackRest::Storage::Filter::Sha; +use pgBackRest::Storage::Helper; use pgBackRest::Version; #################################################################################################################################### @@ -58,11 +60,9 @@ sub new } #################################################################################################################################### -# fileNotInManifest -# -# Find all files in a backup path that are not in the supplied manifest. +# resumeClean - cleans the directory from a previous failed backup so it can be reused #################################################################################################################################### -sub fileNotInManifest +sub resumeClean { my $self = shift; @@ -70,32 +70,35 @@ sub fileNotInManifest my ( $strOperation, - $oFileLocal, - $strPathType, + $oStorageRepo, + $strBackupLabel, $oManifest, $oAbortedManifest ) = logDebugParam ( - __PACKAGE__ . '->fileNotInManifest', \@_, - {name => 'oFileLocal', trace => true}, - {name => 'strPathType', trace => true}, - {name => 'oManifest', trace => true}, - {name => 'oAbortedManifest', trace => true} + __PACKAGE__ . '->resumeClean', \@_, + {name => 'oStorageRepo'}, + {name => 'strBackupLabel'}, + {name => 'oManifest'}, + {name => 'oAbortedManifest'} ); - # Build manifest for aborted temp path - my $hFile = $oFileLocal->manifest($strPathType); + &log(DETAIL, 'clean resumed backup path: ' . $oStorageRepo->pathGet(STORAGE_REPO_BACKUP . "/${strBackupLabel}")); + + # Build manifest for aborted backup path + my $hFile = $oStorageRepo->manifest(STORAGE_REPO_BACKUP . "/${strBackupLabel}"); # Get compress flag my $bCompressed = $oAbortedManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS); + # Find paths and files to delete my @stryFile; foreach my $strName (sort(keys(%{$hFile}))) { - # Ignore certain files that will never be in the manifest - if ($strName eq FILE_MANIFEST || + # Ignore files that will never be in the manifest but should be preserved + if ($strName eq FILE_MANIFEST_COPY || $strName eq '.') { next; @@ -157,68 +160,26 @@ sub fileNotInManifest } } - # Push the file/path/link to be deleted into the result array - push @stryFile, $strName; - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'stryFile', value => \@stryFile} - ); -} - -#################################################################################################################################### -# tmpClean -# -# Cleans the temp directory from a previous failed backup so it can be reused -#################################################################################################################################### -sub tmpClean -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $oFileLocal, - $oManifest, - $oAbortedManifest - ) = - logDebugParam - ( - __PACKAGE__ . '->tmpClean', \@_, - {name => 'oFileLocal', trace => true}, - {name => 'oManifest', trace => true}, - {name => 'oAbortedManifest', trace => true} - ); - - &log(DETAIL, 'clean backup temp path: ' . $oFileLocal->pathGet(PATH_BACKUP_TMP)); - - # Get the list of files that should be deleted from temp - my @stryFile = $self->fileNotInManifest($oFileLocal, PATH_BACKUP_TMP, $oManifest, $oAbortedManifest); - - foreach my $strFile (sort {$b cmp $a} @stryFile) - { - my $strDelete = $oFileLocal->pathGet(PATH_BACKUP_TMP, $strFile); - - # If a path then delete it, all the files should have already been deleted since we are going in reverse order - if (!-X $strDelete && -d $strDelete) + # If a directory then remove it + if ($cType eq 'd') { - logDebugMisc($strOperation, "remove path ${strDelete}"); - - rmdir($strDelete) - or confess &log(ERROR, "unable to delete path ${strDelete}, is it empty?", ERROR_PATH_REMOVE); + logDebugMisc($strOperation, "remove path ${strName}"); + $oStorageRepo->remove(STORAGE_REPO_BACKUP . "/${strBackupLabel}/${strName}", {bRecurse => true}); } - # Else delete a file + # Else add the file/link to be deleted later else { - logDebugMisc($strOperation, "remove file ${strDelete}"); - fileRemove($strDelete); + logDebugMisc($strOperation, "remove file ${strName}"); + push(@stryFile, STORAGE_REPO_BACKUP . "/${strBackupLabel}/${strName}"); } } + # Delete files in batch for more efficiency + if (@stryFile > 0) + { + $oStorageRepo->remove(\@stryFile); + } + # Return from function and log return values if any return logDebugReturn($strOperation); } @@ -237,7 +198,6 @@ sub processManifest my ( $strOperation, - $oFileMaster, $strDbMasterPath, $strDbCopyPath, $strType, @@ -245,12 +205,12 @@ sub processManifest $bCompress, $bHardLink, $oBackupManifest, + $strBackupLabel, $strLsnStart, ) = logDebugParam ( __PACKAGE__ . '->processManifest', \@_, - {name => 'oFileMaster'}, {name => 'strDbMasterPath'}, {name => 'strDbCopyPath'}, {name => 'strType'}, @@ -258,6 +218,7 @@ sub processManifest {name => 'bCompress'}, {name => 'bHardLink'}, {name => 'oBackupManifest'}, + {name => 'strBackupLabel'}, {name => 'strLsnStart', required => false}, ); @@ -265,8 +226,9 @@ sub processManifest &log(TEST, TEST_BACKUP_START); # Get the master protocol for keep-alive - my $oProtocolMaster = protocolGet(DB, $self->{iMasterRemoteIdx}); - $oProtocolMaster->noOp(); + my $oProtocolMaster = + !isDbLocal({iRemoteIdx => $self->{iMasterRemoteIdx}}) ? protocolGet(DB, $self->{iMasterRemoteIdx}) : undef; + defined($oProtocolMaster) && $oProtocolMaster->noOp(); # Initialize the backup process my $oBackupProcess = new pgBackRest::Protocol::Local::Process(DB); @@ -288,17 +250,19 @@ sub processManifest # Create paths foreach my $strPath ($oBackupManifest->keys(MANIFEST_SECTION_TARGET_PATH)) { - $oFileMaster->pathCreate(PATH_BACKUP_TMP, $strPath, undef, true); + storageRepo()->pathCreate(STORAGE_REPO_BACKUP . "/${strBackupLabel}/${strPath}", {bIgnoreExists => true}); } - if (optionGet(OPTION_REPO_LINK)) + if (storageRepo()->driver()->capability(STORAGE_CAPABILITY_LINK)) { for my $strTarget ($oBackupManifest->keys(MANIFEST_SECTION_BACKUP_TARGET)) { if ($oBackupManifest->isTargetTablespace($strTarget)) { - $oFileMaster->linkCreate( - PATH_BACKUP_TMP, $strTarget, PATH_BACKUP_TMP, MANIFEST_TARGET_PGDATA . "/${strTarget}", false, true); + storageRepo()->linkCreate( + STORAGE_REPO_BACKUP . "/${strBackupLabel}/${strTarget}", + STORAGE_REPO_BACKUP . "/${strBackupLabel}/" . MANIFEST_TARGET_PGDATA . "/${strTarget}", + {bRelative => true}); } } } @@ -328,8 +292,10 @@ sub processManifest { logDebugMisc($strOperation, "hardlink ${strRepoFile} to ${strReference}"); - $oFileMaster->linkCreate( - PATH_BACKUP_CLUSTER, "${strReference}/${strRepoFile}", PATH_BACKUP_TMP, "${strRepoFile}", true, false, true); + storageRepo()->linkCreate( + STORAGE_REPO_BACKUP . "/${strReference}/${strRepoFile}" . ($bCompress ? qw{.} . COMPRESS_EXT : ''), + STORAGE_REPO_BACKUP . "/${strBackupLabel}/${strRepoFile}" . ($bCompress ? qw{.} . COMPRESS_EXT : ''), + {bHard => true}); } # Else log the reference else @@ -379,7 +345,7 @@ sub processManifest $iHostConfigIdx, $strQueueKey, $strRepoFile, OP_BACKUP_FILE, [$strDbFile, $strRepoFile, $lSize, $oBackupManifest->get(MANIFEST_SECTION_TARGET_FILE, $strRepoFile, MANIFEST_SUBKEY_CHECKSUM, false), - optionGet(OPTION_CHECKSUM_PAGE) ? isChecksumPage($strRepoFile) : false, $bCompress, + optionGet(OPTION_CHECKSUM_PAGE) ? isChecksumPage($strRepoFile) : false, $strBackupLabel, $bCompress, $oBackupManifest->numericGet(MANIFEST_SECTION_TARGET_FILE, $strRepoFile, MANIFEST_SUBKEY_TIMESTAMP, false), $bIgnoreMissing, optionGet(OPTION_CHECKSUM_PAGE) && isChecksumPage($strRepoFile) ? $hStartLsnParam : undef]); @@ -428,7 +394,7 @@ sub processManifest # A keep-alive is required here because if there are a large number of resumed files that need to be checksummed # then the remote might timeout while waiting for a command. - $oProtocolMaster->keepAlive(); + protocolKeepAlive(); } # Validate the manifest @@ -458,12 +424,7 @@ sub process my $lTimestampStart = time(); # Initialize the local file object - my $oFileLocal = new pgBackRest::File - ( - optionGet(OPTION_STANZA), - optionGet(OPTION_REPO_PATH), - protocolGet(NONE) - ); + my $oStorageRepo = storageRepo(); # Store local type, compress, and hardlink options since they can be modified by the process my $strType = optionGet(OPTION_TYPE); @@ -471,17 +432,11 @@ sub process my $bHardLink = optionGet(OPTION_HARDLINK); # Create the cluster backup and history path - $oFileLocal->pathCreate(PATH_BACKUP_CLUSTER, PATH_BACKUP_HISTORY, undef, true, true, optionGet(OPTION_REPO_SYNC)); + $oStorageRepo->pathCreate( + STORAGE_REPO_BACKUP . qw(/) . PATH_BACKUP_HISTORY, {bIgnoreExists => true, bCreateParent => true}); # Load the backup.info - my $oBackupInfo = new pgBackRest::Backup::Info($oFileLocal->pathGet(PATH_BACKUP_CLUSTER)); - - # Build backup tmp and config - my $strBackupTmpPath = $oFileLocal->pathGet(PATH_BACKUP_TMP); - my $strBackupConfFile = $oFileLocal->pathGet(PATH_BACKUP_TMP, 'backup.manifest'); - - # Declare the backup manifest - my $oBackupManifest = new pgBackRest::Manifest($strBackupConfFile, false); + my $oBackupInfo = new pgBackRest::Backup::Info($oStorageRepo->pathGet(STORAGE_REPO_BACKUP)); # Initialize database objects my $oDbMaster = undef; @@ -506,12 +461,7 @@ sub process } # Initialize the master file object - my $oFileMaster = new pgBackRest::File - ( - optionGet(OPTION_STANZA), - optionGet(OPTION_REPO_PATH), - protocolGet(DB, $self->{iMasterRemoteIdx}) - ); + my $oStorageDbMaster = storageDb({iRemoteIdx => $self->{iMasterRemoteIdx}}); # Determine the database paths my $strDbMasterPath = optionGet(optionIndex(OPTION_DB_PATH, $self->{iMasterRemoteIdx})); @@ -534,7 +484,7 @@ sub process if (defined($strBackupLastPath) && $oBackupInfo->confirmDb($strBackupLastPath, $strDbVersion, $ullDbSysId)) { $oLastManifest = new pgBackRest::Manifest( - $oFileLocal->pathGet(PATH_BACKUP_CLUSTER, "${strBackupLastPath}/" . FILE_MANIFEST)); + $oStorageRepo->pathGet(STORAGE_REPO_BACKUP . "/${strBackupLastPath}/" . FILE_MANIFEST)); &log(INFO, 'last backup label = ' . $oLastManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_LABEL) . ', version = ' . $oLastManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION)); @@ -566,6 +516,132 @@ sub process } } + # Search cluster directory for an aborted backup + my $strBackupLabel; + my $oAbortedManifest; + my $strBackupPath; + + foreach my $strAbortedBackup ($oStorageRepo->list( + STORAGE_REPO_BACKUP, {strExpression => backupRegExpGet(true, true, true), strSortOrder => 'reverse'})) + { + # Aborted backups have a copy of the manifest but no main + if ($oStorageRepo->exists(STORAGE_REPO_BACKUP . "/${strAbortedBackup}/" . FILE_MANIFEST_COPY) && + !$oStorageRepo->exists(STORAGE_REPO_BACKUP . "/${strAbortedBackup}/" . FILE_MANIFEST)) + { + my $bUsable; + my $strReason = "resume is disabled"; + $strBackupPath = $oStorageRepo->pathGet(STORAGE_REPO_BACKUP . "/${strAbortedBackup}"); + + # Attempt to read the manifest file in the aborted backup to see if it can be used. If any error at all occurs then the + # backup will be considered unusable and a resume will not be attempted. + if (optionGet(OPTION_RESUME)) + { + $strReason = "unable to read ${strBackupPath}/" . FILE_MANIFEST; + + eval + { + # Load the aborted manifest + $oAbortedManifest = new pgBackRest::Manifest("${strBackupPath}/" . FILE_MANIFEST); + + # Key and values that do not match + my $strKey; + my $strValueNew; + my $strValueAborted; + + # Check version + if ($oAbortedManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION) ne BACKREST_VERSION) + { + $strKey = INI_KEY_VERSION; + $strValueNew = BACKREST_VERSION; + $strValueAborted = $oAbortedManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION); + } + # Check format + elsif ($oAbortedManifest->get(INI_SECTION_BACKREST, INI_KEY_FORMAT) ne BACKREST_FORMAT) + { + $strKey = INI_KEY_FORMAT; + $strValueNew = BACKREST_FORMAT; + $strValueAborted = $oAbortedManifest->get(INI_SECTION_BACKREST, INI_KEY_FORMAT); + } + # Check backup type + elsif ($oAbortedManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE) ne $strType) + { + $strKey = MANIFEST_KEY_TYPE; + $strValueNew = $strType; + $strValueAborted = $oAbortedManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE); + } + # Check prior label + elsif ($oAbortedManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_PRIOR, undef, false, '') ne + (defined($strBackupLastPath) ? $strBackupLastPath : '')) + { + $strKey = MANIFEST_KEY_PRIOR; + $strValueNew = defined($strBackupLastPath) ? $strBackupLastPath : ''; + $strValueAborted = + $oAbortedManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_PRIOR, undef, false, ''); + } + # Check compression + elsif ($oAbortedManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS) != + optionGet(OPTION_COMPRESS)) + { + $strKey = MANIFEST_KEY_COMPRESS; + $strValueNew = optionGet(OPTION_COMPRESS); + $strValueAborted = $oAbortedManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS); + } + # Check hardlink + elsif ($oAbortedManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK) != + optionGet(OPTION_HARDLINK)) + { + $strKey = MANIFEST_KEY_HARDLINK; + $strValueNew = optionGet(OPTION_HARDLINK); + $strValueAborted = $oAbortedManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK); + } + + # If key is defined then something didn't match + if (defined($strKey)) + { + $strReason = "new ${strKey} '${strValueNew}' does not match aborted ${strKey} '${strValueAborted}'"; + } + # Else the backup can be resumed + else + { + $bUsable = true; + } + + return true; + } + or do + { + $bUsable = false; + } + } + + # If the backup is usable then set the backup label + if ($bUsable) + { + $strBackupLabel = $strAbortedBackup; + } + else + { + &log(WARN, "aborted backup ${strAbortedBackup} cannot be resumed: ${strReason}"); + &log(TEST, TEST_BACKUP_NORESUME); + + $oStorageRepo->remove(STORAGE_REPO_BACKUP . "/${strAbortedBackup}", {bRecurse => true}); + undef($oAbortedManifest); + } + + last; + } + } + + # If backup label is not defined then create the label and path. + if (!defined($strBackupLabel)) + { + $strBackupLabel = backupLabel($oStorageRepo, $strType, $strBackupLastPath, $lTimestampStart); + $strBackupPath = $oStorageRepo->pathGet(STORAGE_REPO_BACKUP . "/${strBackupLabel}"); + } + + # Declare the backup manifest + my $oBackupManifest = new pgBackRest::Manifest("$strBackupPath/" . FILE_MANIFEST, false); + # Backup settings $oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE, undef, $strType); $oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_START, undef, $lTimestampStart); @@ -625,7 +701,7 @@ sub process } # Check if Postgres is running and if so only continue when forced - if ($oFileMaster->exists(PATH_DB_ABSOLUTE, $strDbMasterPath . '/' . DB_FILE_POSTMASTERPID)) + if ($oStorageDbMaster->exists($strDbMasterPath . '/' . DB_FILE_POSTMASTERPID)) { if (optionGet(OPTION_FORCE)) { @@ -712,140 +788,38 @@ sub process $oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_CHECKSUM_PAGE, undef, optionGet(OPTION_CHECKSUM_PAGE)); # Build the manifest - $oBackupManifest->build($oFileMaster, $strDbVersion, $strDbMasterPath, $oLastManifest, optionGet(OPTION_ONLINE), + $oBackupManifest->build($oStorageDbMaster, $strDbVersion, $strDbMasterPath, $oLastManifest, optionGet(OPTION_ONLINE), $hTablespaceMap, $hDatabaseMap); &log(TEST, TEST_MANIFEST_BUILD); - # Check if an aborted backup exists for this stanza - if (-e $strBackupTmpPath) + # If resuming from an aborted backup + if (defined($oAbortedManifest)) { - my $bUsable; - my $strReason = "resume is disabled"; - my $oAbortedManifest; + &log(WARN, "aborted backup ${strBackupLabel} of same type exists, will be cleaned to remove invalid files and resumed"); + &log(TEST, TEST_BACKUP_RESUME); - # Attempt to read the manifest file in the aborted backup to see if it can be used. If any error at all occurs then the - # backup will be considered unusable and a resume will not be attempted. - if (optionGet(OPTION_RESUME)) - { - $strReason = "unable to read ${strBackupTmpPath}/backup.manifest"; - - eval - { - # Load the aborted manifest - $oAbortedManifest = new pgBackRest::Manifest("${strBackupTmpPath}/backup.manifest"); - - # Key and values that do not match - my $strKey; - my $strValueNew; - my $strValueAborted; - - # Check version - if ($oBackupManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION) ne - $oAbortedManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION)) - { - $strKey = INI_KEY_VERSION; - $strValueNew = $oBackupManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION); - $strValueAborted = $oAbortedManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION); - } - # Check format - elsif ($oBackupManifest->get(INI_SECTION_BACKREST, INI_KEY_FORMAT) ne - $oAbortedManifest->get(INI_SECTION_BACKREST, INI_KEY_FORMAT)) - { - $strKey = INI_KEY_FORMAT; - $strValueNew = $oBackupManifest->get(INI_SECTION_BACKREST, INI_KEY_FORMAT); - $strValueAborted = $oAbortedManifest->get(INI_SECTION_BACKREST, INI_KEY_FORMAT); - } - # Check backup type - elsif ($oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE) ne - $oAbortedManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE)) - { - $strKey = MANIFEST_KEY_TYPE; - $strValueNew = $oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE); - $strValueAborted = $oAbortedManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE); - } - # Check prior label - elsif ($oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_PRIOR, undef, false, '') ne - $oAbortedManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_PRIOR, undef, false, '')) - { - $strKey = MANIFEST_KEY_PRIOR; - $strValueNew = $oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_PRIOR, undef, false, ''); - $strValueAborted = $oAbortedManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_PRIOR, undef, false, ''); - } - # Check compression - elsif ($oBackupManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS) ne - $oAbortedManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS)) - { - $strKey = MANIFEST_KEY_COMPRESS; - $strValueNew = $oBackupManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS); - $strValueAborted = $oAbortedManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS); - } - # Check hardlink - elsif ($oBackupManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK) ne - $oAbortedManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK)) - { - $strKey = MANIFEST_KEY_HARDLINK; - $strValueNew = $oBackupManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK); - $strValueAborted = $oAbortedManifest->boolGet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK); - } - - # If key is defined then something didn't match - if (defined($strKey)) - { - $strReason = "new ${strKey} '${strValueNew}' does not match aborted ${strKey} '${strValueAborted}'"; - } - # Else the backup can be resumed - else - { - $bUsable = true; - } - - return true; - } - or do - { - $bUsable = false; - } - } - - # If the aborted backup is usable then clean it - if ($bUsable) - { - &log(WARN, 'aborted backup of same type exists, will be cleaned to remove invalid files and resumed'); - &log(TEST, TEST_BACKUP_RESUME); - - # Clean the old backup tmp path - $self->tmpClean($oFileLocal, $oBackupManifest, $oAbortedManifest); - } - # Else remove it - else - { - &log(WARN, "aborted backup exists, but cannot be resumed (${strReason}) - will be dropped and recreated"); - &log(TEST, TEST_BACKUP_NORESUME); - - remove_tree($oFileLocal->pathGet(PATH_BACKUP_TMP)) - or confess &log(ERROR, "unable to delete tmp path: ${strBackupTmpPath}"); - $oFileLocal->pathCreate(PATH_BACKUP_TMP, undef, undef, false, true); - } + # Clean the backup path before resuming + $self->resumeClean($oStorageRepo, $strBackupLabel, $oBackupManifest, $oAbortedManifest); } - # Else create the backup tmp path + # Else create the backup path else { - logDebugMisc($strOperation, "create temp backup path ${strBackupTmpPath}"); - $oFileLocal->pathCreate(PATH_BACKUP_TMP, undef, undef, false, true); + logDebugMisc($strOperation, "create backup path ${strBackupPath}"); + $oStorageRepo->pathCreate(STORAGE_REPO_BACKUP . "/${strBackupLabel}"); } # Save the backup manifest - $oBackupManifest->save(); + $oBackupManifest->saveCopy(); # Perform the backup my $lBackupSizeTotal = $self->processManifest( - $oFileMaster, $strDbMasterPath, $strDbCopyPath, $strType, $strDbVersion, $bCompress, $bHardLink, $oBackupManifest, + $strDbMasterPath, $strDbCopyPath, $strType, $strDbVersion, $bCompress, $bHardLink, $oBackupManifest, $strBackupLabel, $strLsnStart); &log(INFO, "${strType} backup size = " . fileSizeFormat($lBackupSizeTotal)); # Master file object no longer needed - undef($oFileMaster); + undef($oStorageDbMaster); # Stop backup (unless --no-online is set) my $strArchiveStop = undef; @@ -863,26 +837,26 @@ sub process foreach my $strFile (sort(keys(%{$oFileHash}))) { # Only save the file if it has content - if (defined($$oFileHash{$strFile})) + if (defined($oFileHash->{$strFile})) { - my $strFileName = $oFileLocal->pathGet(PATH_BACKUP_TMP, $strFile); + my $rhyFilter = [{strClass => STORAGE_FILTER_SHA}]; - # Write content out to a file - fileStringWrite($strFileName, $$oFileHash{$strFile}, false); - - # Compress if required + # Add compression filter if ($bCompress) { - $oFileLocal->compress(PATH_BACKUP_ABSOLUTE, $strFileName); - $strFileName .= '.' . $oFileLocal->{strCompressExtension}; + push(@{$rhyFilter}, {strClass => STORAGE_FILTER_GZIP}); } + my $oDestinationFileIo = $oStorageRepo->openWrite( + STORAGE_REPO_BACKUP . "/${strBackupLabel}/${strFile}" . ($bCompress ? qw{.} . COMPRESS_EXT : ''), + {rhyFilter => $rhyFilter}); + + # Write content out to a file + $oStorageRepo->put($oDestinationFileIo, $oFileHash->{$strFile}); + # Add file to manifest $oBackupManifest->fileAdd( - $strFile, - (fileStat($strFileName))->mtime, - length($$oFileHash{$strFile}), - $oFileLocal->hash(PATH_BACKUP_ABSOLUTE, $strFileName, $bCompress), true); + $strFile, time(), length($oFileHash->{$strFile}), $oDestinationFileIo->result(STORAGE_FILTER_SHA), true); &log(DETAIL, "wrote '${strFile}' file returned from pg_stop_backup()"); } @@ -900,20 +874,20 @@ sub process # will be consistent - at least not here. if (optionGet(OPTION_ONLINE) && optionGet(OPTION_BACKUP_ARCHIVE_CHECK)) { - # Save the backup manifest a second time - before getting archive logs in case that fails - $oBackupManifest->save(); + # Save the backup manifest before getting archive logs in case of failure + $oBackupManifest->saveCopy(); # Create the modification time for the archive logs my $lModificationTime = time(); # After the backup has been stopped, need to make a copy of the archive logs to make the db consistent logDebugMisc($strOperation, "retrieve archive logs ${strArchiveStart}:${strArchiveStop}"); - my $strArchiveId = new pgBackRest::Archive::ArchiveGet()->getArchiveId($oFileLocal); + my $strArchiveId = new pgBackRest::Archive::ArchiveGet()->getArchiveId(); my @stryArchive = lsnFileRange($strLsnStart, $strLsnStop, $strDbVersion); foreach my $strArchive (@stryArchive) { - my $strArchiveFile = walSegmentFind($oFileLocal, $strArchiveId, $strArchive, optionGet(OPTION_ARCHIVE_TIMEOUT)); + my $strArchiveFile = walSegmentFind($oStorageRepo, $strArchiveId, $strArchive, optionGet(OPTION_ARCHIVE_TIMEOUT)); $strArchive = substr($strArchiveFile, 0, 24); if (optionGet(OPTION_BACKUP_ARCHIVE_COPY)) @@ -921,82 +895,62 @@ sub process logDebugMisc($strOperation, "archive: ${strArchive} (${strArchiveFile})"); # Copy the log file from the archive repo to the backup - my $strDestinationFile = MANIFEST_TARGET_PGDATA . "/pg_xlog/${strArchive}" . - ($bCompress ? ".$oFileLocal->{strCompressExtension}" : ''); - my $bArchiveCompressed = $strArchiveFile =~ "^.*\.$oFileLocal->{strCompressExtension}\$"; + my $bArchiveCompressed = $strArchiveFile =~ ('^.*\.' . COMPRESS_EXT . '\$'); - my ($bCopyResult, $strCopyChecksum, $lCopySize) = - $oFileLocal->copy(PATH_BACKUP_ARCHIVE, "${strArchiveId}/${strArchiveFile}", - PATH_BACKUP_TMP, $strDestinationFile, - $bArchiveCompressed, $bCompress, - undef, $lModificationTime, undef, true); + $oStorageRepo->copy( + STORAGE_REPO_ARCHIVE . "/${strArchiveId}/${strArchiveFile}", + STORAGE_REPO_BACKUP . "/${strBackupLabel}/" . MANIFEST_TARGET_PGDATA . "/pg_xlog/${strArchive}" . + ($bCompress ? qw{.} . COMPRESS_EXT : '')); # Add the archive file to the manifest so it can be part of the restore and checked in validation my $strPathLog = MANIFEST_TARGET_PGDATA . '/pg_xlog'; my $strFileLog = "${strPathLog}/${strArchive}"; - # Compare the checksum against the one already in the archive log name - if ($strArchiveFile !~ "^${strArchive}-${strCopyChecksum}(\\.$oFileLocal->{strCompressExtension}){0,1}\$") - { - confess &log(ERROR, "error copying WAL segment '${strArchiveFile}' to backup - checksum recorded with " . - "file does not match actual checksum of '${strCopyChecksum}'", ERROR_CHECKSUM); - } - # Add file to manifest - $oBackupManifest->fileAdd($strFileLog, $lModificationTime, $lCopySize, $strCopyChecksum, true); + $oBackupManifest->fileAdd( + $strFileLog, $lModificationTime, PG_WAL_SEGMENT_SIZE, substr($strArchiveFile, 25, 40), true); } } } - # Create label for new backup - my $lTimestampStop = time(); - my $strBackupLabel = backupLabel($oFileLocal, $strType, $strBackupLastPath, $lTimestampStop); - # Record timestamp stop in the config + my $lTimestampStop = time(); $oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_STOP, undef, $lTimestampStop + 0); $oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_LABEL, undef, $strBackupLabel); + # Sync all paths in the backup cluster path + $oStorageRepo->pathSync(STORAGE_REPO_BACKUP . "/${strBackupLabel}", {bRecurse => true}); + # Final save of the backup manifest $oBackupManifest->save(); - # Sync all paths in the backup tmp path - if (optionGet(OPTION_REPO_SYNC)) - { - $oFileLocal->pathSync(PATH_BACKUP_TMP, undef, true); - } - &log(INFO, "new backup label = ${strBackupLabel}"); - # Make a compressed copy of the manifest for history - $oFileLocal->copy(PATH_BACKUP_TMP, FILE_MANIFEST, - PATH_BACKUP_TMP, FILE_MANIFEST . '.gz', - undef, true); + # Copy a compressed version of the manifest to history + $oStorageRepo->copy( + STORAGE_REPO_BACKUP . "/${strBackupLabel}/" . FILE_MANIFEST, + $oStorageRepo->openWrite( + STORAGE_REPO_BACKUP . qw{/} . PATH_BACKUP_HISTORY . qw{/} . substr($strBackupLabel, 0, 4) . + "/${strBackupLabel}.manifest." . COMPRESS_EXT, + {rhyFilter => [{strClass => STORAGE_FILTER_GZIP}], bPathCreate => true, bAtomic => true})); - # Move the backup tmp path to complete the backup - logDebugMisc($strOperation, "move ${strBackupTmpPath} to " . $oFileLocal->pathGet(PATH_BACKUP_CLUSTER, $strBackupLabel)); - $oFileLocal->move(PATH_BACKUP_TMP, undef, PATH_BACKUP_CLUSTER, $strBackupLabel); - - # Copy manifest to history - $oFileLocal->move(PATH_BACKUP_CLUSTER, "${strBackupLabel}/" . FILE_MANIFEST . '.gz', - PATH_BACKUP_CLUSTER, PATH_BACKUP_HISTORY . qw{/} . substr($strBackupLabel, 0, 4) . - "/${strBackupLabel}.manifest.gz", true, optionGet(OPTION_REPO_SYNC)); + # Sync history path + $oStorageRepo->pathSync(STORAGE_REPO_BACKUP . qw{/} . PATH_BACKUP_HISTORY); # Create a link to the most recent backup - $oFileLocal->remove(PATH_BACKUP_CLUSTER, LINK_LATEST); + $oStorageRepo->remove(STORAGE_REPO_BACKUP . qw(/) . LINK_LATEST); - if (optionGet(OPTION_REPO_LINK)) + if (storageRepo()->driver()->capability(STORAGE_CAPABILITY_LINK)) { - $oFileLocal->linkCreate(PATH_BACKUP_CLUSTER, $strBackupLabel, PATH_BACKUP_CLUSTER, LINK_LATEST, undef, true); + $oStorageRepo->linkCreate( + STORAGE_REPO_BACKUP . "/${strBackupLabel}", STORAGE_REPO_BACKUP . qw{/} . LINK_LATEST, {bRelative => true}); } # Save backup info $oBackupInfo->add($oBackupManifest); - # Sync the cluster path - if (optionGet(OPTION_REPO_SYNC)) - { - $oFileLocal->pathSync(PATH_BACKUP_CLUSTER); - } + # Sync backup root path + $oStorageRepo->pathSync(STORAGE_REPO_BACKUP); # Return from function and log return values if any return logDebugReturn($strOperation); diff --git a/lib/pgBackRest/Backup/Common.pm b/lib/pgBackRest/Backup/Common.pm index eb0829a5b..df02db81e 100644 --- a/lib/pgBackRest/Backup/Common.pm +++ b/lib/pgBackRest/Backup/Common.pm @@ -15,8 +15,8 @@ use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; use pgBackRest::Manifest; #################################################################################################################################### @@ -127,14 +127,14 @@ sub backupLabelFormat $strOperation, $strType, $strBackupLabelLast, - $lTimestampStop + $lTimestampStart ) = logDebugParam ( __PACKAGE__ . '::backupLabelFormat', \@_, {name => 'strType', trace => true}, {name => 'strBackupLabelLast', required => false, trace => true}, - {name => 'lTimestampStop', trace => true} + {name => 'lTimestampTart', trace => true} ); # Full backup label @@ -149,7 +149,7 @@ sub backupLabelFormat } # Format the timestamp and add the full indicator - $strBackupLabel = timestampFileFormat(undef, $lTimestampStop) . 'F'; + $strBackupLabel = timestampFileFormat(undef, $lTimestampStart) . 'F'; } # Else diff or incr label else @@ -164,7 +164,7 @@ sub backupLabelFormat $strBackupLabel = substr($strBackupLabelLast, 0, 16); # Format the timestamp - $strBackupLabel .= '_' . timestampFileFormat(undef, $lTimestampStop); + $strBackupLabel .= '_' . timestampFileFormat(undef, $lTimestampStart); # Add the diff indicator if ($strType eq BACKUP_TYPE_DIFF) @@ -199,36 +199,38 @@ sub backupLabel my ( $strOperation, - $oFile, + $oStorageRepo, $strType, $strBackupLabelLast, - $lTimestampStop + $lTimestampStart ) = logDebugParam ( __PACKAGE__ . '::backupLabelFormat', \@_, - {name => 'oFile', trace => true}, + {name => 'oStorageRepo', trace => true}, {name => 'strType', trace => true}, {name => 'strBackupLabelLast', required => false, trace => true}, - {name => 'lTimestampStop', trace => true} + {name => 'lTimestampStart', trace => true} ); # Create backup label - my $strBackupLabel = backupLabelFormat($strType, $strBackupLabelLast, $lTimestampStop); + my $strBackupLabel = backupLabelFormat($strType, $strBackupLabelLast, $lTimestampStart); # Make sure that the timestamp has not already been used by a prior backup. This is unlikely for online backups since there is # already a wait after the manifest is built but it's still possible if the remote and local systems don't have synchronized # clocks. In practice this is most useful for making offline testing faster since it allows the wait after manifest build to # be skipped by dealing with any backup label collisions here. - if (fileList($oFile->pathGet(PATH_BACKUP_CLUSTER), - {strExpression => - ($strType eq BACKUP_TYPE_FULL ? '^' : '_') . timestampFileFormat(undef, $lTimestampStop) . - ($strType eq BACKUP_TYPE_FULL ? 'F' : '(D|I)$')}) || - fileList($oFile->pathGet(PATH_BACKUP_CLUSTER, PATH_BACKUP_HISTORY . '/' . timestampFormat('%4d', $lTimestampStop)), - {strExpression => - ($strType eq BACKUP_TYPE_FULL ? '^' : '_') . timestampFileFormat(undef, $lTimestampStop) . - ($strType eq BACKUP_TYPE_FULL ? 'F' : '(D|I)\.manifest\.' . $oFile->{strCompressExtension}), - bIgnoreMissing => true})) + if ($oStorageRepo->list( + STORAGE_REPO_BACKUP, + {strExpression => + ($strType eq BACKUP_TYPE_FULL ? '^' : '_') . timestampFileFormat(undef, $lTimestampStart) . + ($strType eq BACKUP_TYPE_FULL ? 'F' : '(D|I)$')}) || + $oStorageRepo->list( + STORAGE_REPO_BACKUP . qw{/} . PATH_BACKUP_HISTORY . '/' . timestampFormat('%4d', $lTimestampStart), + {strExpression => + ($strType eq BACKUP_TYPE_FULL ? '^' : '_') . timestampFileFormat(undef, $lTimestampStart) . + ($strType eq BACKUP_TYPE_FULL ? 'F' : '(D|I)\.manifest\.' . COMPRESS_EXT . qw{$}), + bIgnoreMissing => true})) { waitRemainder(); $strBackupLabel = backupLabelFormat($strType, $strBackupLabelLast, time()); diff --git a/lib/pgBackRest/Backup/File.pm b/lib/pgBackRest/Backup/File.pm index 6042d3ee1..335e15c90 100644 --- a/lib/pgBackRest/Backup/File.pm +++ b/lib/pgBackRest/Backup/File.pm @@ -12,14 +12,18 @@ use Exporter qw(import); use File::Basename qw(dirname); use Storable qw(dclone); -use pgBackRest::DbVersion; +use pgBackRest::Backup::Filter::PageChecksum; use pgBackRest::Common::Exception; +use pgBackRest::Common::Io::Handle; use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::File; -use pgBackRest::FileCommon; +use pgBackRest::DbVersion; use pgBackRest::Manifest; -use pgBackRest::Protocol::Common::Common; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Base; +use pgBackRest::Storage::Filter::Gzip; +use pgBackRest::Storage::Filter::Sha; +use pgBackRest::Storage::Helper; #################################################################################################################################### # Result constants @@ -33,126 +37,6 @@ use constant BACKUP_FILE_RECOPY => 2; use constant BACKUP_FILE_SKIP => 3; push @EXPORT, qw(BACKUP_FILE_SKIP); -#################################################################################################################################### -# Load the C library if present -#################################################################################################################################### -my $bLibC = false; - -eval -{ - # Load the C library only if page checksums are required - require pgBackRest::LibC; - pgBackRest::LibC->import(qw(:checksum)); - - $bLibC = true; - - return 1; -} or do {}; - -#################################################################################################################################### -# isLibC -# -# Does the C library exist? -#################################################################################################################################### -sub isLibC -{ - return $bLibC; -} - -push @EXPORT, qw(isLibC); - -#################################################################################################################################### -# backupChecksumPage -#################################################################################################################################### -sub backupChecksumPage -{ - my $rExtraParam = shift; - my $tBufferRef = shift; - my $iBufferSize = shift; - my $iBufferOffset = shift; - my $hExtra = shift; - - # Initialize the extra hash - if (!defined($hExtra->{bValid})) - { - $hExtra->{bValid} = true; - } - - # Return when buffer is 0 - if ($iBufferSize == 0) - { - # Make sure valid is set for 0 length files - if ($iBufferOffset == 0 && !defined($hExtra->{bValid})) - { - $hExtra->{bValid} = true; - } - - return; - } - - # Error if offset is not divisible by page size - if ($iBufferOffset % PG_PAGE_SIZE != 0) - { - confess &log(ASSERT, "should not be possible to see misaligned buffer offset ${iBufferOffset}, buffer size ${iBufferSize}"); - } - - # If the buffer is not divisible by 0 then it's not valid - if ($iBufferSize % PG_PAGE_SIZE != 0) - { - if (defined($hExtra->{bAlign})) - { - confess &log(ASSERT, "should not be possible to see two misaligned blocks in a row"); - } - - $hExtra->{bValid} = false; - $hExtra->{bAlign} = false; - delete($hExtra->{iyPageError}); - } - elsif ($iBufferSize > 0) - { - # Calculate offset to the first block in the buffer - my $iBlockOffset = int($iBufferOffset / PG_PAGE_SIZE) + ($rExtraParam->{iSegmentNo} * 131072); - - if (!pageChecksumBufferTest( - $$tBufferRef, $iBufferSize, $iBlockOffset, PG_PAGE_SIZE, $rExtraParam->{iWalId}, - $rExtraParam->{iWalOffset})) - { - $hExtra->{bValid} = false; - - # Now figure out exactly where the errors occurred. It would be more efficient if the checksum function returned an - # array, but we're hoping there won't be that many errors to scan so this should work fine. - for (my $iBlockNo = 0; $iBlockNo < int($iBufferSize / PG_PAGE_SIZE); $iBlockNo++) - { - my $iBlockNoStart = $iBlockOffset + $iBlockNo; - - if (!pageChecksumTest( - substr($$tBufferRef, $iBlockNo * PG_PAGE_SIZE, PG_PAGE_SIZE), $iBlockNoStart, PG_PAGE_SIZE, - $rExtraParam->{iWalId}, $rExtraParam->{iWalOffset})) - { - my $iLastIdx = defined($hExtra->{iyPageError}) ? @{$hExtra->{iyPageError}} - 1 : 0; - my $iyLast = defined($hExtra->{iyPageError}) ? $hExtra->{iyPageError}[$iLastIdx] : undef; - - if (!defined($iyLast) || (!ref($iyLast) && $iyLast != $iBlockNoStart - 1) || - (ref($iyLast) && $iyLast->[1] != $iBlockNoStart - 1)) - { - push(@{$hExtra->{iyPageError}}, $iBlockNoStart); - } - elsif (!ref($iyLast)) - { - $hExtra->{iyPageError}[$iLastIdx] = undef; - push(@{$hExtra->{iyPageError}[$iLastIdx]}, $iyLast); - push(@{$hExtra->{iyPageError}[$iLastIdx]}, $iBlockNoStart); - } - else - { - $hExtra->{iyPageError}[$iLastIdx][1] = $iBlockNoStart; - } - } - } - } - } -} - #################################################################################################################################### # backupFile #################################################################################################################################### @@ -162,12 +46,12 @@ sub backupFile my ( $strOperation, - $oFile, # File object $strDbFile, # Database file to backup $strRepoFile, # Location in the repository to copy to $lSizeFile, # File size $strChecksum, # File checksum to be checked $bChecksumPage, # Should page checksums be calculated? + $strBackupLabel, # Label of current backup $bDestinationCompress, # Compress destination file $lModificationTime, # File modification time $bIgnoreMissing, # Is it OK if the file is missing? @@ -176,73 +60,93 @@ sub backupFile logDebugParam ( __PACKAGE__ . '::backupFile', \@_, - {name => 'oFile', trace => true}, {name => 'strDbFile', trace => true}, {name => 'strRepoFile', trace => true}, {name => 'lSizeFile', trace => true}, {name => 'strChecksum', required => false, trace => true}, {name => 'bChecksumPage', trace => true}, + {name => 'strBackupLabel', trace => true}, {name => 'bDestinationCompress', trace => true}, {name => 'lModificationTime', trace => true}, {name => 'bIgnoreMissing', default => true, trace => true}, {name => 'hExtraParam', required => false, trace => true}, ); + my $oStorageRepo = storageRepo(); # Repo storage my $iCopyResult = BACKUP_FILE_COPY; # Copy result my $strCopyChecksum; # Copy checksum my $rExtra; # Page checksum result my $lCopySize; # Copy Size my $lRepoSize; # Repo size + # Add compression suffix if needed + my $strFileOp = $strRepoFile . ($bDestinationCompress ? '.' . COMPRESS_EXT : ''); + # If checksum is defined then the file already exists but needs to be checked my $bCopy = true; - # Add compression suffix if needed - my $strFileOp = $strRepoFile . ($bDestinationCompress ? '.' . $oFile->{strCompressExtension} : ''); - if (defined($strChecksum)) { - ($strCopyChecksum, $lCopySize) = - $oFile->hashSize(PATH_BACKUP_TMP, $strFileOp, $bDestinationCompress); + # Get the checksum + ($strCopyChecksum, $lCopySize) = $oStorageRepo->hashSize( + $oStorageRepo->openRead( + STORAGE_REPO_BACKUP . "/${strBackupLabel}/${strFileOp}", + {rhyFilter => $bDestinationCompress ? + [{strClass => STORAGE_FILTER_GZIP, rxyParam => [{strCompressType => STORAGE_DECOMPRESS}]}] : undef})); + # Determine if the file needs to be recopied $bCopy = !($strCopyChecksum eq $strChecksum && $lCopySize == $lSizeFile); - if ($bCopy) - { - $iCopyResult = BACKUP_FILE_RECOPY; - } - else - { - $iCopyResult = BACKUP_FILE_CHECKSUM; - } + # Set copy result + $iCopyResult = $bCopy ? BACKUP_FILE_RECOPY : BACKUP_FILE_CHECKSUM; } + # Copy the file if ($bCopy) { - # Determine which segment no this is by checking for a numeric extension. No extension means segment 0. + # Add sha filter + my $rhyFilter = [{strClass => STORAGE_FILTER_SHA}]; + + # Add page checksum filter if ($bChecksumPage) { - $hExtraParam->{iSegmentNo} = ($strDbFile =~ /\.[0-9]+$/) ? substr(($strDbFile =~ m/\.[0-9]+$/g)[0], 1) + 0 : 0; + # Determine which segment no this is by checking for a numeric extension. No extension means segment 0. + my $iSegmentNo = ($strDbFile =~ /\.[0-9]+$/) ? substr(($strDbFile =~ m/\.[0-9]+$/g)[0], 1) + 0 : 0; + + push( + @{$rhyFilter}, + {strClass => BACKUP_FILTER_PAGECHECKSUM, + rxyParam => [$iSegmentNo, $hExtraParam->{iWalId}, $hExtraParam->{iWalOffset}]}); + }; + + # Add compression + if ($bDestinationCompress) + { + push(@{$rhyFilter}, {strClass => STORAGE_FILTER_GZIP}); } - # Copy the file from the database to the backup (will return false if the source file is missing) - (my $bCopyResult, $strCopyChecksum, $lCopySize, $rExtra) = $oFile->copy( - PATH_DB_ABSOLUTE, $strDbFile, - PATH_BACKUP_TMP, $strFileOp, - false, # Source is not compressed since it is the db directory - $bDestinationCompress, # Destination should be compressed based on backup settings - $bIgnoreMissing, # Ignore missing files - undef, # Do not set modification time - undef, # Do not set original mode - true, # Create the destination directory if it does not exist - undef, undef, undef, undef, # Unused - $bChecksumPage ? # Function to process page checksums - 'pgBackRest::Backup::File::backupChecksumPage' : undef, - $hExtraParam, # Start LSN to pass to extra function - false); # Don't copy via a temp file + # Open the file + my $oSourceFileIo = storageDb()->openRead($strDbFile, {rhyFilter => $rhyFilter, bIgnoreMissing => true}); - # If source file is missing then assume the database removed it (else corruption and nothing we can do!) - if (!$bCopyResult) + # If source file exists + if (defined($oSourceFileIo)) + { + # Copy the file + $oStorageRepo->copy( + $oSourceFileIo, + $oStorageRepo->openWrite( + STORAGE_REPO_BACKUP . "/${strBackupLabel}/${strFileOp}", + {bPathCreate => true, bProtocolCompress => !$bDestinationCompress})); + + # Get sha checksum and size + $strCopyChecksum = $oSourceFileIo->result(STORAGE_FILTER_SHA); + $lCopySize = $oSourceFileIo->result(COMMON_IO_HANDLE); + + # Get results of page checksum validation + $rExtra = $bChecksumPage ? $oSourceFileIo->result(BACKUP_FILTER_PAGECHECKSUM) : undef; + } + # Else if source file is missing the database removed it + else { $iCopyResult = BACKUP_FILE_SKIP; } @@ -252,7 +156,7 @@ sub backupFile # compression may affect the actual repo size and this cannot be calculated in stream. if ($iCopyResult == BACKUP_FILE_COPY || $iCopyResult == BACKUP_FILE_RECOPY || $iCopyResult == BACKUP_FILE_CHECKSUM) { - $lRepoSize = (fileStat($oFile->pathGet(PATH_BACKUP_TMP, $strFileOp)))->size; + $lRepoSize = ($oStorageRepo->info(STORAGE_REPO_BACKUP . "/${strBackupLabel}/${strFileOp}"))->size(); } # Return from function and log return values if any @@ -448,7 +352,8 @@ sub backupManifestUpdate if ($lManifestSaveCurrent >= $lManifestSaveSize) { - $oManifest->save(); + $oManifest->saveCopy(); + logDebugMisc ( $strOperation, 'save manifest', diff --git a/lib/pgBackRest/Backup/Filter/PageChecksum.pm b/lib/pgBackRest/Backup/Filter/PageChecksum.pm new file mode 100644 index 000000000..166f97853 --- /dev/null +++ b/lib/pgBackRest/Backup/Filter/PageChecksum.pm @@ -0,0 +1,196 @@ +#################################################################################################################################### +# Backup Page Checksum Filter +#################################################################################################################################### +package pgBackRest::Backup::Filter::PageChecksum; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Exporter qw(import); + our @EXPORT = qw(); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; +use pgBackRest::DbVersion qw(PG_PAGE_SIZE); + +#################################################################################################################################### +# Package name constant +#################################################################################################################################### +use constant BACKUP_FILTER_PAGECHECKSUM => __PACKAGE__; + push @EXPORT, qw(BACKUP_FILTER_PAGECHECKSUM); + +#################################################################################################################################### +# Load the C library if present +#################################################################################################################################### +my $bLibC = false; + +eval +{ + # Load the C library only if page checksums are required + require pgBackRest::LibC; + pgBackRest::LibC->import(qw(:checksum)); + + $bLibC = true; + + return 1; +} or do {}; + +#################################################################################################################################### +# isLibC +# +# Does the C library exist? +#################################################################################################################################### +sub isLibC +{ + return $bLibC; +} + +push @EXPORT, qw(isLibC); + +#################################################################################################################################### +# CONSTRUCTOR +#################################################################################################################################### +our @ISA = (); ## no critic (ClassHierarchies::ProhibitExplicitISA) + +sub new +{ + my $class = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $self, + $iSegmentNo, + $iWalId, + $iWalOffset, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'self', trace => true}, + {name => 'iSegmentNo', trace => true}, + {name => 'iWalId', trace => true}, + {name => 'iWalOffset', trace => true}, + ); + + # Bless with new class + @ISA = $self->isA(); ## no critic (ClassHierarchies::ProhibitExplicitISA) + bless $self, $class; + + # Set variables + $self->{iSegmentNo} = $iSegmentNo; + $self->{iWalId} = $iWalId; + $self->{iWalOffset} = $iWalOffset; + + # Create the result object + $self->{hResult}{bValid} = true; + $self->{hResult}{bAlign} = true; + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self} + ); +} + +#################################################################################################################################### +# read - validate page checksums +#################################################################################################################################### +sub read +{ + my $self = shift; + my $rtBuffer = shift; + my $iSize = shift; + + # Call the io method + my $iActualSize = $self->SUPER::read($rtBuffer, $iSize); + + # Validate page checksums for the read block + if ($iActualSize > 0) + { + # If the buffer is not divisible by 0 then it's not valid + if (!$self->{hResult}{bAlign} || ($iActualSize % PG_PAGE_SIZE != 0)) + { + if (!$self->{hResult}{bAlign}) + { + confess &log(ASSERT, "should not be possible to see two misaligned blocks in a row"); + } + + $self->{hResult}{bValid} = false; + $self->{hResult}{bAlign} = false; + delete($self->{hResult}{iyPageError}); + } + else + { + # Calculate offset to the first block in the buffer + my $iBlockOffset = int(($self->size() - $iActualSize) / PG_PAGE_SIZE) + ($self->{iSegmentNo} * 131072); + + if (!pageChecksumBufferTest( + $$rtBuffer, $iActualSize, $iBlockOffset, PG_PAGE_SIZE, $self->{iWalId}, + $self->{iWalOffset})) + { + $self->{hResult}{bValid} = false; + + # Now figure out exactly where the errors occurred. It would be more efficient if the checksum function returned an + # array, but we're hoping there won't be that many errors to scan so this should work fine. + for (my $iBlockNo = 0; $iBlockNo < int($iActualSize / PG_PAGE_SIZE); $iBlockNo++) + { + my $iBlockNoStart = $iBlockOffset + $iBlockNo; + + if (!pageChecksumTest( + substr($$rtBuffer, $iBlockNo * PG_PAGE_SIZE, PG_PAGE_SIZE), $iBlockNoStart, PG_PAGE_SIZE, + $self->{iWalId}, $self->{iWalOffset})) + { + my $iLastIdx = defined($self->{hResult}{iyPageError}) ? @{$self->{hResult}{iyPageError}} - 1 : 0; + my $iyLast = defined($self->{hResult}{iyPageError}) ? $self->{hResult}{iyPageError}[$iLastIdx] : undef; + + if (!defined($iyLast) || (!ref($iyLast) && $iyLast != $iBlockNoStart - 1) || + (ref($iyLast) && $iyLast->[1] != $iBlockNoStart - 1)) + { + push(@{$self->{hResult}{iyPageError}}, $iBlockNoStart); + } + elsif (!ref($iyLast)) + { + $self->{hResult}{iyPageError}[$iLastIdx] = undef; + push(@{$self->{hResult}{iyPageError}[$iLastIdx]}, $iyLast); + push(@{$self->{hResult}{iyPageError}[$iLastIdx]}, $iBlockNoStart); + } + else + { + $self->{hResult}{iyPageError}[$iLastIdx][1] = $iBlockNoStart; + } + } + } + } + } + } + + # Return the actual size read + return $iActualSize; +} + +#################################################################################################################################### +# close - close and set the result +#################################################################################################################################### +sub close +{ + my $self = shift; + + if (defined($self->{hResult})) + { + # Set result + $self->resultSet(BACKUP_FILTER_PAGECHECKSUM, $self->{hResult}); + + # Delete the sha object + undef($self->{hResult}); + + # Close io + return $self->SUPER::close(); + } +} + +1; diff --git a/lib/pgBackRest/Backup/Info.pm b/lib/pgBackRest/Backup/Info.pm index 36a8930d7..da235e153 100644 --- a/lib/pgBackRest/Backup/Info.pm +++ b/lib/pgBackRest/Backup/Info.pm @@ -20,12 +20,11 @@ use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::InfoCommon; use pgBackRest::Manifest; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; #################################################################################################################################### # File/path constants @@ -115,6 +114,9 @@ sub new $strBackupClusterPath, $bValidate, $bRequired, + $oStorage, + $bLoad, # Should the file attemp to be loaded? + $bIgnoreMissing, # Don't error on missing files ) = logDebugParam ( @@ -122,24 +124,50 @@ sub new {name => 'strBackupClusterPath'}, {name => 'bValidate', default => true}, {name => 'bRequired', default => true}, + {name => 'oStorage', optional => true, default => storageRepo()}, + {name => 'bLoad', optional => true, default => true}, + {name => 'bIgnoreMissing', optional => true, default => false}, ); # Build the backup info path/file name my $strBackupInfoFile = "${strBackupClusterPath}/" . FILE_BACKUP_INFO; - my $bExists = fileExists($strBackupInfoFile); - - # If the backup info file does not exist and is required, then throw an error - # The backup.info is only allowed not to exist when running a stanza-create on a new install - if (!$bExists && $bRequired) - { - confess &log(ERROR, "${strBackupClusterPath}/$strBackupInfoMissingMsg", ERROR_FILE_MISSING); - } + my $self = {}; + my $iResult = 0; + my $strResultMessage; # Init object and store variables - my $self = $class->SUPER::new($strBackupInfoFile, {bLoad => $bExists}); + eval + { + $self = $class->SUPER::new($strBackupInfoFile, {bLoad => $bLoad, bIgnoreMissing => $bIgnoreMissing, + oStorage => $oStorage}); + return true; + } + or do + { + # Capture error information + $iResult = exceptionCode($EVAL_ERROR); + $strResultMessage = exceptionMessage($EVAL_ERROR->message()); + }; + + if ($iResult != 0) + { + # If the backup info file does not exist and is required, then throw an error + # The backup info is only allowed not to exist when running a stanza-create on a new install + if ($iResult == ERROR_FILE_MISSING) + { + if ($bRequired) + { + confess &log(ERROR, "${strBackupClusterPath}/$strBackupInfoMissingMsg", ERROR_FILE_MISSING); + } + } + else + { + confess &log(ERROR, $strResultMessage, $iResult); + } + } - $self->{bExists} = $bExists; $self->{strBackupClusterPath} = $strBackupClusterPath; + $self->{oStorage} = $oStorage; # Validate the backup info if ($bValidate) @@ -209,14 +237,15 @@ sub reconstruct ); # Check for backups that are not in FILE_BACKUP_INFO - foreach my $strBackup (fileList($self->{strBackupClusterPath}, {strExpression => backupRegExpGet(true, true, true)})) + foreach my $strBackup ($self->{oStorage}->list( + $self->{strBackupClusterPath}, {strExpression => backupRegExpGet(true, true, true)})) { my $strManifestFile = "$self->{strBackupClusterPath}/${strBackup}/" . FILE_MANIFEST; # ??? Check for and move history files that were not moved before and maybe don't consider it to be an error when they # can't be moved. This would also be true for the first move attempt in Backup->process(); - if (!$self->current($strBackup) && fileExists($strManifestFile)) + if (!$self->current($strBackup) && $self->{oStorage}->exists($strManifestFile)) { my $oManifest = pgBackRest::Manifest->new($strManifestFile); @@ -298,12 +327,12 @@ sub reconstruct my $strManifestFile = "$self->{strBackupClusterPath}/${strBackup}/" . FILE_MANIFEST; my $strBackupPath = "$self->{strBackupClusterPath}/${strBackup}"; - if (!fileExists($strBackupPath)) + if (!$self->{oStorage}->pathExists($strBackupPath)) { &log(WARN, "backup ${strBackup} missing in repository removed from " . FILE_BACKUP_INFO); $self->delete($strBackup); } - elsif (!fileExists($strManifestFile)) + elsif (!$self->{oStorage}->exists($strManifestFile)) { &log(WARN, "backup ${strBackup} missing manifest removed from " . FILE_BACKUP_INFO); $self->delete($strBackup); diff --git a/lib/pgBackRest/Check/Check.pm b/lib/pgBackRest/Check/Check.pm index 16715f9ca..91e2da884 100644 --- a/lib/pgBackRest/Check/Check.pm +++ b/lib/pgBackRest/Check/Check.pm @@ -16,9 +16,8 @@ use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; use pgBackRest::Db; -use pgBackRest::File; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; #################################################################################################################################### # constructor @@ -56,14 +55,6 @@ sub process # Assign function parameters, defaults, and log debug info my $strOperation = logDebugParam(__PACKAGE__ . '->process'); - # Initialize default file object - my $oFile = new pgBackRest::File - ( - optionGet(OPTION_STANZA), - optionGet(OPTION_REPO_PATH), - protocolGet(isRepoLocal() ? DB : BACKUP) - ); - # Initialize the database object my $oDb = dbMasterGet(); @@ -88,7 +79,7 @@ sub process eval { # Check that the backup info file is written and is valid for the current database of the stanza - $self->backupInfoCheck($oFile); + $self->backupInfoCheck(); return true; } # If there is an unhandled error then confess @@ -105,7 +96,7 @@ sub process eval { # Check that the archive info file is written and is valid for the current database of the stanza - ($strArchiveId) = new pgBackRest::Archive::ArchiveGet()->getCheck($oFile); + ($strArchiveId) = new pgBackRest::Archive::ArchiveGet()->getCheck(); return true; } or do @@ -123,7 +114,7 @@ sub process eval { - $strArchiveFile = walSegmentFind($oFile, $strArchiveId, $strWalSegment, $iArchiveTimeout); + $strArchiveFile = walSegmentFind(storageRepo(), $strArchiveId, $strWalSegment, $iArchiveTimeout); return true; } # If this is a backrest error then capture the code and message else confess @@ -146,7 +137,7 @@ sub process { &log(INFO, "WAL segment ${strWalSegment} successfully stored in the archive at '" . - $oFile->pathGet(PATH_BACKUP_ARCHIVE, "$strArchiveId/${strArchiveFile}") . "'"); + storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . "/$strArchiveId/${strArchiveFile}") . "'"); } else { @@ -163,7 +154,7 @@ sub process &log(WARN, "WAL segment ${strWalSegment} did not reach the archive:" . (defined($strArchiveId) ? $strArchiveId : '') . "\n" . "HINT: Check the archive_command to ensure that all options are correct (especialy --stanza).\n" . - "HINT: Check the PostreSQL server log for errors."); + "HINT: Check the PostgreSQL server log for errors."); } } @@ -173,7 +164,6 @@ sub process $strOperation, {name => 'iResult', value => $iResult, trace => true} ); - } #################################################################################################################################### @@ -189,16 +179,14 @@ sub backupInfoCheck my ( $strOperation, - $oFile, $strDbVersion, $iControlVersion, $iCatalogVersion, - $ullDbSysId + $ullDbSysId, ) = logDebugParam ( __PACKAGE__ . '->backupInfoCheck', \@_, - {name => 'oFile'}, {name => 'strDbVersion', required => false}, {name => 'iControlVersion', required => false}, {name => 'iCatalogVersion', required => false}, @@ -214,14 +202,14 @@ sub backupInfoCheck ($strDbVersion, $iControlVersion, $iCatalogVersion, $ullDbSysId) = dbMasterGet()->info(); } - if ($oFile->isRemote(PATH_BACKUP)) + if (!isRepoLocal()) { - $iDbHistoryId = $oFile->{oProtocol}->cmdExecute( + $iDbHistoryId = protocolGet(BACKUP)->cmdExecute( OP_CHECK_BACKUP_INFO_CHECK, [$strDbVersion, $iControlVersion, $iCatalogVersion, $ullDbSysId]); } else { - $iDbHistoryId = (new pgBackRest::Backup::Info($oFile->pathGet(PATH_BACKUP_CLUSTER)))->check( + $iDbHistoryId = (new pgBackRest::Backup::Info(storageRepo()->pathGet(STORAGE_REPO_BACKUP)))->check( $strDbVersion, $iControlVersion, $iCatalogVersion, $ullDbSysId); } diff --git a/lib/pgBackRest/Common/Exception.pm b/lib/pgBackRest/Common/Exception.pm index 6980f88f6..789fe3308 100644 --- a/lib/pgBackRest/Common/Exception.pm +++ b/lib/pgBackRest/Common/Exception.pm @@ -152,6 +152,10 @@ use constant ERROR_OPTION_COMMAND => ERROR_MIN push @EXPORT, qw(ERROR_OPTION_COMMAND); use constant ERROR_GROUP_MISSING => ERROR_MINIMUM + 66; push @EXPORT, qw(ERROR_GROUP_MISSING); +use constant ERROR_PATH_EXISTS => ERROR_MINIMUM + 67; + push @EXPORT, qw(ERROR_PATH_EXISTS); +use constant ERROR_FILE_EXISTS => ERROR_MINIMUM + 68; + push @EXPORT, qw(ERROR_FILE_EXISTS); use constant ERROR_INVALID_VALUE => ERROR_MAXIMUM - 2; push @EXPORT, qw(ERROR_INVALID_VALUE); diff --git a/lib/pgBackRest/Common/Ini.pm b/lib/pgBackRest/Common/Ini.pm index 8e3f27e6f..a1e542352 100644 --- a/lib/pgBackRest/Common/Ini.pm +++ b/lib/pgBackRest/Common/Ini.pm @@ -8,6 +8,7 @@ use warnings FATAL => qw(all); use Carp qw(confess); use English '-no_match_vars'; +use Digest::SHA; use Exporter qw(import); our @EXPORT = qw(); use Fcntl qw(:mode O_WRONLY O_CREAT O_TRUNC); @@ -19,7 +20,6 @@ use Storable qw(dclone); use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::FileCommon; use pgBackRest::Version; #################################################################################################################################### @@ -43,6 +43,12 @@ use constant INI_KEY_FORMAT => 'backrest use constant INI_KEY_VERSION => 'backrest-version'; push @EXPORT, qw(INI_KEY_VERSION); +#################################################################################################################################### +# Ini file copy extension +#################################################################################################################################### +use constant INI_COPY_EXT => '.copy'; + push @EXPORT, qw(INI_COPY_EXT); + #################################################################################################################################### # Ini sort orders #################################################################################################################################### @@ -64,14 +70,20 @@ sub new my $self = {}; bless $self, $class; + # Load Storage::Helper module + require pgBackRest::Storage::Helper; + pgBackRest::Storage::Helper->import(); + # Assign function parameters, defaults, and log debug info ( my $strOperation, $self->{strFileName}, my $bLoad, my $strContent, + $self->{oStorage}, $self->{iInitFormat}, $self->{strInitVersion}, + my $bIgnoreMissing, ) = logDebugParam ( @@ -79,13 +91,12 @@ sub new {name => 'strFileName', trace => true}, {name => 'bLoad', optional => true, default => true, trace => true}, {name => 'strContent', optional => true, trace => true}, + {name => 'oStorage', optional => true, default => storageLocal(), trace => true}, {name => 'iInitFormat', optional => true, default => BACKREST_FORMAT, trace => true}, {name => 'strInitVersion', optional => true, default => BACKREST_VERSION, trace => true}, + {name => 'bIgnoreMissing', optional => true, default => false, trace => true}, ); - # Set variables - $self->{oContent} = {}; - # Set changed to false $self->{bModified} = false; @@ -95,7 +106,7 @@ sub new # Load the file if requested if ($bLoad) { - $self->load(); + $self->load($bIgnoreMissing); } # Load from a string if provided elsif (defined($strContent)) @@ -103,8 +114,9 @@ sub new $self->{oContent} = iniParse($strContent); $self->headerCheck(); } - # Else initialize - else + + # Initialize if not loading from string and file does not exist + if (!$self->{bExists} && !defined($strContent)) { $self->numericSet(INI_SECTION_BACKREST, INI_KEY_FORMAT, undef, $self->{iInitFormat}); $self->set(INI_SECTION_BACKREST, INI_KEY_VERSION, undef, $self->{strInitVersion}); @@ -114,14 +126,59 @@ sub new } #################################################################################################################################### -# load() - load the ini. +# loadVersion() - load a version (main or copy) of the ini file +#################################################################################################################################### +sub loadVersion +{ + my $self = shift; + my $bCopy = shift; + my $bIgnoreError = shift; + + # Load main + my $rstrContent = $self->{oStorage}->get( + $self->{oStorage}->openRead($self->{strFileName} . ($bCopy ? INI_COPY_EXT : ''), {bIgnoreMissing => $bIgnoreError})); + + # If the file exists then attempt to parse it + if (defined($rstrContent)) + { + + my $rhContent = iniParse($$rstrContent, {bIgnoreInvalid => $bIgnoreError}); + + # If the content is valid then check the header + if (defined($rhContent)) + { + $self->{oContent} = $rhContent; + + # If the header is invalid then undef content + if (!$self->headerCheck({bIgnoreInvalid => $bIgnoreError})) + { + delete($self->{oContent}); + } + } + } + + return defined($self->{oContent}); +} + +#################################################################################################################################### +# load() - load the ini #################################################################################################################################### sub load { my $self = shift; + my $bIgnoreMissing = shift; + + # If main was not loaded then try the copy + if (!$self->loadVersion(false, true)) + { + if (!$self->loadVersion(true, true)) + { + return if $bIgnoreMissing; + + confess &log(ERROR, "unable to open $self->{strFileName} or $self->{strFileName}" . INI_COPY_EXT, ERROR_FILE_MISSING); + } + } - $self->{oContent} = iniParse(fileStringRead($self->{strFileName})); - $self->headerCheck(); $self->{bExists} = true; } @@ -149,6 +206,7 @@ sub headerCheck eval { + # Make sure the ini is valid by testing checksum my $strChecksum = $self->get(INI_SECTION_BACKREST, INI_KEY_CHECKSUM, undef, false); my $strTestChecksum = $self->hash(); @@ -216,7 +274,7 @@ sub iniParse logDebugParam ( __PACKAGE__ . '::iniParse', \@_, - {name => 'strContent', trace => true}, + {name => 'strContent', required => false, trace => true}, {name => 'bRelaxed', optional => true, default => false, trace => true}, {name => 'bIgnoreInvalid', optional => true, default => false, trace => true}, ); @@ -232,7 +290,7 @@ sub iniParse eval { # Read the INI file - foreach my $strLine (split("\n", $strContent)) + foreach my $strLine (split("\n", defined($strContent) ? $strContent : '')) { $strLine = trim($strLine); @@ -323,13 +381,17 @@ sub save { my $self = shift; + # Save only if modified if ($self->{bModified}) { # Calculate the hash $self->hash(); # Save the file - fileStringWrite($self->{strFileName}, iniRender($self->{oContent})); + $self->{oStorage}->put($self->{strFileName}, iniRender($self->{oContent})); + $self->{oStorage}->pathSync(dirname($self->{strFileName})); + $self->{oStorage}->put($self->{strFileName} . INI_COPY_EXT, iniRender($self->{oContent})); + $self->{oStorage}->pathSync(dirname($self->{strFileName})); $self->{bModified} = false; # Indicate the file now exists @@ -343,6 +405,22 @@ sub save return false; } +#################################################################################################################################### +# saveCopy - save only a copy of the file. +#################################################################################################################################### +sub saveCopy +{ + my $self = shift; + + if ($self->{oStorage}->exists($self->{strFileName})) + { + confess &log(ASSERT, "cannot save copy only when '$self->{strFileName}' exists"); + } + + $self->hash(); + $self->{oStorage}->put($self->{strFileName} . INI_COPY_EXT, iniRender($self->{oContent})); +} + #################################################################################################################################### # iniRender() - render hash to standard INI format. #################################################################################################################################### @@ -435,7 +513,6 @@ sub hash delete($self->{oContent}{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM}); # Calculate the checksum - my $oChecksumContent = dclone($self->{oContent}); my $oSHA = Digest::SHA->new('sha1'); my $oJSON = JSON::PP->new()->canonical()->allow_nonref(); $oSHA->add($oJSON->encode($self->{oContent})); diff --git a/lib/pgBackRest/Common/Io/Base.pm b/lib/pgBackRest/Common/Io/Base.pm new file mode 100644 index 000000000..5a3210edb --- /dev/null +++ b/lib/pgBackRest/Common/Io/Base.pm @@ -0,0 +1,126 @@ +#################################################################################################################################### +# Base IO/Filter Module +#################################################################################################################################### +package pgBackRest::Common::Io::Base; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Exporter qw(import); + our @EXPORT = qw(); +use Scalar::Util qw(blessed); + +use pgBackRest::Common::Log; + +#################################################################################################################################### +# Package name constant +#################################################################################################################################### +use constant COMMON_IO_BASE => __PACKAGE__; + push @EXPORT, qw(COMMON_IO_BASE); + +#################################################################################################################################### +# Default buffer max +#################################################################################################################################### +use constant COMMON_IO_BUFFER_MAX => 4194304; + push @EXPORT, qw(COMMON_IO_BUFFER_MAX); + +#################################################################################################################################### +# new +#################################################################################################################################### +sub new +{ + my $class = shift; + + # Create the class hash + my $self = {}; + bless $self, $class; + + # Assign function parameters, defaults, and log debug info + ( + my $strOperation, + $self->{strId}, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'strId', trace => true}, + ); + + # Initialize the ISA stack + $self->{stryIsA} = [COMMON_IO_BASE]; + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self} + ); +} + +#################################################################################################################################### +# error - throw errors +#################################################################################################################################### +sub error +{ + my $self = shift; + my $iCode = shift; + my $strMessage = shift; + my $strDetail = shift; + + logErrorResult($iCode, $strMessage, $strDetail); +} + +#################################################################################################################################### +# isA - get the list of parent classes and add the current class +#################################################################################################################################### +sub isA +{ + my $self = shift; + + unshift(@{$self->{stryIsA}}, $self->className()); + + return @{$self->{stryIsA}}; +} + +#################################################################################################################################### +# result - retrieve a result from io or a filter +#################################################################################################################################### +sub result +{ + my $self = shift; + my $strModule = shift; + + if (!defined($strModule)) + { + return $self->{rhResult}; + } + + return $self->{rhResult}{$strModule}; +} + +#################################################################################################################################### +# resultSet - set a result from io or a filter +#################################################################################################################################### +sub resultSet +{ + my $self = shift; + my $strModule = shift; + my $xResult = shift; + + $self->{rhResult}{$strModule} = $xResult; +} + +#################################################################################################################################### +# DESTROY - call close() +#################################################################################################################################### +sub DESTROY {shift->close()} + +#################################################################################################################################### +# Getters +#################################################################################################################################### +sub className {blessed(shift)} +sub id {shift->{strId}} + +1; diff --git a/lib/pgBackRest/Common/Io/Buffered.pm b/lib/pgBackRest/Common/Io/Buffered.pm new file mode 100644 index 000000000..1825ca3a4 --- /dev/null +++ b/lib/pgBackRest/Common/Io/Buffered.pm @@ -0,0 +1,266 @@ +#################################################################################################################################### +# Buffered Handle IO +#################################################################################################################################### +package pgBackRest::Common::Io::Buffered; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Exporter qw(import); + our @EXPORT = qw(); +use IO::Select; +use Time::HiRes qw(gettimeofday); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Io::Base; +use pgBackRest::Common::Log; +use pgBackRest::Common::Wait; + +#################################################################################################################################### +# Package name constant +#################################################################################################################################### +use constant COMMON_IO_BUFFERED => __PACKAGE__; + push @EXPORT, qw(COMMON_IO_BUFFERED); + +#################################################################################################################################### +# CONSTRUCTOR +#################################################################################################################################### +our @ISA = (); ## no critic (ClassHierarchies::ProhibitExplicitISA) + +sub new +{ + my $class = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $self, + $iTimeout, + $lBufferMax, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'self', trace => true}, + {name => 'iTimeout', default => 0, trace => true}, + {name => 'lBufferMax', default => COMMON_IO_BUFFER_MAX, trace => true}, + ); + + # Bless with new class + @ISA = $self->isA(); ## no critic (ClassHierarchies::ProhibitExplicitISA) + bless $self, $class; + + # Set write handle so select object is created + $self->handleReadSet($self->handleRead()); + + # Set variables + $self->{iTimeout} = $iTimeout; + $self->{lBufferMax} = $lBufferMax; + + # Initialize buffer + $self->{tBuffer} = ''; + $self->{lBufferSize} = 0; + $self->{lBufferPos} = 0; + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self} + ); +} + +#################################################################################################################################### +# read - buffered read from a handle with optional blocking +#################################################################################################################################### +sub read +{ + my $self = shift; + my $tBufferRef = shift; + my $iRequestSize = shift; + my $bBlock = shift; + + # Set working variables + my $iRemainingSize = $iRequestSize; + + # If there is data left over in the buffer from lineRead then use it + my $lBufferRemaining = $self->{lBufferSize} - $self->{lBufferPos}; + + if ($lBufferRemaining > 0) + { + my $iReadSize = $iRequestSize < $lBufferRemaining ? $iRequestSize : $lBufferRemaining; + + $$tBufferRef .= substr($self->{tBuffer}, $self->{lBufferPos}, $iReadSize); + $self->{lBufferPos} += $iReadSize; + + $iRemainingSize -= $iReadSize; + } + + # If this is a blocking read then loop until all bytes have been read, else error. If not blocking read until the request size + # has been met or EOF. + my $fTimeStart = gettimeofday(); + my $fRemaining = $self->timeout(); + + while ($iRemainingSize > 0 && $fRemaining > 0) + { + # Check if the sysread call will block + if ($self->{oReadSelect}->can_read($fRemaining)) + { + # Read data into the buffer + my $iReadSize = $self->SUPER::read($tBufferRef, $iRemainingSize); + + # Check for EOF + if ($iReadSize == 0) + { + if ($bBlock) + { + $self->error(ERROR_FILE_READ, "unable to read ${iRequestSize} byte(s) due to EOF from " . $self->id()); + } + else + { + return $iRequestSize - $iRemainingSize; + } + } + + # Update remaining size and return when it reaches 0 + $iRemainingSize -= $iReadSize; + } + + # Calculate time remaining before timeout + $fRemaining = $self->timeout() - (gettimeofday() - $fTimeStart); + }; + + # Throw an error if timeout happened before required bytes were read + if ($iRemainingSize != 0 && $bBlock) + { + $self->error( + ERROR_FILE_READ, "unable to read ${iRequestSize} byte(s) after " . $self->timeout() . ' second(s) from ' . $self->id()); + } + + return $iRequestSize - $iRemainingSize; +} + +#################################################################################################################################### +# readLine - read the next lf-terminated line. +#################################################################################################################################### +sub readLine +{ + my $self = shift; + my $bIgnoreEOF = shift; + my $bError = shift; + + # Try to find the next linefeed + my $iLineFeedPos = index($self->{tBuffer}, "\n", $self->{lBufferPos}); + + # If no linefeed was found then load more data + if ($iLineFeedPos == -1) + { + my $fRemaining = $self->timeout(); + my $fTimeStart = gettimeofday(); + + # Load data + do + { + # If the buffer already has data and the buffer position is not 0 then trim it so there's room for more data + if ($self->{lBufferPos} != 0) + { + $self->{tBuffer} = substr($self->{tBuffer}, $self->{lBufferPos}); + $self->{lBufferSize} = $self->{lBufferSize} - $self->{lBufferPos}; + $self->{lBufferPos} = 0; + } + + # Load data into the buffer + my $iBufferRead = 0; + + if ($self->{oReadSelect}->can_read($fRemaining)) + { + $iBufferRead = $self->SUPER::read( + \$self->{tBuffer}, + $self->{lBufferSize} >= $self->bufferMax() ? $self->bufferMax() : $self->bufferMax() - $self->{lBufferSize}); + + # Check for EOF + if ($iBufferRead == 0) + { + # Return undef if EOF is ignored + if (defined($bIgnoreEOF) && $bIgnoreEOF) + { + return; + } + + # Else throw an error + $self->error(ERROR_FILE_READ, 'unexpected EOF reading line from ' . $self->id()); + } + } + + # If data was read then check for a linefeed + if ($iBufferRead > 0) + { + $self->{lBufferSize} += $iBufferRead; + + $iLineFeedPos = index($self->{tBuffer}, "\n"); + } + + # Calculate time remaining before timeout + if ($iLineFeedPos == -1) + { + $fRemaining = $self->timeout() - (gettimeofday() - $fTimeStart); + } + } + while ($iLineFeedPos == -1 && $fRemaining > 0); + + # If not linefeed was found within the timeout throw error + if ($iLineFeedPos == -1) + { + if (!defined($bError) || $bError) + { + $self->error( + ERROR_FILE_READ, 'unable to read line after ' . $self->timeout() . ' second(s) from ' . $self->id()); + } + + return; + } + } + + # Return the line that was found and adjust the buffer position + my $strLine = substr($self->{tBuffer}, $self->{lBufferPos}, $iLineFeedPos - $self->{lBufferPos}); + $self->{lBufferPos} = $iLineFeedPos + 1; + + return $strLine; +} + +#################################################################################################################################### +# writeLine - write a string and \n terminate it +#################################################################################################################################### +sub writeLine +{ + my $self = shift; + my $strBuffer = shift; + + $strBuffer .= "\n"; + return $self->SUPER::write(\$strBuffer); +} + +#################################################################################################################################### +# Getters/Setters +#################################################################################################################################### +sub timeout {shift->{iTimeout}}; +sub bufferMax {shift->{lBufferMax}}; + +#################################################################################################################################### +# handleReadSet - create a select object when read handle is set +#################################################################################################################################### +sub handleReadSet +{ + my $self = shift; + my $fhRead = shift; + + $self->SUPER::handleReadSet($fhRead); + + $self->{oReadSelect} = IO::Select->new(); + $self->{oReadSelect}->add($self->handleRead()); +} + +1; diff --git a/lib/pgBackRest/Common/Io/Handle.pm b/lib/pgBackRest/Common/Io/Handle.pm new file mode 100644 index 000000000..d82e67a17 --- /dev/null +++ b/lib/pgBackRest/Common/Io/Handle.pm @@ -0,0 +1,157 @@ +#################################################################################################################################### +# Basic Handle IO +#################################################################################################################################### +package pgBackRest::Common::Io::Handle; +use parent 'pgBackRest::Common::Io::Base'; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Exporter qw(import); + our @EXPORT = qw(); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; + +#################################################################################################################################### +# Package name constant +#################################################################################################################################### +use constant COMMON_IO_HANDLE => __PACKAGE__; + push @EXPORT, qw(COMMON_IO_HANDLE); + +#################################################################################################################################### +# new +#################################################################################################################################### +sub new +{ + my $class = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strId, + $fhRead, + $fhWrite, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'strId', trace => true}, + {name => 'fhRead', required => false, trace => true}, + {name => 'fhWrite', required => false, trace => true}, + ); + + # Create class + my $self = $class->SUPER::new($strId); + bless $self, $class; + + # Set handles + $self->handleReadSet($fhRead) if defined($fhRead); + $self->handleWriteSet($fhWrite) if defined($fhWrite); + + # Size tracks number of bytes read and written + $self->{lSize} = 0; + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self} + ); +} + +#################################################################################################################################### +# read - read data from handle +#################################################################################################################################### +sub read +{ + my $self = shift; + my $rtBuffer = shift; + my $iSize = shift; + + # Read the block + my $iActualSize; + + eval + { + $iActualSize = sysread($self->handleRead(), $$rtBuffer, $iSize, defined($$rtBuffer) ? length($$rtBuffer) : 0); + return true; + } + or do + { + $self->error(ERROR_FILE_READ, 'unable to read from ' . $self->id(), $EVAL_ERROR); + }; + + # Report any errors + # uncoverable branch true - all errors seem to be caught by the handler above but check for error here just in case + defined($iActualSize) + or $self->error(ERROR_FILE_READ, 'unable to read from ' . $self->id(), $OS_ERROR); + + # Update size + $self->{lSize} += $iActualSize; + + return $iActualSize; +} + +#################################################################################################################################### +# write - write data to handle +#################################################################################################################################### +sub write +{ + my $self = shift; + my $rtBuffer = shift; + + # Write the block + my $iActualSize; + + eval + { + $iActualSize = syswrite($self->handleWrite(), $$rtBuffer); + return true; + } + or do + { + $self->error(ERROR_FILE_WRITE, 'unable to write to ' . $self->id(), $EVAL_ERROR); + }; + + # Report any errors + # uncoverable branch true - all errors seem to be caught by the handler above but check for error here just in case + defined($iActualSize) + or $self->error(ERROR_FILE_WRITE, 'unable to write to ' . $self->id(), $OS_ERROR); + + # Update size + $self->{lSize} += $iActualSize; + + return $iActualSize; +} + +#################################################################################################################################### +# close/DESTROY - record read/write size +#################################################################################################################################### +sub close +{ + my $self = shift; + + # Set bytes read and written + if (defined($self->{lSize})) + { + $self->resultSet(COMMON_IO_HANDLE, $self->{lSize}); + undef($self->{lSize}); + } + + return true; +} + +#################################################################################################################################### +# Getters/Setters +#################################################################################################################################### +sub handleRead {return shift->{fhHandleRead}} +sub handleReadSet {my $self = shift; $self->{fhHandleRead} = shift} +sub handleWrite {return shift->{fhHandleWrite}} +sub handleWriteSet {my $self = shift; $self->{fhHandleWrite} = shift} +sub size {shift->{lSize}} + +1; diff --git a/lib/pgBackRest/Common/Io/Process.pm b/lib/pgBackRest/Common/Io/Process.pm new file mode 100644 index 000000000..854e61738 --- /dev/null +++ b/lib/pgBackRest/Common/Io/Process.pm @@ -0,0 +1,188 @@ +#################################################################################################################################### +# Process Excecution, Management, and IO +#################################################################################################################################### +package pgBackRest::Common::Io::Process; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Exporter qw(import); + our @EXPORT = qw(); +use IPC::Open3 qw(open3); +use POSIX qw(:sys_wait_h); +use Symbol 'gensym'; + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Io::Buffered; +use pgBackRest::Common::Log; +use pgBackRest::Common::Wait; + +#################################################################################################################################### +# Package name constant +#################################################################################################################################### +use constant COMMON_IO_PROCESS => __PACKAGE__; + push @EXPORT, qw(COMMON_IO_PROCESS); + +#################################################################################################################################### +# Amount of time to attempt to retrieve errors when a process terminates unexpectedly +#################################################################################################################################### +use constant IO_ERROR_TIMEOUT => 5; + +#################################################################################################################################### +# new - use open3 to run the command and get the io handles +#################################################################################################################################### +our @ISA = (); ## no critic (ClassHierarchies::ProhibitExplicitISA) + +sub new +{ + my $class = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $self, + $strCommand, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'self', trace => true}, + {name => 'strCommand', trace => true}, + ); + + # Bless with new class + @ISA = $self->isA(); ## no critic (ClassHierarchies::ProhibitExplicitISA) + bless $self, $class; + + # Use open3 to run the command + my ($iProcessId, $fhRead, $fhWrite, $fhReadError); + $fhReadError = gensym; + + $iProcessId = IPC::Open3::open3($fhWrite, $fhRead, $fhReadError, $strCommand); + + # Set handles + $self->handleReadSet($fhRead); + $self->handleWriteSet($fhWrite); + + # Set variables + $self->{iProcessId} = $iProcessId; + $self->{fhReadError} = $fhReadError; + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self} + ); +} + +#################################################################################################################################### +# error - handle errors +#################################################################################################################################### +sub error +{ + my $self = shift; + my $iCode = shift; + my $strMessage = shift; + my $strDetail = shift; + my $bClose = shift; + + if (defined($self->{iProcessId})) + { + my $oWait = waitInit(defined($iCode) ? IO_ERROR_TIMEOUT : 0); + + do + { + # Check the result + my $iResult = waitpid($self->{iProcessId}, $bClose ? 0 : WNOHANG); + + # Error if the process exited unexpectedly + if ($iResult != 0) + { + # Get the exit status + my $iExitStatus = $iResult == -1 ? 255 : ${^CHILD_ERROR_NATIVE} >> 8; + + # Drain the stderr stream + my $strError; + my $oIoError = new pgBackRest::Common::Io::Buffered( + new pgBackRest::Common::Io::Handle($self->id(), $self->{fhReadError}), 5, $self->bufferMax()); + + while (defined(my $strLine = $oIoError->readLine(true, false))) + { + $strError .= "${strLine}\n"; + } + + delete($self->{iProcessId}); + + if (!$bClose || $iExitStatus != 0 || defined($strError)) + { + my $iErrorCode = + $iExitStatus >= ERROR_MINIMUM && $iExitStatus <= ERROR_MAXIMUM ? $iExitStatus : ERROR_FILE_READ; + + logErrorResult( + $iErrorCode, 'process ' . $self->id() . ' terminated unexpectedly' . + ($iExitStatus != 255 ? sprintf(' [%03d]', $iExitStatus) : ''), + $strError); + } + } + } + while (waitMore($oWait)); + + if (defined($iCode)) + { + $self->SUPER::error($iCode, $strMessage, $strDetail); + } + } + else + { + confess &log(ASSERT, 'cannot call error() after process has been closed'); + } +} + +#################################################################################################################################### +# Get process id +#################################################################################################################################### +sub processId +{ + my $self = shift; + + return $self->{iProcessId}; +} + +#################################################################################################################################### +# writeLine - check for error before writing line +#################################################################################################################################### +sub writeLine +{ + my $self = shift; + my $strBuffer = shift; + + # Check if the process has exited abnormally (doesn't seem like we should need this, but the next syswrite does a hard + # abort if the remote process has already closed) + $self->error(); + + return $self->SUPER::writeLine($strBuffer); +} + +#################################################################################################################################### +# close - check if the process terminated on error +#################################################################################################################################### +sub close +{ + my $self = shift; + + if (defined($self->{iProcessId})) + { + $self->error(undef, undef, undef, true); + + # Class parent close + $self->SUPER::close(); + } + + return true; +} + +1; diff --git a/lib/pgBackRest/Common/Lock.pm b/lib/pgBackRest/Common/Lock.pm index 9a95ffbb3..040a6ac33 100644 --- a/lib/pgBackRest/Common/Lock.pm +++ b/lib/pgBackRest/Common/Lock.pm @@ -16,7 +16,7 @@ use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Config::Config; -use pgBackRest::FileCommon; +use pgBackRest::Storage::Helper; #################################################################################################################################### # Global lock type and handle @@ -47,7 +47,7 @@ sub lockFileName #################################################################################################################################### sub lockPathCreate { - filePathCreate(optionGet(OPTION_LOCK_PATH), '770', true, true); + storageLocal()->pathCreate(optionGet(OPTION_LOCK_PATH), {strMode => '770', bIgnoreExists => true, bCreateParent => true}); } #################################################################################################################################### diff --git a/lib/pgBackRest/Common/Log.pm b/lib/pgBackRest/Common/Log.pm index 654fb9260..e3fd5972d 100644 --- a/lib/pgBackRest/Common/Log.pm +++ b/lib/pgBackRest/Common/Log.pm @@ -6,6 +6,7 @@ package pgBackRest::Common::Log; use strict; use warnings FATAL => qw(all); use Carp qw(confess longmess); +use English '-no_match_vars'; use Exporter qw(import); our @EXPORT = qw(); @@ -118,13 +119,20 @@ sub logFileSet # Only open the log file if file logging is enabled if ($strLogLevelFile ne OFF) { - filePathCreate(dirname($strFile), '0770', true, true); + # Load Storage::Helper module + require pgBackRest::Storage::Helper; + pgBackRest::Storage::Helper->import(); + + storageLocal()->pathCreate(dirname($strFile), {strMode => '0770', bIgnoreExists => true, bCreateParent => true}); $strFile .= '.log'; $bLogFileExists = -e $strFile ? true : false; $bLogFileFirst = true; - $hLogFile = fileOpen($strFile, O_WRONLY | O_CREAT | O_APPEND); + if (!sysopen($hLogFile, $strFile, O_WRONLY | O_CREAT | O_APPEND, oct('0660'))) + { + logErrorResult(ERROR_FILE_OPEN, "unable to open log file '${strFile}'", $OS_ERROR); + } # Write out anything that was cached before the file was opened if (defined($strLogFileCache)) @@ -138,7 +146,6 @@ sub logFileSet push @EXPORT, qw(logFileSet); - #################################################################################################################################### # logBanner # @@ -169,10 +176,6 @@ sub logLevelSet my $strLevelStdErrParam = shift; my $bLogTimestampParam = shift; - # Load FileCommon module - require pgBackRest::FileCommon; - pgBackRest::FileCommon->import(); - if (defined($strLevelFileParam)) { if (!defined($oLogLevelRank{uc($strLevelFileParam)}{rank})) @@ -690,6 +693,14 @@ sub log if (!$bSuppressLog) { syswrite(*STDOUT, $strMessageFormat); + + # This is here for debugging purposes - it's not clear how best to make it into a switch + # if ($strLevel eq ASSERT || $strLevel eq ERROR) + # { + # my $strStackTrace = longmess() . "\n"; + # $strStackTrace =~ s/\n/\n /g; + # syswrite(*STDOUT, $strStackTrace); + # } } # If in test mode and this is a test messsage then delay so the calling process has time to read the message diff --git a/lib/pgBackRest/Common/String.pm b/lib/pgBackRest/Common/String.pm index aa07087e2..02bba0cca 100644 --- a/lib/pgBackRest/Common/String.pm +++ b/lib/pgBackRest/Common/String.pm @@ -33,9 +33,7 @@ sub trim push @EXPORT, qw(trim); #################################################################################################################################### -# coalesce -# -# Return the first non-null parameter. +# coalesce - return first defined parameter #################################################################################################################################### sub coalesce { @@ -46,6 +44,8 @@ sub coalesce return $strParam; } } + + return; } push @EXPORT, qw(coalesce); diff --git a/lib/pgBackRest/Config/Config.pm b/lib/pgBackRest/Config/Config.pm index c1ba26363..76a9f8a57 100644 --- a/lib/pgBackRest/Config/Config.pm +++ b/lib/pgBackRest/Config/Config.pm @@ -16,10 +16,9 @@ use Storable qw(dclone); use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; +use pgBackRest::Common::Io::Base; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; -use pgBackRest::FileCommon; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Version; #################################################################################################################################### @@ -73,6 +72,14 @@ use constant CMD_VERSION => 'version' push @EXPORT, qw(CMD_VERSION); $oCommandHash{&CMD_VERSION} = true; +#################################################################################################################################### +# DB/BACKUP Constants +#################################################################################################################################### +use constant DB => 'db'; + push @EXPORT, qw(DB); +use constant BACKUP => 'backup'; + push @EXPORT, qw(BACKUP); + #################################################################################################################################### # BACKUP Type Constants #################################################################################################################################### @@ -83,6 +90,14 @@ use constant BACKUP_TYPE_DIFF => 'diff'; use constant BACKUP_TYPE_INCR => 'incr'; push @EXPORT, qw(BACKUP_TYPE_INCR); +#################################################################################################################################### +# REPO Type Constants +#################################################################################################################################### +use constant REPO_TYPE_CIFS => 'cifs'; + push @EXPORT, qw(REPO_TYPE_CIFS); +use constant REPO_TYPE_POSIX => 'posix'; + push @EXPORT, qw(REPO_TYPE_POSIX); + #################################################################################################################################### # INFO Output Constants #################################################################################################################################### @@ -162,6 +177,8 @@ use constant OPTION_RULE_REQUIRED => 'required push @EXPORT, qw(OPTION_RULE_REQUIRED); use constant OPTION_RULE_SECTION => 'section'; push @EXPORT, qw(OPTION_RULE_SECTION); +use constant OPTION_RULE_SECURE => 'secure'; + push @EXPORT, qw(OPTION_RULE_SECURE); use constant OPTION_RULE_TYPE => 'type'; push @EXPORT, qw(OPTION_RULE_TYPE); @@ -258,14 +275,10 @@ use constant OPTION_COMPRESS_LEVEL_NETWORK => 'compress push @EXPORT, qw(OPTION_COMPRESS_LEVEL_NETWORK); use constant OPTION_NEUTRAL_UMASK => 'neutral-umask'; push @EXPORT, qw(OPTION_NEUTRAL_UMASK); -use constant OPTION_REPO_SYNC => 'repo-sync'; - push @EXPORT, qw(OPTION_REPO_SYNC); use constant OPTION_PROTOCOL_TIMEOUT => 'protocol-timeout'; push @EXPORT, qw(OPTION_PROTOCOL_TIMEOUT); use constant OPTION_PROCESS_MAX => 'process-max'; push @EXPORT, qw(OPTION_PROCESS_MAX); -use constant OPTION_REPO_LINK => 'repo-link'; - push @EXPORT, qw(OPTION_REPO_LINK); # Commands use constant OPTION_CMD_SSH => 'cmd-ssh'; @@ -276,11 +289,15 @@ use constant OPTION_LOCK_PATH => 'lock-pat push @EXPORT, qw(OPTION_LOCK_PATH); use constant OPTION_LOG_PATH => 'log-path'; push @EXPORT, qw(OPTION_LOG_PATH); -use constant OPTION_REPO_PATH => 'repo-path'; - push @EXPORT, qw(OPTION_REPO_PATH); use constant OPTION_SPOOL_PATH => 'spool-path'; push @EXPORT, qw(OPTION_SPOOL_PATH); +# Repository +use constant OPTION_REPO_PATH => 'repo-path'; + push @EXPORT, qw(OPTION_REPO_PATH); +use constant OPTION_REPO_TYPE => 'repo-type'; + push @EXPORT, qw(OPTION_REPO_TYPE); + # Log level use constant OPTION_LOG_LEVEL_CONSOLE => 'log-level-console'; push @EXPORT, qw(OPTION_LOG_LEVEL_CONSOLE); @@ -417,12 +434,10 @@ use constant OPTION_DEFAULT_ARCHIVE_TIMEOUT_MIN => WAIT_TIME use constant OPTION_DEFAULT_ARCHIVE_TIMEOUT_MAX => 86400; push @EXPORT, qw(OPTION_DEFAULT_ARCHIVE_TIMEOUT_MAX); -use constant OPTION_DEFAULT_BUFFER_SIZE => 4194304; +use constant OPTION_DEFAULT_BUFFER_SIZE => COMMON_IO_BUFFER_MAX; push @EXPORT, qw(OPTION_DEFAULT_BUFFER_SIZE); use constant OPTION_DEFAULT_BUFFER_SIZE_MIN => 16384; push @EXPORT, qw(OPTION_DEFAULT_BUFFER_SIZE_MIN); -use constant OPTION_DEFAULT_BUFFER_SIZE_MAX => 8388608; - push @EXPORT, qw(OPTION_DEFAULT_BUFFER_SIZE_MAX); use constant OPTION_DEFAULT_COMPRESS => true; push @EXPORT, qw(OPTION_DEFAULT_COMPRESS); @@ -471,6 +486,8 @@ use constant OPTION_DEFAULT_REPO_LINK => true; push @EXPORT, qw(OPTION_DEFAULT_REPO_LINK); use constant OPTION_DEFAULT_REPO_PATH => '/var/lib/' . BACKREST_EXE; push @EXPORT, qw(OPTION_DEFAULT_REPO_PATH); +use constant OPTION_DEFAULT_REPO_TYPE => REPO_TYPE_POSIX; + push @EXPORT, qw(OPTION_DEFAULT_REPO_TYPE); use constant OPTION_DEFAULT_SPOOL_PATH => '/var/spool/' . BACKREST_EXE; push @EXPORT, qw(OPTION_DEFAULT_SPOOL_PATH); use constant OPTION_DEFAULT_PROCESS_MAX => 1; @@ -1008,7 +1025,20 @@ my %oOptionRule = &OPTION_RULE_SECTION => CONFIG_SECTION_GLOBAL, &OPTION_RULE_TYPE => OPTION_TYPE_INTEGER, &OPTION_RULE_DEFAULT => OPTION_DEFAULT_BUFFER_SIZE, - &OPTION_RULE_ALLOW_RANGE => [OPTION_DEFAULT_BUFFER_SIZE_MIN, OPTION_DEFAULT_BUFFER_SIZE_MAX], + &OPTION_RULE_ALLOW_LIST => + { + &OPTION_DEFAULT_BUFFER_SIZE_MIN => true, + &OPTION_DEFAULT_BUFFER_SIZE_MIN * 2 => true, + &OPTION_DEFAULT_BUFFER_SIZE_MIN * 4 => true, + &OPTION_DEFAULT_BUFFER_SIZE_MIN * 8 => true, + &OPTION_DEFAULT_BUFFER_SIZE_MIN * 16 => true, + &OPTION_DEFAULT_BUFFER_SIZE_MIN * 32 => true, + &OPTION_DEFAULT_BUFFER_SIZE_MIN * 64 => true, + &OPTION_DEFAULT_BUFFER_SIZE_MIN * 128 => true, + &OPTION_DEFAULT_BUFFER_SIZE_MIN * 256 => true, + &OPTION_DEFAULT_BUFFER_SIZE_MIN * 512 => true, + &OPTION_DEFAULT_BUFFER_SIZE_MIN * 1024 => true, + }, &OPTION_RULE_COMMAND => { &CMD_ARCHIVE_GET => true, @@ -1196,21 +1226,6 @@ my %oOptionRule = }, }, - &OPTION_REPO_SYNC => - { - &OPTION_RULE_SECTION => CONFIG_SECTION_GLOBAL, - &OPTION_RULE_TYPE => OPTION_TYPE_BOOLEAN, - &OPTION_RULE_DEFAULT => OPTION_DEFAULT_REPO_SYNC, - &OPTION_RULE_NEGATE => true, - &OPTION_RULE_COMMAND => - { - &CMD_ARCHIVE_PUSH => true, - &CMD_BACKUP => true, - &CMD_STANZA_CREATE => true, - &CMD_STANZA_UPGRADE => true, - }, - }, - &OPTION_PROTOCOL_TIMEOUT => { &OPTION_RULE_SECTION => CONFIG_SECTION_GLOBAL, @@ -1233,17 +1248,6 @@ my %oOptionRule = } }, - &OPTION_REPO_LINK => - { - &OPTION_RULE_SECTION => CONFIG_SECTION_GLOBAL, - &OPTION_RULE_TYPE => OPTION_TYPE_BOOLEAN, - &OPTION_RULE_DEFAULT => OPTION_DEFAULT_REPO_LINK, - &OPTION_RULE_COMMAND => - { - &CMD_BACKUP => true, - }, - }, - &OPTION_REPO_PATH => { &OPTION_RULE_SECTION => CONFIG_SECTION_GLOBAL, @@ -1267,6 +1271,34 @@ my %oOptionRule = }, }, + &OPTION_REPO_TYPE => + { + &OPTION_RULE_SECTION => CONFIG_SECTION_GLOBAL, + &OPTION_RULE_TYPE => OPTION_TYPE_STRING, + &OPTION_RULE_DEFAULT => OPTION_DEFAULT_REPO_TYPE, + &OPTION_RULE_ALLOW_LIST => + { + &REPO_TYPE_CIFS => true, + &REPO_TYPE_POSIX => true, + }, + &OPTION_RULE_COMMAND => + { + &CMD_ARCHIVE_GET => true, + &CMD_ARCHIVE_PUSH => true, + &CMD_BACKUP => true, + &CMD_CHECK => true, + &CMD_EXPIRE => true, + &CMD_INFO => true, + &CMD_LOCAL => true, + &CMD_REMOTE => true, + &CMD_RESTORE => true, + &CMD_STANZA_CREATE => true, + &CMD_STANZA_UPGRADE => true, + &CMD_START => true, + &CMD_STOP => true, + }, + }, + &OPTION_SPOOL_PATH => { &OPTION_RULE_SECTION => CONFIG_SECTION_GLOBAL, @@ -1886,6 +1918,14 @@ my %oOptionRule = }, &CMD_BACKUP => true, &CMD_CHECK => true, + &CMD_LOCAL => + { + &OPTION_RULE_REQUIRED => false + }, + &CMD_REMOTE => + { + &OPTION_RULE_REQUIRED => false + }, &CMD_RESTORE => true, &CMD_STANZA_CREATE => true, &CMD_STANZA_UPGRADE => true, @@ -1947,6 +1987,38 @@ my %oOptionRule = }, ); +#################################################################################################################################### +# Process rule defaults +#################################################################################################################################### +foreach my $strKey (sort(keys(%oOptionRule))) +{ + # If the rule is a scalar then copy the entire rule from the referenced option + if (!ref($oOptionRule{$strKey})) + { + $oOptionRule{$strKey} = dclone($oOptionRule{$oOptionRule{$strKey}}); + } + + # Default type is string + if (!defined($oOptionRule{$strKey}{&OPTION_RULE_TYPE})) + { + $oOptionRule{$strKey}{&OPTION_RULE_TYPE} = OPTION_TYPE_STRING; + } + + # If the command section is a scalar then copy the section from the referenced option + if (defined($oOptionRule{$strKey}{&OPTION_RULE_COMMAND}) && !ref($oOptionRule{$strKey}{&OPTION_RULE_COMMAND})) + { + $oOptionRule{$strKey}{&OPTION_RULE_COMMAND} = + dclone($oOptionRule{$oOptionRule{$strKey}{&OPTION_RULE_COMMAND}}{&OPTION_RULE_COMMAND}); + } + + # If the required section is a scalar then copy the section from the referenced option + if (defined($oOptionRule{$strKey}{&OPTION_RULE_DEPEND}) && !ref($oOptionRule{$strKey}{&OPTION_RULE_DEPEND})) + { + $oOptionRule{$strKey}{&OPTION_RULE_DEPEND} = + dclone($oOptionRule{$oOptionRule{$strKey}{&OPTION_RULE_DEPEND}}{&OPTION_RULE_DEPEND}); + } +} + #################################################################################################################################### # Module variables #################################################################################################################################### @@ -2326,6 +2398,11 @@ sub optionValidate $oOption{$strOption}{valid} = true; + if (defined($oOptionRule{$strOption}{&OPTION_RULE_SECURE}) && $oOptionRule{$strOption}{&OPTION_RULE_SECURE}) + { + $oOption{$strOption}{&OPTION_RULE_SECURE} = true; + } + # Store the option value my $strValue = optionValueGet($strOption, $oOptionTest); @@ -2421,7 +2498,11 @@ sub optionValidate confess &log(ERROR, "'${strConfigFile}' is not a file", ERROR_FILE_INVALID); } - $oConfig = iniParse(fileStringRead($strConfigFile), {bRelaxed => true}); + # Load Storage::Helper module + require pgBackRest::Storage::Helper; + pgBackRest::Storage::Helper->import(); + + $oConfig = iniParse(${storageLocal->('/')->get($strConfigFile)}, {bRelaxed => true}); } } @@ -2742,7 +2823,7 @@ sub configFileValidate my $bFileValid = true; - if (!commandTest(CMD_REMOTE)) + if (!commandTest(CMD_REMOTE) && !commandTest(CMD_LOCAL)) { foreach my $strSectionKey (keys(%$oConfig)) { @@ -3208,16 +3289,11 @@ sub commandWrite $bIncludeConfig = defined($bIncludeConfig) ? $bIncludeConfig : false; $bIncludeCommand = defined($bIncludeCommand) ? $bIncludeCommand : true; - # if ($bIncludeConfig && $strExeString ne '') - # { - # $strExeString .= ' --no-config'; - # } - # Iterate the options to figure out which ones are not default and need to be written out to the new command string foreach my $strOption (sort(keys(%oOptionRule))) { - # Skip the config option if it's already included - # next if ($bIncludeConfig && $strOption eq OPTION_CONFIG); + # Skip option if it is secure and should not be output in logs or the command line + next if ($oOption{$strOption}{&OPTION_RULE_SECURE}); # Process any option overrides first if (defined($$oOptionOverride{$strOption})) diff --git a/lib/pgBackRest/Config/ConfigHelpData.pm b/lib/pgBackRest/Config/ConfigHelpData.pm index 7dc4e9230..53595f12b 100644 --- a/lib/pgBackRest/Config/ConfigHelpData.pm +++ b/lib/pgBackRest/Config/ConfigHelpData.pm @@ -592,23 +592,6 @@ my $oConfigHelpData = "edit/check recovery.conf before manually restarting." }, - # REPO-LINK Option Help - #--------------------------------------------------------------------------------------------------------------------------- - 'repo-link' => - { - section => 'general', - summary => - "Create convenience symlinks in repository.", - description => - "Creates the convenience link latest in the stanza directory and internal tablespace symlinks in each backup " . - "directory. The internal tablespace symlinks allow clusters to be brought up manually in-place using " . - "filesystem snapshots as long as the backup is not compressed.\n" . - "\n" . - "This option should be disabled when the repository is located on a filesystem that does not support symlinks. " . - "No pgBackRest functionality will be affected, but certain manual operations on the repository may be less " . - "convenient." - }, - # REPO-PATH Option Help #--------------------------------------------------------------------------------------------------------------------------- 'repo-path' => @@ -625,16 +608,18 @@ my $oConfigHelpData = "need, though of course requirements will likely change over time as your database evolves." }, - # REPO-SYNC Option Help + # REPO-TYPE Option Help #--------------------------------------------------------------------------------------------------------------------------- - 'repo-sync' => + 'repo-type' => { section => 'general', summary => - "Sync directories in repository.", + "Type of storage used for the repository.", description => - "Syncs directories when writing to the repository. Not all file systems support directory syncs (e.g., NTFS) so " . - "this option allows them to be disabled." + "The following repository types are supported:\n" . + "\n" . + "* cifs - Like posix, but disables links and directory fsyncs\n" . + "* posix - Posix-compliant file systems" }, # RESUME Option Help @@ -848,6 +833,7 @@ my $oConfigHelpData = 'neutral-umask' => 'section', 'protocol-timeout' => 'section', 'repo-path' => 'section', + 'repo-type' => 'section', 'stanza' => 'default' } }, @@ -889,7 +875,7 @@ my $oConfigHelpData = 'process-max' => 'section', 'protocol-timeout' => 'section', 'repo-path' => 'section', - 'repo-sync' => 'section', + 'repo-type' => 'section', 'spool-path' => 'section', 'stanza' => 'default' } @@ -959,9 +945,8 @@ my $oConfigHelpData = 'online' => 'default', 'process-max' => 'section', 'protocol-timeout' => 'section', - 'repo-link' => 'section', 'repo-path' => 'section', - 'repo-sync' => 'section', + 'repo-type' => 'section', 'resume' => 'section', 'retention-archive' => 'section', 'retention-archive-type' => 'section', @@ -1038,6 +1023,7 @@ my $oConfigHelpData = 'online' => 'default', 'protocol-timeout' => 'section', 'repo-path' => 'section', + 'repo-type' => 'section', 'stanza' => 'default' } }, @@ -1068,6 +1054,7 @@ my $oConfigHelpData = 'log-path' => 'section', 'log-timestamp' => 'section', 'repo-path' => 'section', + 'repo-type' => 'section', 'retention-archive' => 'section', 'retention-archive-type' => 'section', 'retention-diff' => 'section', @@ -1137,6 +1124,7 @@ my $oConfigHelpData = 'protocol-timeout' => 'section', 'repo-path' => 'section', + 'repo-type' => 'section', 'stanza' => 'default' } }, @@ -1200,6 +1188,7 @@ my $oConfigHelpData = 'protocol-timeout' => 'section', 'recovery-option' => 'section', 'repo-path' => 'section', + 'repo-type' => 'section', # SET Option Help #------------------------------------------------------------------------------------------------------------------- @@ -1341,7 +1330,7 @@ my $oConfigHelpData = 'online' => 'default', 'protocol-timeout' => 'section', 'repo-path' => 'section', - 'repo-sync' => 'section', + 'repo-type' => 'section', 'stanza' => 'default' } }, @@ -1384,7 +1373,7 @@ my $oConfigHelpData = 'online' => 'default', 'protocol-timeout' => 'section', 'repo-path' => 'section', - 'repo-sync' => 'section', + 'repo-type' => 'section', 'stanza' => 'default' } }, @@ -1418,6 +1407,7 @@ my $oConfigHelpData = 'log-path' => 'section', 'log-timestamp' => 'section', 'repo-path' => 'section', + 'repo-type' => 'section', 'stanza' => 'default' } }, @@ -1467,6 +1457,7 @@ my $oConfigHelpData = 'log-path' => 'section', 'log-timestamp' => 'section', 'repo-path' => 'section', + 'repo-type' => 'section', 'stanza' => 'default' } }, diff --git a/lib/pgBackRest/Db.pm b/lib/pgBackRest/Db.pm index 6eafc067c..214408d82 100644 --- a/lib/pgBackRest/Db.pm +++ b/lib/pgBackRest/Db.pm @@ -20,11 +20,10 @@ use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; use pgBackRest::Manifest; -use pgBackRest::Version; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Version; #################################################################################################################################### # Backup advisory lock @@ -87,11 +86,11 @@ sub new if (defined($self->{iRemoteIdx})) { $self->{strDbPath} = optionGet(optionIndex(OPTION_DB_PATH, $self->{iRemoteIdx})); - $self->{oProtocol} = protocolGet(DB, $self->{iRemoteIdx}); - } - else - { - $self->{oProtocol} = protocolGet(NONE); + + if (!isDbLocal({iRemoteIdx => $self->{iRemoteIdx}})) + { + $self->{oProtocol} = protocolGet(DB, $self->{iRemoteIdx}); + } } # Return from function and log return values if any @@ -145,7 +144,7 @@ sub connect my $bResult = true; # Run remotely - if ($self->{oProtocol}->isRemote()) + if (defined($self->{oProtocol})) { # Set bResult to false if undef is returned $bResult = $self->{oProtocol}->cmdExecute(OP_DB_CONNECT, undef, false, $bWarnOnError) ? true : false; @@ -246,7 +245,7 @@ sub executeSql my @stryResult; # Run remotely - if ($self->{oProtocol}->isRemote()) + if (defined($self->{oProtocol})) { # Execute the command @stryResult = @{$self->{oProtocol}->cmdExecute(OP_DB_EXECUTE_SQL, [$strSql, $bIgnoreError, $bResult], $bResult)}; @@ -465,22 +464,14 @@ sub info #------------------------------------------------------------------------------------------------------------------------------- if (!defined($self->{info}{$strDbPath})) { - # Initialize file object - my $oFile = new pgBackRest::File - ( - optionGet(OPTION_STANZA), - optionGet(OPTION_REPO_PATH), - $self->{oProtocol} - ); - # Get info from remote #--------------------------------------------------------------------------------------------------------------------------- - if ($oFile->isRemote(PATH_DB_ABSOLUTE)) + if (defined($self->{oProtocol})) { # Execute the command ($self->{info}{$strDbPath}{strDbVersion}, $self->{info}{$strDbPath}{iDbControlVersion}, $self->{info}{$strDbPath}{iDbCatalogVersion}, $self->{info}{$strDbPath}{ullDbSysId}) = - $oFile->{oProtocol}->cmdExecute(OP_DB_INFO, [$strDbPath], true); + $self->{oProtocol}->cmdExecute(OP_DB_INFO, [$strDbPath], true); } # Get info locally #--------------------------------------------------------------------------------------------------------------------------- diff --git a/lib/pgBackRest/Expire.pm b/lib/pgBackRest/Expire.pm index e3d2e3ddf..d38fb9edc 100644 --- a/lib/pgBackRest/Expire.pm +++ b/lib/pgBackRest/Expire.pm @@ -9,23 +9,21 @@ use Carp qw(confess); use Exporter qw(import); use File::Basename qw(dirname); -use File::Path qw(remove_tree); use Scalar::Util qw(looks_like_number); -use pgBackRest::Common::Exception; -use pgBackRest::Common::Log; use pgBackRest::Archive::ArchiveCommon; use pgBackRest::Archive::ArchiveGet; use pgBackRest::Archive::ArchiveInfo; +use pgBackRest::Common::Exception; +use pgBackRest::Common::Ini; +use pgBackRest::Common::Log; use pgBackRest::Backup::Common; use pgBackRest::Backup::Info; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::InfoCommon; use pgBackRest::Manifest; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; #################################################################################################################################### # new @@ -41,14 +39,6 @@ sub new # Assign function parameters, defaults, and log debug info my ($strOperation) = logDebugParam(__PACKAGE__ . '->new'); - # Initialize file object - $self->{oFile} = new pgBackRest::File - ( - optionGet(OPTION_STANZA), - optionGet(OPTION_REPO_PATH), - protocolGet(NONE) - ); - # Initialize total archive expired $self->{iArchiveExpireTotal} = 0; @@ -60,22 +50,6 @@ sub new ); } -#################################################################################################################################### -# DESTROY -#################################################################################################################################### -sub DESTROY -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my ($strOperation) = logDebugParam(__PACKAGE__ . '->DESTROY'); - - undef($self->{oFile}); - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - #################################################################################################################################### # logExpire # @@ -128,15 +102,15 @@ sub process my @stryPath; - my $oFile = $self->{oFile}; - my $strBackupClusterPath = $oFile->pathGet(PATH_BACKUP_CLUSTER); + my $oStorageRepo = storageRepo(); + my $strBackupClusterPath = $oStorageRepo->pathGet(STORAGE_REPO_BACKUP); my $iFullRetention = optionGet(OPTION_RETENTION_FULL, false); my $iDifferentialRetention = optionGet(OPTION_RETENTION_DIFF, false); my $strArchiveRetentionType = optionGet(OPTION_RETENTION_ARCHIVE_TYPE, false); my $iArchiveRetention = optionGet(OPTION_RETENTION_ARCHIVE, false); # Load the backup.info - my $oBackupInfo = new pgBackRest::Backup::Info($oFile->pathGet(PATH_BACKUP_CLUSTER)); + my $oBackupInfo = new pgBackRest::Backup::Info($oStorageRepo->pathGet(STORAGE_REPO_BACKUP)); # Find all the expired full backups if (defined($iFullRetention)) @@ -158,7 +132,8 @@ sub process foreach my $strPath ($oBackupInfo->list('^' . $stryPath[$iFullIdx] . '.*')) { - $oFile->remove(PATH_BACKUP_CLUSTER, "${strPath}/" . FILE_MANIFEST); + $oStorageRepo->remove(STORAGE_REPO_BACKUP . "/${strPath}/" . FILE_MANIFEST . INI_COPY_EXT); + $oStorageRepo->remove(STORAGE_REPO_BACKUP . "/${strPath}/" . FILE_MANIFEST); $oBackupInfo->delete($strPath); if ($strPath ne $stryPath[$iFullIdx]) @@ -204,7 +179,7 @@ sub process # Remove all differential and incremental backups before the oldest valid differential if ($strPath lt $stryPath[$iDiffIdx + 1]) { - $oFile->remove(PATH_BACKUP_CLUSTER, "/${strPath}" . FILE_MANIFEST); + $oStorageRepo->remove(STORAGE_REPO_BACKUP . "/${strPath}" . FILE_MANIFEST); $oBackupInfo->delete($strPath); if ($strPath ne $stryPath[$iDiffIdx]) @@ -223,15 +198,14 @@ sub process $oBackupInfo->save(); # Remove backups from disk - foreach my $strBackup ($oFile->list( - PATH_BACKUP_CLUSTER, undef, {strExpression => backupRegExpGet(true, true, true), strSortOrder => 'reverse'})) + foreach my $strBackup ($oStorageRepo->list( + STORAGE_REPO_BACKUP, {strExpression => backupRegExpGet(true, true, true), strSortOrder => 'reverse'})) { if (!$oBackupInfo->current($strBackup)) { &log(INFO, "remove expired backup ${strBackup}"); - remove_tree("${strBackupClusterPath}/${strBackup}") > 0 - or confess &log(ERROR, "unable to remove backup ${strBackup}", ERROR_PATH_REMOVE); + $oStorageRepo->remove("${strBackupClusterPath}/${strBackup}", {bRecurse => true}); } } @@ -264,9 +238,9 @@ sub process if ($iBackupTotal > 0) { - my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($oFile->pathGet(PATH_BACKUP_ARCHIVE), true); - my @stryListArchiveDisk = fileList( - $oFile->pathGet(PATH_BACKUP_ARCHIVE), {strExpression => REGEX_ARCHIVE_DIR_DB_VERSION, bIgnoreMissing => true}); + my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($oStorageRepo->pathGet(STORAGE_REPO_ARCHIVE), true); + my @stryListArchiveDisk = $oStorageRepo->list( + STORAGE_REPO_ARCHIVE, {strExpression => REGEX_ARCHIVE_DIR_DB_VERSION, bIgnoreMissing => true}); # Make sure the current database versions match between the two files if (!($oArchiveInfo->test(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_VERSION, undef, @@ -288,23 +262,23 @@ sub process # From the global list of backups to retain, create a list of backups, oldest to newest, associated with this # archiveId (e.g. 9.4-1) my @stryLocalBackupRetention = $oBackupInfo->listByArchiveId($strArchiveId, - $oFile->pathGet(PATH_BACKUP_ARCHIVE), \@stryGlobalBackupRetention, 'reverse'); + $oStorageRepo->pathGet(STORAGE_REPO_ARCHIVE), \@stryGlobalBackupRetention, 'reverse'); # If no backup to retain was found if (!@stryLocalBackupRetention) { # Get the backup db-id corresponding to this archiveId - my $iDbHistoryId = $oBackupInfo->backupArchiveDbHistoryId($strArchiveId, $oFile->pathGet(PATH_BACKUP_ARCHIVE)); + my $iDbHistoryId = $oBackupInfo->backupArchiveDbHistoryId( + $strArchiveId, $oStorageRepo->pathGet(STORAGE_REPO_ARCHIVE)); # If this is not the current database, then delete the archive directory else do nothing since the current # DB archive directory must not be deleted if (!defined($iDbHistoryId) || !$oBackupInfo->test(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_HISTORY_ID, undef, $iDbHistoryId)) { - my $strFullPath = $oFile->pathGet(PATH_BACKUP_ARCHIVE, $strArchiveId); + my $strFullPath = $oStorageRepo->pathGet(STORAGE_REPO_ARCHIVE . "/${strArchiveId}"); - remove_tree($strFullPath) > 0 - or confess &log(ERROR, "unable to remove archive path ${strFullPath}", ERROR_PATH_REMOVE); + $oStorageRepo->remove($strFullPath, {bRecurse => true}); &log(INFO, "remove archive path: ${strFullPath}"); } @@ -370,8 +344,9 @@ sub process my @stryBackupList = $oBackupInfo->list(); # With the full list of backups, loop through only those associated with this archiveId - foreach my $strBackup ($oBackupInfo->listByArchiveId($strArchiveId, - $oFile->pathGet(PATH_BACKUP_ARCHIVE), \@stryBackupList)) + foreach my $strBackup ( + $oBackupInfo->listByArchiveId( + $strArchiveId, $oStorageRepo->pathGet(STORAGE_REPO_ARCHIVE), \@stryBackupList)) { if ($strBackup le $strArchiveRetentionBackup && $oBackupInfo->test(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_ARCHIVE_START)) @@ -400,8 +375,8 @@ sub process } # Get all major archive paths (timeline and first 32 bits of LSN) - foreach my $strPath ($oFile->list( - PATH_BACKUP_ARCHIVE, $strArchiveId, {strExpression => REGEX_ARCHIVE_DIR_WAL})) + foreach my $strPath ($oStorageRepo->list( + STORAGE_REPO_ARCHIVE . "/${strArchiveId}", {strExpression => REGEX_ARCHIVE_DIR_WAL})) { logDebugMisc($strOperation, "found major WAL path: ${strPath}"); $bRemove = true; @@ -420,10 +395,9 @@ sub process # Remove the entire directory if all archive is expired if ($bRemove) { - my $strFullPath = $oFile->pathGet(PATH_BACKUP_ARCHIVE, $strArchiveId) . "/${strPath}"; + my $strFullPath = $oStorageRepo->pathGet(STORAGE_REPO_ARCHIVE . "/${strArchiveId}") . "/${strPath}"; - remove_tree($strFullPath) > 0 - or confess &log(ERROR, "unable to remove ${strFullPath}", ERROR_PATH_REMOVE); + $oStorageRepo->remove($strFullPath, {bRecurse => true}); # Log expire info logDebugMisc($strOperation, "remove major WAL path: ${strFullPath}"); @@ -435,8 +409,8 @@ sub process elsif ($strPath le substr($strArchiveExpireMax, 0, 16)) { # Look for files in the archive directory - foreach my $strSubPath ($oFile->list( - PATH_BACKUP_ARCHIVE, "${strArchiveId}/${strPath}", {strExpression => "^[0-F]{24}.*\$"})) + foreach my $strSubPath ($oStorageRepo->list( + STORAGE_REPO_ARCHIVE . "/${strArchiveId}/${strPath}", {strExpression => "^[0-F]{24}.*\$"})) { $bRemove = true; @@ -454,7 +428,7 @@ sub process # Remove archive log if it is not used in a backup if ($bRemove) { - fileRemove($oFile->pathGet(PATH_BACKUP_ARCHIVE, "${strArchiveId}/${strSubPath}")); + $oStorageRepo->remove(STORAGE_REPO_ARCHIVE . "/${strArchiveId}/${strSubPath}"); logDebugMisc($strOperation, "remove WAL segment: ${strArchiveId}/${strSubPath}"); diff --git a/lib/pgBackRest/File.pm b/lib/pgBackRest/File.pm deleted file mode 100644 index 67ee22e44..000000000 --- a/lib/pgBackRest/File.pm +++ /dev/null @@ -1,1480 +0,0 @@ -#################################################################################################################################### -# FILE MODULE -#################################################################################################################################### -package pgBackRest::File; - -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use Exporter qw(import); - our @EXPORT = qw(); -use Fcntl qw(:mode :flock O_RDONLY O_WRONLY O_CREAT); -use File::Basename qw(dirname basename); -use File::Copy qw(cp); -use File::Path qw(make_path remove_tree); -use File::stat; -use IO::Handle; - -use pgBackRest::Common::Exception; -use pgBackRest::Common::Log; -use pgBackRest::Common::String; -use pgBackRest::Common::Wait; -use pgBackRest::FileCommon; -use pgBackRest::Protocol::Common::Common; -use pgBackRest::Version; - -#################################################################################################################################### -# PATH_GET constants -#################################################################################################################################### -use constant PATH_ABSOLUTE => 'absolute'; - push @EXPORT, qw(PATH_ABSOLUTE); -use constant PATH_DB => 'db'; - push @EXPORT, qw(PATH_DB); -use constant PATH_DB_ABSOLUTE => 'db:absolute'; - push @EXPORT, qw(PATH_DB_ABSOLUTE); -use constant PATH_BACKUP => 'backup'; - push @EXPORT, qw(PATH_BACKUP); -use constant PATH_BACKUP_ABSOLUTE => 'backup:absolute'; - push @EXPORT, qw(PATH_BACKUP_ABSOLUTE); -use constant PATH_BACKUP_CLUSTER => 'backup:cluster'; - push @EXPORT, qw(PATH_BACKUP_CLUSTER); -use constant PATH_BACKUP_TMP => 'backup:tmp'; - push @EXPORT, qw(PATH_BACKUP_TMP); -use constant PATH_BACKUP_ARCHIVE => 'backup:archive'; - push @EXPORT, qw(PATH_BACKUP_ARCHIVE); -use constant PATH_BACKUP_ARCHIVE_OUT => 'backup:archive:out'; - push @EXPORT, qw(PATH_BACKUP_ARCHIVE_OUT); - -#################################################################################################################################### -# STD pipe constants -#################################################################################################################################### -use constant PIPE_STDIN => ''; - push @EXPORT, qw(PIPE_STDIN); -use constant PIPE_STDOUT => ''; - push @EXPORT, qw(PIPE_STDOUT); -use constant PIPE_STDERR => ''; - push @EXPORT, qw(PIPE_STDERR); - -#################################################################################################################################### -# new -#################################################################################################################################### -sub new -{ - my $class = shift; - - # Create the class hash - my $self = {}; - bless $self, $class; - - # Assign function parameters, defaults, and log debug info - ( - my $strOperation, - $self->{strStanza}, - $self->{strRepoPath}, - $self->{oProtocol}, - $self->{strDefaultPathMode}, - $self->{strDefaultFileMode}, - ) = - logDebugParam - ( - __PACKAGE__ . '->new', \@_, - {name => 'strStanza', required => false}, - {name => 'strRepoPath'}, - {name => 'oProtocol'}, - {name => 'strDefaultPathMode', default => '0750'}, - {name => 'strDefaultFileMode', default => '0640'}, - ); - - # Default compression extension to gz - $self->{strCompressExtension} = COMPRESS_EXT; - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'self', value => $self} - ); -} - -#################################################################################################################################### -# pathTypeGet -#################################################################################################################################### -sub pathTypeGet -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strType - ) = - logDebugParam - ( - __PACKAGE__ . '->pathTypeGet', \@_, - {name => 'strType', trace => true} - ); - - my $strPath; - - # If absolute type - if ($strType eq PATH_ABSOLUTE) - { - $strPath = PATH_ABSOLUTE; - } - # If db type - elsif ($strType =~ /^db(\:.*){0,1}/) - { - $strPath = PATH_DB; - } - # Else if backup type - elsif ($strType =~ /^backup(\:.*){0,1}/) - { - $strPath = PATH_BACKUP; - } - # else error when path type not recognized - else - { - confess &log(ASSERT, "no known path types in '${strType}'"); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'strPath', value => $strPath, trace => true} - ); -} - -#################################################################################################################################### -# pathGet -#################################################################################################################################### -sub pathGet -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strType, # Base type of the path to get (PATH_DB_ABSOLUTE, PATH_BACKUP_TMP, etc) - $strFile, # File to append to the base path (can include a path as well) - $bTemp # Return the temp file for this path type - only some types have temp files - ) = - logDebugParam - ( - __PACKAGE__ . '->pathGet', \@_, - {name => 'strType', trace => true}, - {name => 'strFile', required => false, trace => true}, - {name => 'bTemp', default => false, trace => true} - ); - - # Path to be returned - my $strPath; - - # Is this an absolute path type? - my $bAbsolute = $strType =~ /.*absolute.*/; - - # Make sure a temp file is valid for this type and file - if ($bTemp) - { - # Only allow temp files for PATH_BACKUP_ARCHIVE, PATH_BACKUP_ARCHIVE_OUT, PATH_BACKUP_TMP and any absolute path - if (!($strType eq PATH_BACKUP_ARCHIVE || $strType eq PATH_BACKUP_ARCHIVE_OUT || $strType eq PATH_BACKUP_TMP || $bAbsolute)) - { - confess &log(ASSERT, "temp file not supported for path type '${strType}'"); - } - - # The file must be defined - if (!defined($strFile)) - { - confess &log(ASSERT, 'strFile must be defined when temp file specified'); - } - } - - # Get absolute path - if ($bAbsolute) - { - # File must defined when the path is absolute since in effect there is no path - if (!defined($strFile)) - { - confess &log(ASSERT, 'strFile must be defined for absolute path'); - } - - # Make sure that the file starts with /, otherwise it will actually be relative - if ($strFile !~ /^\/.*/) - { - confess &log(ASSERT, "absolute path ${strType}:${strFile} must start with /"); - } - } - # Else get backup path - elsif ($strType eq PATH_BACKUP) - { - $strPath = $self->{strRepoPath}; - } - # Else process path types that require a stanza - else - { - # All paths in this section will in the repo path - $strPath = $self->{strRepoPath}; - - # Make sure the stanza is defined since remaining path types require it - if (!defined($self->{strStanza})) - { - confess &log(ASSERT, 'strStanza not defined'); - } - - # Get the backup tmp path - if ($strType eq PATH_BACKUP_TMP) - { - $strPath .= "/temp/$self->{strStanza}.tmp"; - } - # Else get archive paths - elsif ($strType eq PATH_BACKUP_ARCHIVE_OUT || $strType eq PATH_BACKUP_ARCHIVE) - { - $strPath .= "/archive/$self->{strStanza}"; - - # Get archive path - if ($strType eq PATH_BACKUP_ARCHIVE) - { - # If file is not defined nothing further to do - if (defined($strFile)) - { - my $strArchiveId = (split('/', $strFile))[0]; - - # If file is defined after archive id path is split out - if (defined((split('/', $strFile))[1])) - { - $strPath .= "/${strArchiveId}"; - $strFile = (split('/', $strFile))[1]; - - # If this is a WAL segment then put it into a subdirectory - if (substr(basename($strFile), 0, 24) =~ /^([0-F]){24}$/) - { - $strPath .= '/' . substr($strFile, 0, 16); - } - } - } - } - # Else get archive out path - else - { - $strPath .= '/out'; - } - } - # Else get backup cluster - elsif ($strType eq PATH_BACKUP_CLUSTER) - { - $strPath .= "/backup/$self->{strStanza}"; - } - # Else error when path type not recognized - else - { - confess &log(ASSERT, "no known path types in '${strType}'"); - } - } - - # Combine path and file - $strPath .= (defined($strFile) ? (defined($strPath) ? '/' : '') . $strFile : ''); - - # Add temp extension - $strPath .= $bTemp ? '.' . BACKREST_EXE . '.tmp' : ''; - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'strPath', value => $strPath, trace => true} - ); -} - -#################################################################################################################################### -# isRemote -# -# Determine whether the path type is remote -#################################################################################################################################### -sub isRemote -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType - ) = - logDebugParam - ( - __PACKAGE__ . '->isRemote', \@_, - {name => 'strPathType', trace => true} - ); - - my $bRemote = $self->{oProtocol}->isRemote() && $self->{oProtocol}->remoteTypeTest($self->pathTypeGet($strPathType)); - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'bRemote', value => $bRemote, trace => true} - ); -} - -#################################################################################################################################### -# linkCreate -#################################################################################################################################### -sub linkCreate -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strSourcePathType, - $strSourceFile, - $strDestinationPathType, - $strDestinationFile, - $bHard, - $bRelative, - $bPathCreate - ) = - logDebugParam - ( - __PACKAGE__ . '->linkCreate', \@_, - {name => 'strSourcePathType'}, - {name => 'strSourceFile'}, - {name => 'strDestinationPathType'}, - {name => 'strDestinationFile'}, - {name => 'bHard', default => false}, - {name => 'bRelative', default => false}, - {name => 'bPathCreate', default => true} - ); - - # Source and destination path types must be the same (e.g. both PATH_DB or both PATH_BACKUP, etc.) - if ($self->pathTypeGet($strSourcePathType) ne $self->pathTypeGet($strDestinationPathType)) - { - confess &log(ASSERT, 'path types must be equal in link create'); - } - - # Generate source and destination files - my $strSource = $self->pathGet($strSourcePathType, $strSourceFile); - my $strDestination = $self->pathGet($strDestinationPathType, $strDestinationFile); - - # Run remotely - if ($self->isRemote($strSourcePathType)) - { - confess &log(ASSERT, "${strOperation}: remote operation not supported"); - } - # Run locally - else - { - # If the destination path is backup and does not exist, create it - # ??? This should only happen when the link create errors - if ($bPathCreate && $self->pathTypeGet($strDestinationPathType) eq PATH_BACKUP) - { - filePathCreate(dirname($strDestination), undef, true); - } - - unless (-e $strSource) - { - if (-e $strSource . ".$self->{strCompressExtension}") - { - $strSource .= ".$self->{strCompressExtension}"; - $strDestination .= ".$self->{strCompressExtension}"; - } - else - { - # Error when a hardlink will be created on a missing file - if ($bHard) - { - confess &log(ASSERT, "unable to find ${strSource}(.$self->{strCompressExtension}) for link"); - } - } - } - - # Generate relative path if requested - if ($bRelative) - { - # Determine how much of the paths are common - my @strySource = split('/', $strSource); - my @stryDestination = split('/', $strDestination); - - while (defined($strySource[0]) && defined($stryDestination[0]) && $strySource[0] eq $stryDestination[0]) - { - shift(@strySource); - shift(@stryDestination); - } - - # Add relative path sections - $strSource = ''; - - for (my $iIndex = 0; $iIndex < @stryDestination - 1; $iIndex++) - { - $strSource .= '../'; - } - - # Add path to source - $strSource .= join('/', @strySource); - - logDebugMisc - ( - $strOperation, 'apply relative path', - {name => 'strSource', value => $strSource, trace => true} - ); - } - - if ($bHard) - { - link($strSource, $strDestination) - or confess &log(ERROR, "unable to create hardlink from ${strSource} to ${strDestination}"); - } - else - { - symlink($strSource, $strDestination) - or confess &log(ERROR, "unable to create symlink from ${strSource} to ${strDestination}"); - } - } - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - -#################################################################################################################################### -# move -# -# Moves a file locally or remotely. -#################################################################################################################################### -sub move -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strSourcePathType, - $strSourceFile, - $strDestinationPathType, - $strDestinationFile, - $bDestinationPathCreate, - $bPathSync, - ) = - logDebugParam - ( - __PACKAGE__ . '->move', \@_, - {name => 'strSourcePathType'}, - {name => 'strSourceFile', required => false}, - {name => 'strDestinationPathType'}, - {name => 'strDestinationFile'}, - {name => 'bDestinationPathCreate', default => false}, - {name => 'bPathSync', default => false}, - ); - - # Source and destination path types must be the same - if ($self->pathTypeGet($strSourcePathType) ne $self->pathTypeGet($strSourcePathType)) - { - confess &log(ASSERT, 'source and destination path types must be equal'); - } - - # Set operation variables - my $strPathOpSource = $self->pathGet($strSourcePathType, $strSourceFile); - my $strPathOpDestination = $self->pathGet($strDestinationPathType, $strDestinationFile); - - # Run remotely - if ($self->isRemote($strSourcePathType)) - { - confess &log(ASSERT, "${strOperation}: remote operation not supported"); - } - # Run locally - else - { - fileMove($strPathOpSource, $strPathOpDestination, $bDestinationPathCreate, $bPathSync); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation - ); -} - -#################################################################################################################################### -# compress -#################################################################################################################################### -sub compress -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType, - $strFile, - $bRemoveSource - ) = - logDebugParam - ( - __PACKAGE__ . '->compress', \@_, - {name => 'strPathType'}, - {name => 'strFile'}, - {name => 'bRemoveSource', default => true} - ); - - # Set operation variables - my $strPathOp = $self->pathGet($strPathType, $strFile); - - # Run remotely - if ($self->isRemote($strPathType)) - { - confess &log(ASSERT, "${strOperation}: remote operation not supported"); - } - # Run locally - else - { - # Use copy to compress the file - $self->copy($strPathType, $strFile, $strPathType, "${strFile}.gz", false, true); - - # Remove the old file - if ($bRemoveSource) - { - fileRemove($strPathOp); - } - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation - ); -} - -#################################################################################################################################### -# pathCreate -# -# Creates a path locally or remotely. -#################################################################################################################################### -sub pathCreate -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType, - $strPath, - $strMode, - $bIgnoreExists, - $bCreateParents - ) = - logDebugParam - ( - __PACKAGE__ . '->pathCreate', \@_, - {name => 'strPathType'}, - {name => 'strPath', required => false}, - {name => 'strMode', default => '0750'}, - {name => 'bIgnoreExists', default => false}, - {name => 'bCreateParents', default => false} - ); - - # Set operation variables - my $strPathOp = $self->pathGet($strPathType, $strPath); - - # Run remotely - if ($self->isRemote($strPathType)) - { - $self->{oProtocol}->cmdExecute(OP_FILE_PATH_CREATE, [$strPathOp, $strMode, $bIgnoreExists, $bCreateParents]); - } - # Run locally - else - { - filePathCreate($strPathOp, $strMode, $bIgnoreExists, $bCreateParents); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation - ); -} - -#################################################################################################################################### -# pathSync -#################################################################################################################################### -sub pathSync -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType, - $strPath, - $bRecursive, - ) = - logDebugParam - ( - __PACKAGE__ . '->pathSync', \@_, - {name => 'strPathType'}, - {name => 'strPath', required => false}, - {name => 'bRecursive', default => false}, - ); - - # Remote not implemented - if ($self->isRemote($strPathType)) - { - confess &log(ASSERT, "${strOperation}: remote operation not supported"); - } - - # Sync all paths in the tree - if ($bRecursive) - { - my $oManifest = $self->manifest($strPathType, $strPath); - - # Iterate all files in the manifest - foreach my $strFile (sort(keys(%{$oManifest}))) - { - # Only sync if this is a directory - if ($oManifest->{$strFile}{type} eq 'd') - { - # If current directory - if ($strFile eq '.') - { - $self->pathSync($strPathType, $strPath); - } - # Else a subdirectory - else - { - $self->pathSync($strPathType, (defined($strPath) ? "${strPath}/" : '') . $strFile); - } - } - } - } - # Only sync the specified path - else - { - filePathSync($self->pathGet($strPathType, $strPath)); - } - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - -#################################################################################################################################### -# exists -# -# Checks for the existence of a file, but does not imply that the file is readable/writeable. -# -# Return: true if file exists, false otherwise -#################################################################################################################################### -sub exists -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType, - $strPath - ) = - logDebugParam - ( - __PACKAGE__ . '->exists', \@_, - {name => 'strPathType'}, - {name => 'strPath', required => false} - ); - - # Set operation variables - my $strPathOp = $self->pathGet($strPathType, $strPath); - my $bExists; - - # Run remotely - if ($self->isRemote($strPathType)) - { - $bExists = $self->{oProtocol}->cmdExecute(OP_FILE_EXISTS, [$strPathOp], true); - } - # Run locally - else - { - $bExists = fileExists($strPathOp); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'bExists', value => $bExists} - ); -} - -#################################################################################################################################### -# remove -#################################################################################################################################### -sub remove -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType, - $strPath, - $bTemp, - $bIgnoreMissing, - $bPathSync, - ) = - logDebugParam - ( - __PACKAGE__ . '->remove', \@_, - {name => 'strPathType'}, - {name => 'strPath'}, - {name => 'bTemp', required => false}, - {name => 'bIgnoreMissing', default => true}, - {name => 'bPathSync', default => false}, - ); - - # Set operation variables - my $strPathOp = $self->pathGet($strPathType, $strPath, $bTemp); - my $bRemoved = true; - - # Run remotely - if ($self->isRemote($strPathType)) - { - confess &log(ASSERT, "${strOperation}: remote operation not supported"); - } - # Run locally - else - { - $bRemoved = fileRemove($strPathOp, $bIgnoreMissing, $bPathSync); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'bRemoved', value => $bRemoved} - ); -} - -#################################################################################################################################### -# hash -#################################################################################################################################### -sub hash -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType, - $strFile, - $bCompressed, - $strHashType - ) = - logDebugParam - ( - __PACKAGE__ . '->hash', \@_, - {name => 'strPathType'}, - {name => 'strFile'}, - {name => 'bCompressed', required => false}, - {name => 'strHashType', required => false} - ); - - my ($strHash) = $self->hashSize($strPathType, $strFile, $bCompressed, $strHashType); - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'strHash', value => $strHash, trace => true} - ); -} - -#################################################################################################################################### -# hashSize -#################################################################################################################################### -sub hashSize -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType, - $strFile, - $bCompressed, - $strHashType - ) = - logDebugParam - ( - __PACKAGE__ . '->hashSize', \@_, - {name => 'strPathType'}, - {name => 'strFile'}, - {name => 'bCompressed', default => false}, - {name => 'strHashType', default => 'sha1'} - ); - - # Set operation variables - my $strFileOp = $self->pathGet($strPathType, $strFile); - my $strHash; - my $iSize = 0; - - if ($self->isRemote($strPathType)) - { - confess &log(ASSERT, "${strOperation}: remote operation not supported"); - } - else - { - ($strHash, $iSize) = fileHashSize($strFileOp, $bCompressed, $strHashType, $self->{oProtocol}); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'strHash', value => $strHash}, - {name => 'iSize', value => $iSize} - ); -} - -#################################################################################################################################### -# owner -#################################################################################################################################### -sub owner -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType, - $strFile, - $strUser, - $strGroup - ) = - logDebugParam - ( - __PACKAGE__ . '->owner', \@_, - {name => 'strPathType'}, - {name => 'strFile'}, - {name => 'strUser', required => false}, - {name => 'strGroup', required => false} - ); - - # Set operation variables - my $strFileOp = $self->pathGet($strPathType, $strFile); - - # Run remotely - if ($self->isRemote($strPathType)) - { - confess &log(ASSERT, "${strOperation}: remote operation not supported"); - } - # Run locally - else - { - my $iUserId; - my $iGroupId; - - # If the user or group is not defined then get it by stat'ing the file. This is because the chown function requires that - # both user and group be set. - if (!(defined($strUser) && defined($strGroup))) - { - my $oStat = fileStat($strFileOp); - - if (!defined($strUser)) - { - $iUserId = $oStat->uid; - } - - if (!defined($strGroup)) - { - $iGroupId = $oStat->gid; - } - } - - # Lookup user if specified - if (defined($strUser)) - { - $iUserId = getpwnam($strUser); - - if (!defined($iUserId)) - { - confess &log(ERROR, "user '${strUser}' does not exist", ERROR_USER_MISSING); - } - } - - # Lookup group if specified - if (defined($strGroup)) - { - $iGroupId = getgrnam($strGroup); - - if (!defined($iGroupId)) - { - confess &log(ERROR, "group '${strGroup}' does not exist", ERROR_GROUP_MISSING); - } - } - - # Set ownership on the file - if (!chown($iUserId, $iGroupId, $strFileOp)) - { - my $strError = $!; - - if (fileExists($strFileOp)) - { - confess &log(ERROR, - "unable to set ownership for '${strFileOp}'" . (defined($strError) ? ": $strError" : ''), ERROR_FILE_OWNER); - } - - confess &log(ERROR, "${strFile} does not exist", ERROR_FILE_MISSING); - } - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation - ); -} - -#################################################################################################################################### -# list -#################################################################################################################################### -sub list -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType, - $strPath, - $strExpression, - $strSortOrder, - $bIgnoreMissing - ) = - logDebugParam - ( - __PACKAGE__ . '->list', \@_, - {name => 'strPathType'}, - {name => 'strPath', required => false}, - {name => 'strExpression', optional => true}, - {name => 'strSortOrder', optional => true, default => 'forward'}, - {name => 'bIgnoreMissing', optional => true, default => false} - ); - - # Set operation variables - my $strPathOp = $self->pathGet($strPathType, $strPath); - my @stryFileList; - - # Run remotely - if ($self->isRemote($strPathType)) - { - @stryFileList = $self->{oProtocol}->cmdExecute( - OP_FILE_LIST, - [$strPathOp, {strExpression => $strExpression, strSortOrder => $strSortOrder, bIgnoreMissing => $bIgnoreMissing}]); - } - # Run locally - else - { - @stryFileList = fileList( - $strPathOp, {strExpression => $strExpression, strSortOrder => $strSortOrder, bIgnoreMissing => $bIgnoreMissing}); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'stryFileList', value => \@stryFileList} - ); -} - -#################################################################################################################################### -# wait -# -# Wait until the next second. This is done in the file object because it must be performed on whichever side the db is on, local or -# remote. This function is used to make sure that no files are copied in the same second as the manifest is created. The reason is -# that the db might modify they file again in the same second as the copy and that change will not be visible to a subsequent -# incremental backup using timestamp/size to determine deltas. -#################################################################################################################################### -sub wait -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType, - $bWait - ) = - logDebugParam - ( - __PACKAGE__ . '->wait', \@_, - {name => 'strPathType'}, - {name => 'bWait', default => true} - ); - - # Second when the function was called - my $lTimeBegin; - - # Run remotely - if ($self->isRemote($strPathType)) - { - $lTimeBegin = $self->{oProtocol}->cmdExecute(OP_FILE_WAIT, [$bWait], true); - } - # Run locally - else - { - # Wait the remainder of the current second - $lTimeBegin = waitRemainder($bWait); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'lTimeBegin', value => $lTimeBegin, trace => true} - ); -} - -#################################################################################################################################### -# manifest -# -# Builds a path/file manifest starting with the base path and including all subpaths. The manifest contains all the information -# needed to perform a backup or a delta with a previous backup. -#################################################################################################################################### -sub manifest -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPathType, - $strPath, - ) = - logDebugParam - ( - __PACKAGE__ . '->manifest', \@_, - {name => 'strPathType'}, - {name => 'strPath', required => false}, - ); - - # Set operation variables - my $strPathOp = $self->pathGet($strPathType, $strPath); - my $hManifest; - - # Run remotely - if ($self->isRemote($strPathType)) - { - $hManifest = $self->{oProtocol}->cmdExecute(OP_FILE_MANIFEST, [$strPathOp], true); - } - # Run locally - else - { - $hManifest = fileManifest($strPathOp); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'hManifest', value => $hManifest, trace => true} - ); -} - -#################################################################################################################################### -# copy -# -# Copies a file from one location to another: -# -# * source and destination can be local or remote -# * wire and output compression/decompression are supported -# * intermediate temp files are used to prevent partial copies -# * modification time, mode, and ownership can be set on destination file -# * destination path can optionally be created -#################################################################################################################################### -sub copy -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strSourcePathType, - $strSourceFile, - $strDestinationPathType, - $strDestinationFile, - $bSourceCompressed, - $bDestinationCompress, - $bIgnoreMissingSource, - $lModificationTime, - $strMode, - $bDestinationPathCreate, - $strUser, - $strGroup, - $bAppendChecksum, - $bPathSync, - $strExtraFunction, - $rExtraParam, - $bTempFile, - ) = - logDebugParam - ( - __PACKAGE__ . '->copy', \@_, - {name => 'strSourcePathType'}, - {name => 'strSourceFile', required => false}, - {name => 'strDestinationPathType'}, - {name => 'strDestinationFile', required => false}, - {name => 'bSourceCompressed', default => false}, - {name => 'bDestinationCompress', default => false}, - {name => 'bIgnoreMissingSource', default => false}, - {name => 'lModificationTime', required => false}, - {name => 'strMode', default => fileModeDefaultGet()}, - {name => 'bDestinationPathCreate', default => false}, - {name => 'strUser', required => false}, - {name => 'strGroup', required => false}, - {name => 'bAppendChecksum', default => false}, - {name => 'bPathSync', default => false}, - {name => 'strExtraFunction', required => false}, - {name => 'rExtraParam', required => false}, - {name => 'bTempFile', default => true}, - ); - - # Set working variables - my $bSourceRemote = $self->isRemote($strSourcePathType) || $strSourcePathType eq PIPE_STDIN; - my $bDestinationRemote = $self->isRemote($strDestinationPathType) || $strDestinationPathType eq PIPE_STDOUT; - my $strSourceOp = $strSourcePathType eq PIPE_STDIN ? - $strSourcePathType : $self->pathGet($strSourcePathType, $strSourceFile); - my $strDestinationOp = $strDestinationPathType eq PIPE_STDOUT ? - $strDestinationPathType : $self->pathGet($strDestinationPathType, $strDestinationFile); - my $strDestinationTmpOp = - $strDestinationPathType eq PIPE_STDOUT ? undef : - ($bTempFile ? $self->pathGet($strDestinationPathType, $strDestinationFile, true) : - $self->pathGet($strDestinationPathType, $strDestinationFile)); - my $fnExtra = defined($strExtraFunction) ? - eval("\\&${strExtraFunction}") : undef; ## no critic (BuiltinFunctions::ProhibitStringyEval) - - # Checksum and size variables - my $strChecksum = undef; - my $iFileSize = undef; - my $rExtra = undef; - my $bResult = true; - - # Temp file is required if checksum will be appended - if ($bAppendChecksum && !$bTempFile) - { - confess &log(ASSERT, 'bTempFile must be true when bAppendChecksum is true'); - } - - # Open the source and destination files (if needed) - my $hSourceFile; - my $hDestinationFile; - - if (!$bSourceRemote) - { - if (!sysopen($hSourceFile, $strSourceOp, O_RDONLY)) - { - my $strError = $!; - my $iErrorCode = ERROR_FILE_READ; - - if ($!{ENOENT}) - { - # $strError = 'file is missing'; - $iErrorCode = ERROR_FILE_MISSING; - - if ($bIgnoreMissingSource && $strDestinationPathType ne PIPE_STDOUT) - { - return false, undef, undef; - } - } - - $strError = "cannot open source file ${strSourceOp}: " . $strError; - - if ($strSourcePathType eq PATH_ABSOLUTE) - { - if ($strDestinationPathType eq PIPE_STDOUT) - { - $self->{oProtocol}->binaryXferAbort(); - } - } - - confess &log(ERROR, $strError, $iErrorCode); - } - } - - if (!$bDestinationRemote) - { - my $iCreateFlag = O_WRONLY | O_CREAT; - - # Open the destination temp file - if (!sysopen($hDestinationFile, $strDestinationTmpOp, $iCreateFlag, oct($strMode))) - { - if ($bDestinationPathCreate) - { - filePathCreate(dirname($strDestinationTmpOp), undef, true, true); - } - - if (!$bDestinationPathCreate || !sysopen($hDestinationFile, $strDestinationTmpOp, $iCreateFlag, oct($strMode))) - { - my $strError = "unable to open ${strDestinationTmpOp}: " . $!; - my $iErrorCode = ERROR_FILE_READ; - - if (!fileExists(dirname($strDestinationTmpOp))) - { - $strError = dirname($strDestinationTmpOp) . ' destination path does not exist'; - $iErrorCode = ERROR_FILE_MISSING; - } - - if (!($bDestinationPathCreate && $iErrorCode == ERROR_FILE_MISSING)) - { - confess &log(ERROR, $strError, $iErrorCode); - } - } - } - - # Now lock the file to be sure nobody else is operating on it - if (!flock($hDestinationFile, LOCK_EX | LOCK_NB)) - { - confess &log(ERROR, "unable to acquire exclusive lock on ${strDestinationTmpOp}", ERROR_LOCK_ACQUIRE); - } - - # Set user and/or group if required - if (defined($strUser) || defined($strGroup)) - { - $self->owner(PATH_ABSOLUTE, $strDestinationTmpOp, $strUser, $strGroup); - } - } - - # If source or destination are remote - if ($bSourceRemote || $bDestinationRemote) - { - # Build the command and open the local file - my $hIn, - my $hOut; - my $strRemote; - my $strRemoteOp; - my $bController = false; - - # If source is remote and destination is local - if ($bSourceRemote && !$bDestinationRemote) - { - $hOut = $hDestinationFile; - $strRemoteOp = OP_FILE_COPY_OUT; - $strRemote = 'in'; - - if ($strSourcePathType ne PIPE_STDIN) - { - $self->{oProtocol}->cmdWrite($strRemoteOp, - [$strSourceOp, undef, $bSourceCompressed, $bDestinationCompress, undef, undef, undef, undef, undef, undef, - undef, undef, $strExtraFunction, $rExtraParam, $bTempFile]); - - $bController = true; - } - } - # Else if source is local and destination is remote - elsif (!$bSourceRemote && $bDestinationRemote) - { - $hIn = $hSourceFile; - $strRemoteOp = OP_FILE_COPY_IN; - $strRemote = 'out'; - - if ($strDestinationPathType ne PIPE_STDOUT) - { - $self->{oProtocol}->cmdWrite( - $strRemoteOp, - [undef, $strDestinationOp, $bSourceCompressed, $bDestinationCompress, undef, undef, $strMode, - $bDestinationPathCreate, $strUser, $strGroup, $bAppendChecksum, $bPathSync, $strExtraFunction, - $rExtraParam, $bTempFile]); - - $bController = true; - } - } - # Else source and destination are remote - else - { - $strRemoteOp = OP_FILE_COPY; - - $self->{oProtocol}->cmdWrite( - $strRemoteOp, - [$strSourceOp, $strDestinationOp, $bSourceCompressed, $bDestinationCompress, $bIgnoreMissingSource, undef, - $strMode, $bDestinationPathCreate, $strUser, $strGroup, $bAppendChecksum, $bPathSync, $strExtraFunction, - $rExtraParam, $bTempFile]); - - $bController = true; - } - - # Transfer the file (skip this for copies where both sides are remote) - if ($strRemoteOp ne OP_FILE_COPY) - { - ($strChecksum, $iFileSize, $rExtra) = - $self->{oProtocol}->binaryXfer($hIn, $hOut, $strRemote, $bSourceCompressed, $bDestinationCompress, undef, $fnExtra, - $rExtraParam); - } - - # If this is the controlling process then wait for OK from remote - if ($bController) - { - # Test for an error when reading output - eval - { - ($bResult, my $strResultChecksum, my $iResultFileSize, my $rResultExtra) = - $self->{oProtocol}->outputRead(true, $bIgnoreMissingSource); - - # Check the result of the remote call - if ($bResult) - { - # If the operation was purely remote, get checksum/size - if ($strRemoteOp eq OP_FILE_COPY || - $strRemoteOp eq OP_FILE_COPY_IN && $bSourceCompressed && !$bDestinationCompress) - { - # Checksum shouldn't already be set - if (defined($strChecksum) || defined($iFileSize)) - { - confess &log(ASSERT, "checksum and size are already defined, but shouldn't be"); - } - - $strChecksum = $strResultChecksum; - $iFileSize = $iResultFileSize; - $rExtra = $rResultExtra; - } - } - - return true; - } - # If there is an error then evaluate - or do - { - my $oException = $EVAL_ERROR; - - # Ignore error if source file was missing and missing file exception was returned and bIgnoreMissingSource is set - if ($bIgnoreMissingSource && $strRemote eq 'in' && exceptionCode($oException) == ERROR_FILE_MISSING) - { - close($hDestinationFile) - or confess &log(ERROR, "cannot close file ${strDestinationTmpOp}"); - fileRemove($strDestinationTmpOp); - - $bResult = false; - } - else - { - confess $oException; - } - }; - } - } - # Else this is a local operation - else - { - # If the source is not compressed and the destination is then compress - if (!$bSourceCompressed && $bDestinationCompress) - { - ($strChecksum, $iFileSize, $rExtra) = - $self->{oProtocol}->binaryXfer($hSourceFile, $hDestinationFile, 'out', false, true, false, $fnExtra, $rExtraParam); - } - # If the source is compressed and the destination is not then decompress - elsif ($bSourceCompressed && !$bDestinationCompress) - { - ($strChecksum, $iFileSize, $rExtra) = - $self->{oProtocol}->binaryXfer($hSourceFile, $hDestinationFile, 'in', true, false, false, $fnExtra, $rExtraParam); - } - # Else both sides are compressed, so copy capturing checksum - elsif ($bSourceCompressed) - { - ($strChecksum, $iFileSize, $rExtra) = - $self->{oProtocol}->binaryXfer($hSourceFile, $hDestinationFile, 'out', true, true, false, $fnExtra, $rExtraParam); - } - else - { - ($strChecksum, $iFileSize, $rExtra) = - $self->{oProtocol}->binaryXfer($hSourceFile, $hDestinationFile, 'in', false, true, false, $fnExtra, $rExtraParam); - } - } - - if ($bResult) - { - # Close the source file (if local) - if (defined($hSourceFile)) - { - close($hSourceFile) or confess &log(ERROR, "cannot close file ${strSourceOp}"); - } - - # Sync and close the destination file (if local) - if (defined($hDestinationFile)) - { - $hDestinationFile->sync() - or confess &log(ERROR, "unable to sync ${strDestinationTmpOp}", ERROR_FILE_SYNC); - - close($hDestinationFile) - or confess &log(ERROR, "cannot close file ${strDestinationTmpOp}"); - } - - # Checksum and file size should be set if the destination is not remote - if (!(!$bSourceRemote && $bDestinationRemote && $bSourceCompressed) && - (!defined($strChecksum) || !defined($iFileSize))) - { - confess &log(ASSERT, 'checksum or file size not set'); - } - - # Where the destination is local, set mode, modification time, and perform move to final location - if (!$bDestinationRemote) - { - # Set the file modification time if required - if (defined($lModificationTime)) - { - utime($lModificationTime, $lModificationTime, $strDestinationTmpOp) - or confess &log(ERROR, "unable to set time for local ${strDestinationTmpOp}"); - } - - # Replace checksum in destination filename (if exists) - if ($bAppendChecksum) - { - # Replace destination filename - if ($bDestinationCompress) - { - $strDestinationOp = - substr($strDestinationOp, 0, length($strDestinationOp) - length($self->{strCompressExtension}) - 1) . - '-' . $strChecksum . '.' . $self->{strCompressExtension}; - } - else - { - $strDestinationOp .= '-' . $strChecksum; - } - } - - # Move the file from tmp to final destination - if ($bTempFile) - { - fileMove($strDestinationTmpOp, $strDestinationOp, $bDestinationPathCreate, $bPathSync); - } - # Else sync path if requested - elsif ($bPathSync) - { - filePathSync(dirname($strDestinationTmpOp)); - } - } - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'bResult', value => $bResult, trace => true}, - {name => 'strChecksum', value => $strChecksum, trace => true}, - {name => 'iFileSize', value => $iFileSize, trace => true}, - {name => '$rExtra', value => $rExtra, trace => true}, - ); -} - -1; diff --git a/lib/pgBackRest/FileCommon.pm b/lib/pgBackRest/FileCommon.pm deleted file mode 100644 index b038a05b6..000000000 --- a/lib/pgBackRest/FileCommon.pm +++ /dev/null @@ -1,1143 +0,0 @@ -#################################################################################################################################### -# FILE COMMON MODULE -#################################################################################################################################### -package pgBackRest::FileCommon; - -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use Digest::SHA; -use Exporter qw(import); - our @EXPORT = qw(); -use Fcntl qw(:mode :flock O_RDONLY O_WRONLY O_CREAT O_TRUNC); -use File::Basename qw(dirname basename); -use File::Path qw(make_path); -use File::stat; -use IO::Handle; - -use pgBackRest::Common::Exception; -use pgBackRest::Common::Log; -use pgBackRest::Version; - -#################################################################################################################################### -# Default modes -#################################################################################################################################### -my $strPathModeDefault = '0750'; -my $strFileModeDefault = '0640'; - -#################################################################################################################################### -# Compression extension -#################################################################################################################################### -use constant COMPRESS_EXT => 'gz'; - push @EXPORT, qw(COMPRESS_EXT); - -#################################################################################################################################### -# fileExists -# -# Check if a path or file exists. -#################################################################################################################################### -sub fileExists -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strFile - ) = - logDebugParam - ( - __PACKAGE__ . '::fileExists', \@_, - {name => 'strFile', required => true, trace => true} - ); - - # Working variables - my $bExists = true; - - # Stat the file/path to determine if it exists - my $oStat = lstat($strFile); - - # Evaluate error - if (!defined($oStat)) - { - my $strError = $!; - - # If the error is not entry missing, then throw error - if (!$!{ENOENT}) - { - confess &log(ERROR, "unable to read ${strFile}" . (defined($strError) ? ": $strError" : ''), ERROR_FILE_OPEN); - } - - $bExists = false; - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'bExists', value => $bExists, trace => true} - ); -} - -push @EXPORT, qw(fileExists); - -#################################################################################################################################### -# fileHash -# -# Get the file hash and size. -#################################################################################################################################### -sub fileHash -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strFile, - $bCompressed, - $strHashType - ) = - logDebugParam - ( - __PACKAGE__ . '::fileHash', \@_, - {name => 'strFile', trace => true}, - {name => 'bCompressed', default => false, trace => true}, - {name => 'strHashType', default => 'sha1', trace => true} - ); - - # Working variables - my ($strHash) = fileHashSize($strFile, $bCompressed, $strHashType); - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'strHash', value => $strHash, trace => true} - ); -} - -push @EXPORT, qw(fileHash); - -#################################################################################################################################### -# fileHashSize -# -# Get the file hash and size. -#################################################################################################################################### -sub fileHashSize -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strFile, - $bCompressed, - $strHashType, - $oProtocol - ) = - logDebugParam - ( - __PACKAGE__ . '::fileHashSize', \@_, - {name => 'strFile', trace => true}, - {name => 'bCompressed', default => false, trace => true}, - {name => 'strHashType', default => 'sha1', trace => true}, - {name => 'oProtocol', required => false, trace => true} - ); - - # Working variables - my $strHash; - my $iSize = 0; - my $hFile; - - if (!sysopen($hFile, $strFile, O_RDONLY)) - { - my $strError = $!; - - # If file exists then throw the error - if (fileExists($strFile)) - { - confess &log(ERROR, "unable to open ${strFile}" . (defined($strError) ? ": $strError" : ''), ERROR_FILE_OPEN); - } - - confess &log(ERROR, "${strFile} does not exist", ERROR_FILE_MISSING); - } - - my $oSHA = Digest::SHA->new($strHashType); - - if ($bCompressed) - { - # ??? Not crazy about pushing the protocol object in here. Probably binaryXfer() should be refactored into a standalone - # function in this file. - if (!defined($oProtocol)) - { - confess &log(ASSERT, "oProtocol must be provided to hash compressed file"); - } - - ($strHash, $iSize) = - $oProtocol->binaryXfer($hFile, 'none', 'in', true, false, false); - } - else - { - my $iBlockSize; - my $tBuffer; - - do - { - # Read a block from the file - $iBlockSize = sysread($hFile, $tBuffer, 4194304); - - if (!defined($iBlockSize)) - { - confess &log(ERROR, "${strFile} could not be read: " . $!, ERROR_FILE_READ); - } - - $iSize += $iBlockSize; - $oSHA->add($tBuffer); - } - while ($iBlockSize > 0); - - $strHash = $oSHA->hexdigest(); - } - - close($hFile); - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'strHash', value => $strHash, trace => true}, - {name => 'iSize', value => $iSize, trace => true} - ); -} - -push @EXPORT, qw(fileHashSize); - -#################################################################################################################################### -# fileLinkDestination -# -# Return the destination of a symlink. -#################################################################################################################################### -sub fileLinkDestination -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strLink, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileLinkDestination', \@_, - {name => 'strFile', trace => true}, - ); - - # Get link destination - my $strLinkDestination = readlink($strLink); - - # Check for errors - if (!defined($strLinkDestination)) - { - logErrorResult( - $OS_ERROR{ENOENT} ? ERROR_FILE_MISSING : ERROR_FILE_OPEN, "unable to get destination for link ${strLink}", $OS_ERROR); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'strLinkDestination', value => $strLinkDestination, trace => true} - ); -} - -push @EXPORT, qw(fileLinkDestination); - -#################################################################################################################################### -# fileList -# -# List a directory with filters and ordering. -#################################################################################################################################### -sub fileList -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPath, - $strExpression, - $strSortOrder, - $bIgnoreMissing, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileList', \@_, - {name => 'strPath', trace => true}, - {name => 'strExpression', optional => true, trace => true}, - {name => 'strSortOrder', optional => true, default => 'forward', trace => true}, - {name => 'bIgnoreMissing', optional => true, default => false, trace => true}, - ); - - # Working variables - my @stryFileList; - my $hPath; - - # Attempt to open the path - if (opendir($hPath, $strPath)) - { - @stryFileList = grep(!/^(\.)|(\.\.)$/i, readdir($hPath)); - close($hPath); - - # Apply expression if defined - if (defined($strExpression)) - { - @stryFileList = grep(/$strExpression/i, @stryFileList); - } - - # Reverse sort - if ($strSortOrder eq 'reverse') - { - @stryFileList = sort {$b cmp $a} @stryFileList; - } - # Normal sort - else - { - @stryFileList = sort @stryFileList; - } - } - # Else process errors - else - { - my $strError = $!; - - # Ignore the error is the file is missing and missing files should be ignored - if (!($!{ENOENT} && $bIgnoreMissing)) - { - confess &log(ERROR, "unable to read ${strPath}" . (defined($strError) ? ": $strError" : ''), ERROR_PATH_OPEN); - } - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'stryFileList', value => \@stryFileList, trace => true} - ); -} - -push @EXPORT, qw(fileList); - -#################################################################################################################################### -# fileManifest -# -# Generate a complete list of all directories/links/files in a directory/subdirectories. -#################################################################################################################################### -sub fileManifest -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPath, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileManifest', \@_, - {name => 'strPath', trace => true}, - ); - - # Generate the manifest - my $hManifest = {}; - fileManifestRecurse($strPath, undef, 0, $hManifest); - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'hManifest', value => $hManifest, trace => true} - ); -} - -push @EXPORT, qw(fileManifest); - -sub fileManifestRecurse -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPath, - $strSubPath, - $iDepth, - $hManifest, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileManifestRecurse', \@_, - {name => 'strPath', trace => true}, - {name => 'strSubPath', required => false, trace => true}, - {name => 'iDepth', default => 0, trace => true}, - {name => 'hManifest', required => false, trace => true}, - ); - - # Set operation and debug strings - my $strPathRead = $strPath . (defined($strSubPath) ? "/${strSubPath}" : ''); - my $hPath; - my $strFilter; - - # If this is the top level stat the path to discover if it is actually a file - if ($iDepth == 0 && !S_ISDIR((fileStat($strPathRead))->mode)) - { - $strFilter = basename($strPathRead); - $strPathRead = dirname($strPathRead); - } - - # Get a list of all files in the path (including .) - my @stryFileList = fileList($strPathRead, {bIgnoreMissing => $iDepth != 0}); - unshift(@stryFileList, '.'); - my $hFileStat = fileManifestList($strPathRead, \@stryFileList); - - # Loop through all subpaths/files in the path - foreach my $strFile (keys(%{$hFileStat})) - { - # Skip this file if it does not match the filter - if (defined($strFilter) && $strFile ne $strFilter) - { - next; - } - - my $strManifestFile = $iDepth == 0 ? $strFile : ($strSubPath . ($strFile eq qw(.) ? '' : "/${strFile}")); - $hManifest->{$strManifestFile} = $hFileStat->{$strFile}; - - # Recurse into directories - if ($hManifest->{$strManifestFile}{type} eq 'd' && $strFile ne qw(.)) - { - fileManifestRecurse($strPath, $strManifestFile, $iDepth + 1, $hManifest); - } - } - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - -sub fileManifestList -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPath, - $stryFile, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileManifestList', \@_, - {name => 'strPath', trace => true}, - {name => 'stryFile', trace => true}, - ); - - my $hFileStat = {}; - - foreach my $strFile (@{$stryFile}) - { - $hFileStat->{$strFile} = fileManifestStat("${strPath}" . ($strFile eq qw(.) ? '' : "/${strFile}")); - - if (!defined($hFileStat->{$strFile})) - { - delete($hFileStat->{$strFile}); - } - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'hFileStat', value => $hFileStat, trace => true} - ); -} - -sub fileManifestStat -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strFile, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileManifestRecurse', \@_, - {name => 'strFile', trace => true}, - ); - - # Stat the path/file, ignoring any that are missing - my $oStat = fileStat($strFile, true); - - # Generate file data if stat succeeded (i.e. file exists) - my $hFile; - - if (defined($oStat)) - { - # Check for regular file - if (S_ISREG($oStat->mode)) - { - $hFile->{type} = 'f'; - - # Get size - $hFile->{size} = $oStat->size; - - # Get modification time - $hFile->{modification_time} = $oStat->mtime; - } - # Check for directory - elsif (S_ISDIR($oStat->mode)) - { - $hFile->{type} = 'd'; - } - # Check for link - elsif (S_ISLNK($oStat->mode)) - { - $hFile->{type} = 'l'; - $hFile->{link_destination} = fileLinkDestination($strFile); - } - # Not a recognized type - else - { - confess &log(ERROR, "${strFile} is not of type directory, file, or link", ERROR_FILE_INVALID); - } - - # Get user name - $hFile->{user} = getpwuid($oStat->uid); - - # Get group name - $hFile->{group} = getgrgid($oStat->gid); - - # Get mode - if ($hFile->{type} ne 'l') - { - $hFile->{mode} = sprintf('%04o', S_IMODE($oStat->mode)); - } - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'hFile', value => $hFile, trace => true} - ); -} - -#################################################################################################################################### -# fileMode -# -# Set the file mode. -#################################################################################################################################### -sub fileMode -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strFile, - $strMode, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileMode', \@_, - {name => 'strFile', trace => true}, - {name => 'strMode', default => $strFileModeDefault, trace => true}, - ); - - # Change mode - if(!chmod(oct($strMode), $strFile)) - { - my $strError = $!; - - # If file exists then throw the error - if (fileExists($strFile)) - { - confess &log(ERROR, "unable to chmod ${strFile}" . (defined($strError) ? ": $strError" : ''), ERROR_FILE_MODE); - } - - confess &log(ERROR, "${strFile} does not exist", ERROR_FILE_MISSING); - } - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - -push @EXPORT, qw(fileMode); - -#################################################################################################################################### -# fileModeDefaultGet -# -# Get the default mode to be used when creating files. -#################################################################################################################################### -sub fileModeDefaultGet -{ - # Assign function parameters, defaults, and log debug info - my ($strOperation) = logDebugParam(__PACKAGE__ . '::fileModeDefaultGet'); - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'strFileModeDefault', value => $strFileModeDefault, trace => true} - ); -} - -push @EXPORT, qw(fileModeDefaultGet); - -#################################################################################################################################### -# fileModeDefaultSet -# -# Set the default mode to be used when creating files. -#################################################################################################################################### -sub fileModeDefaultSet -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strMode, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileModeDefaultSet', \@_, - {name => 'strMode', trace => true}, - ); - - $strFileModeDefault = $strMode; - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - -push @EXPORT, qw(fileModeDefaultSet); - -#################################################################################################################################### -# fileMove -# -# Move a file. -#################################################################################################################################### -sub fileMove -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strSourceFile, - $strDestinationFile, - $bDestinationPathCreate, - $bPathSync, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileMove', \@_, - {name => 'strSourceFile', trace => true}, - {name => 'strDestinationFile', trace => true}, - {name => 'bDestinationPathCreate', default => false, trace => true}, - {name => 'bPathSync', default => false, trace => true}, - ); - - # Get source and destination paths - my $strSourcePath = dirname($strSourceFile); - my $strDestinationPath = dirname($strDestinationFile); - - # Move the file - if (!rename($strSourceFile, $strDestinationFile)) - { - my $strError = $!; - my $bError = true; - - # If the destination path does not exist and can be created then create it - if ($bDestinationPathCreate && !fileExists($strDestinationPath)) - { - $bError = false; - - filePathCreate(dirname($strDestinationFile), undef, true, true, $bPathSync); - - # Try the rename again and store the error if it fails - if (!rename($strSourceFile, $strDestinationFile)) - { - $strError = $!; - $bError = true; - } - } - - # If there was an error then raise it - if ($bError) - { - confess &log(ERROR, "unable to move file ${strSourceFile} to ${strDestinationFile}" . - (defined($strError) ? ": $strError" : ''), ERROR_FILE_MOVE); - } - } - - # Sync path(s) if requested - if ($bPathSync) - { - # Always sync the destination directory - filePathSync(dirname($strDestinationFile)); - - # If the source and destination directories are not the same then sync the source directory - if (dirname($strSourceFile) ne dirname($strDestinationFile)) - { - filePathSync(dirname($strSourceFile)); - } - } - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - -push @EXPORT, qw(fileMove); - -#################################################################################################################################### -# fileOpen -# -# Open a file. -#################################################################################################################################### -sub fileOpen -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strFile, - $lFlags, - $strMode, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileOpen', \@_, - {name => 'strFile', trace => true}, - {name => 'lFlags', trace => true}, - {name => 'strMode', default => $strFileModeDefault, trace => true}, - ); - - my $hFile; - - if (!sysopen($hFile, $strFile, $lFlags, oct($strMode))) - { - my $strError = $!; - - # If file exists then throw the error - if (fileExists($strFile)) - { - confess &log(ERROR, "unable to open ${strFile}" . (defined($strError) ? ": $strError" : ''), ERROR_FILE_OPEN); - } - - confess &log(ERROR, "${strFile} does not exist", ERROR_FILE_MISSING); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'hFile', value => $hFile, trace => true} - ); -} - -push @EXPORT, qw(fileOpen); - -#################################################################################################################################### -# filePathSync -# -# Sync a directory. -#################################################################################################################################### -sub filePathSync -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPath - ) = - logDebugParam - ( - __PACKAGE__ . '::filePathSync', \@_, - {name => 'strPath', trace => true} - ); - - open(my $hPath, "<", $strPath) - or confess &log(ERROR, "unable to open '${strPath}' for sync", ERROR_PATH_OPEN); - open(my $hPathDup, ">&", $hPath) - or confess &log(ERROR, "unable to duplicate '${strPath}' handle for sync", ERROR_PATH_OPEN); - - $hPathDup->sync - or confess &log(ERROR, "unable to sync '${strPath}'", ERROR_PATH_SYNC); - - close($hPathDup); - close($hPath); - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - -push @EXPORT, qw(filePathSync); - -#################################################################################################################################### -# fileRemove -# -# Remove a file from the file system. -#################################################################################################################################### -sub fileRemove -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPath, - $bIgnoreMissing, - $bPathSync, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileRemove', \@_, - {name => 'strPath', trace => true}, - {name => 'bIgnoreMissing', default => false, trace => true}, - {name => 'bPathSync', default => false, trace => true}, - ); - - # Working variables - my $bRemoved = true; - - # Remove the file - if (unlink($strPath) != 1) - { - $bRemoved = false; - my $strError = $!; - - # If path exists then throw the error - if (fileExists($strPath)) - { - confess &log(ERROR, "unable to remove ${strPath}" . (defined($strError) ? ": $strError" : ''), ERROR_FILE_OPEN); - } - # Else throw an error unless missing paths are ignored - elsif (!$bIgnoreMissing) - { - confess &log(ERROR, "${strPath} does not exist", ERROR_FILE_MISSING); - } - } - - # Sync parent directory if requested - if ($bRemoved && $bPathSync) - { - filePathSync(dirname($strPath)); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'bRemoved', value => $bRemoved, trace => true} - ); -} - -push @EXPORT, qw(fileRemove); - -#################################################################################################################################### -# fileStat -# -# Stat a file. -#################################################################################################################################### -sub fileStat -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strFile, - $bIgnoreMissing, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileStat', \@_, - {name => 'strFile', trace => true}, - {name => 'bIgnoreMissing', default => false, trace => true}, - ); - - # Stat the file/path - my $oStat = lstat($strFile); - - # Check for errors - if (!defined($oStat)) - { - if (!($OS_ERROR{ENOENT} && $bIgnoreMissing)) - { - logErrorResult($OS_ERROR{ENOENT} ? ERROR_FILE_MISSING : ERROR_FILE_OPEN, "unable to stat ${strFile}", $OS_ERROR); - } - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'oStat', value => $oStat, trace => true} - ); -} - -push @EXPORT, qw(fileStat); - -#################################################################################################################################### -# fileStringRead -# -# Read the specified file as a string. -#################################################################################################################################### -sub fileStringRead -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strFileName - ) = - logDebugParam - ( - __PACKAGE__ . '::fileStringRead', \@_, - {name => 'strFileName', trace => true} - ); - - # Open the file for writing - sysopen(my $hFile, $strFileName, O_RDONLY) - or confess &log(ERROR, "unable to open ${strFileName}"); - - # Read the string - my $iBytesRead; - my $iBytesTotal = 0; - my $strContent; - - do - { - $iBytesRead = sysread($hFile, $strContent, 65536, $iBytesTotal); - - if (!defined($iBytesRead)) - { - confess &log(ERROR, "unable to read string from ${strFileName}: $!", ERROR_FILE_READ); - } - - $iBytesTotal += $iBytesRead; - } - while ($iBytesRead != 0); - - close($hFile); - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'strContent', value => $strContent, trace => true} - ); -} - -push @EXPORT, qw(fileStringRead); - -#################################################################################################################################### -# fileStringWrite -# -# Create/overwrite a file with a string. -#################################################################################################################################### -sub fileStringWrite -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strFileName, - $strContent, - $bSync, - ) = - logDebugParam - ( - __PACKAGE__ . '::fileStringWrite', \@_, - {name => 'strFileName', trace => true}, - {name => 'strContent', trace => true, required => false}, - {name => 'bSync', default => true, trace => true}, - ); - - # Generate temp filename - my $strFileNameTemp = $strFileName . '.' . BACKREST_EXE . '.tmp'; - - # Open file for writing - my $hFile = fileOpen($strFileNameTemp, O_WRONLY | O_CREAT | O_TRUNC, $strFileModeDefault); - - # Write content - if (defined($strContent) && length($strContent) > 0) - { - syswrite($hFile, $strContent) - or confess &log(ERROR, "unable to write string to ${strFileName}: $!", ERROR_FILE_WRITE); - } - - # Sync file - $hFile->sync() if $bSync; - - # Close file - close($hFile); - - # Move file to final location - fileMove($strFileNameTemp, $strFileName, undef, $bSync); - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - -push @EXPORT, qw(fileStringWrite); - -#################################################################################################################################### -# pathAbsolute -# -# Generate an absolute path from an absolute base path and a relative path. -#################################################################################################################################### -sub pathAbsolute -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strBasePath, - $strPath - ) = - logDebugParam - ( - __PACKAGE__ . '::pathAbsolute', \@_, - {name => 'strBasePath', trace => true}, - {name => 'strPath', trace => true} - ); - - # Working variables - my $strAbsolutePath; - - # If the path is already absolute - if (index($strPath, '/') == 0) - { - $strAbsolutePath = $strPath; - } - # Else make it absolute using the base path - else - { - # Make sure the absolute path is really absolute - if (index($strBasePath, '/') != 0 || index($strBasePath, '/..') != -1) - { - confess &log(ERROR, "${strBasePath} is not an absolute path", ERROR_PATH_TYPE); - } - - while (index($strPath, '..') == 0) - { - $strBasePath = dirname($strBasePath); - $strPath = substr($strPath, 2); - - if (index($strPath, '/') == 0) - { - $strPath = substr($strPath, 1); - } - } - - $strAbsolutePath = "${strBasePath}/${strPath}"; - } - - # Make sure the result is really an absolute path - if (index($strAbsolutePath, '/') != 0 || index($strAbsolutePath, '/..') != -1) - { - confess &log(ERROR, "result ${strAbsolutePath} was not an absolute path", ERROR_PATH_TYPE); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'strAbsolutePath', value => $strAbsolutePath, trace => true} - ); -} - -push @EXPORT, qw(pathAbsolute); - -#################################################################################################################################### -# pathModeDefaultSet -# -# Set the default mode to be used when creating paths. -#################################################################################################################################### -sub pathModeDefaultSet -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strMode - ) = - logDebugParam - ( - __PACKAGE__ . '::pathModeDefaultSet', \@_, - {name => 'strMode', trace => true}, - ); - - $strPathModeDefault = $strMode; - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - -push @EXPORT, qw(pathModeDefaultSet); - -#################################################################################################################################### -# filePathCreate -# -# Create a path. -#################################################################################################################################### -sub filePathCreate -{ - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strPath, - $strMode, - $bIgnoreExists, - $bCreateParents, - $bPathSync, - ) = - logDebugParam - ( - __PACKAGE__ . '::filePathCreate', \@_, - {name => 'strPath', trace => true}, - {name => 'strMode', default => $strPathModeDefault, trace => true}, - {name => 'bIgnoreExists', default => false, trace => true}, - {name => 'bCreateParents', default => false, trace => true}, - {name => 'bPathSync', default => false, trace => true}, - ); - - # Determine if parent directory exists - my $strParentPath = dirname($strPath); - - if (!fileExists($strParentPath)) - { - if (!$bCreateParents) - { - confess &log(ERROR, "unable to create ${strPath} because parent path does not exist", ERROR_PATH_CREATE); - } - - filePathCreate($strParentPath, $strMode, $bIgnoreExists, $bCreateParents, $bPathSync); - } - - # Create the path - if (!mkdir($strPath, oct($strMode))) - { - # Get the error as a string - my $strError = $OS_ERROR . ''; - - # Error if not ignoring existence of the path - if (!($bIgnoreExists && fileExists($strPath))) - { - confess &log(ERROR, "unable to create ${strPath}: " . $OS_ERROR, ERROR_PATH_CREATE); - } - } - - # Sync path if requested - if ($bPathSync) - { - filePathSync($strParentPath); - } - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - -push @EXPORT, qw(filePathCreate); - -1; diff --git a/lib/pgBackRest/Info.pm b/lib/pgBackRest/Info.pm index 658c38ca4..aa0892dbe 100644 --- a/lib/pgBackRest/Info.pm +++ b/lib/pgBackRest/Info.pm @@ -11,18 +11,19 @@ use Exporter qw(import); our @EXPORT = qw(); use File::Basename qw(dirname); +use pgBackRest::Backup::Common; +use pgBackRest::Backup::Info; use pgBackRest::Common::Log; use pgBackRest::Common::Ini; use pgBackRest::Common::String; use pgBackRest::Backup::Common; use pgBackRest::Backup::Info; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::InfoCommon; use pgBackRest::Manifest; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; #################################################################################################################################### # Info constants @@ -99,16 +100,8 @@ sub process # Get stanza if specified my $strStanza = optionTest(OPTION_STANZA) ? optionGet(OPTION_STANZA) : undef; - # Create the file object - my $oFile = new pgBackRest::File - ( - $strStanza, - optionGet(OPTION_REPO_PATH), - protocolGet(BACKUP) - ); - # Get the stanza list with all info - my $oyStanzaList = $self->stanzaList($oFile, $strStanza); + my $oyStanzaList = $self->stanzaList($strStanza); if (optionTest(OPTION_OUTPUT, INFO_OUTPUT_TEXT)) { @@ -120,7 +113,7 @@ sub process } else { - syswrite(*STDOUT, 'No stanzas exist in ' . $oFile->pathGet(PATH_BACKUP) . ".\n"); + syswrite(*STDOUT, 'No stanzas exist in ' . storageRepo()->pathGet() . ".\n"); } } elsif (optionTest(OPTION_OUTPUT, INFO_OUTPUT_JSON)) @@ -325,27 +318,25 @@ sub stanzaList my ( $strOperation, - $oFile, $strStanza ) = logDebugParam ( __PACKAGE__ . '->stanzaList', \@_, - {name => 'oFile'}, {name => 'strStanza', required => false} ); my @oyStanzaList; # Run remotely - if ($oFile->isRemote(PATH_BACKUP)) + if (!isRepoLocal()) { - @oyStanzaList = @{$oFile->{oProtocol}->cmdExecute(OP_INFO_STANZA_LIST, [$strStanza], true)}; + @oyStanzaList = @{protocolGet(BACKUP)->cmdExecute(OP_INFO_STANZA_LIST, [$strStanza], true)}; } # Run locally else { - my @stryStanza = $oFile->list(PATH_BACKUP, CMD_BACKUP, {bIgnoreMissing => true}); + my @stryStanza = storageRepo()->list(CMD_BACKUP, {bIgnoreMissing => true}); foreach my $strStanzaFound (@stryStanza) { @@ -357,7 +348,7 @@ sub stanzaList my $oStanzaInfo = {}; $$oStanzaInfo{&INFO_STANZA_NAME} = $strStanzaFound; ($$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}, $$oStanzaInfo{&INFO_BACKUP_SECTION_DB}) = - $self->backupList($oFile, $strStanzaFound); + $self->backupList($strStanzaFound); # If there are no backups then set status to no backup if (@{$$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}} == 0) @@ -394,20 +385,20 @@ sub stanzaList # With multiple DB versions, the backup.info history-id may not be the same as archive.info history-id, so the # archive path must be built by retrieving the archive id given the db version and system id of the backup - my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo(optionGet(OPTION_REPO_PATH) . "/" . $strArchiveStanzaPath); + my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo(storageRepo()->pathGet($strArchiveStanzaPath)); my $strArchiveId = $oArchiveInfo->archiveId({strDbVersion => $hDbInfo->{&INFO_KEY_VERSION}, ullDbSysId => $hDbInfo->{&INFO_KEY_SYSTEM_ID}}); my $strArchivePath = "archive/${strStanzaFound}/${strArchiveId}"; - if ($oFile->exists(PATH_BACKUP, $strArchivePath)) + if (storageRepo()->pathExists($strArchivePath)) { - my @stryWalMajor = $oFile->list(PATH_BACKUP, $strArchivePath, {strExpression => '^[0-F]{16}$'}); + my @stryWalMajor = storageRepo()->list($strArchivePath, {strExpression => '^[0-F]{16}$'}); # Get first WAL segment foreach my $strWalMajor (@stryWalMajor) { - my @stryWalFile = $oFile->list( - PATH_BACKUP, "${strArchivePath}/${strWalMajor}", + my @stryWalFile = storageRepo()->list( + "${strArchivePath}/${strWalMajor}", {strExpression => "^[0-F]{24}-[0-f]{40}(\\." . COMPRESS_EXT . "){0,1}\$"}); if (@stryWalFile > 0) @@ -420,8 +411,8 @@ sub stanzaList # Get last WAL segment foreach my $strWalMajor (sort({$b cmp $a} @stryWalMajor)) { - my @stryWalFile = $oFile->list( - PATH_BACKUP, "${strArchivePath}/${strWalMajor}", + my @stryWalFile = storageRepo()->list( + "${strArchivePath}/${strWalMajor}", {strExpression => "^[0-F]{24}-[0-f]{40}(\\." . COMPRESS_EXT . "){0,1}\$", strSortOrder => 'reverse'}); if (@stryWalFile > 0) @@ -481,18 +472,16 @@ sub backupList my ( $strOperation, - $oFile, $strStanza ) = logDebugParam ( __PACKAGE__ . '->backupList', \@_, - {name => 'oFile'}, {name => 'strStanza'} ); # Load the backup.info but do not attempt to validate it or confirm it's existence - my $oBackupInfo = new pgBackRest::Backup::Info($oFile->pathGet(PATH_BACKUP, CMD_BACKUP . "/${strStanza}"), false, false); + my $oBackupInfo = new pgBackRest::Backup::Info(storageRepo()->pathGet(CMD_BACKUP . "/${strStanza}"), false, false, {bIgnoreMissing => true}); # Build the db list my @oyDbList; diff --git a/lib/pgBackRest/Manifest.pm b/lib/pgBackRest/Manifest.pm index 190197608..2342fa4d3 100644 --- a/lib/pgBackRest/Manifest.pm +++ b/lib/pgBackRest/Manifest.pm @@ -18,9 +18,11 @@ use pgBackRest::DbVersion; use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; -use pgBackRest::File; -use pgBackRest::FileCommon; +use pgBackRest::Common::Wait; use pgBackRest::Config::Config; +use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; #################################################################################################################################### # File/path constants @@ -29,6 +31,8 @@ use constant PATH_BACKUP_HISTORY => 'backup.h push @EXPORT, qw(PATH_BACKUP_HISTORY); use constant FILE_MANIFEST => 'backup.manifest'; push @EXPORT, qw(FILE_MANIFEST); +use constant FILE_MANIFEST_COPY => FILE_MANIFEST . INI_COPY_EXT; + push @EXPORT, qw(FILE_MANIFEST_COPY); #################################################################################################################################### # Default match factor @@ -291,21 +295,23 @@ sub new my ( $strOperation, - $strFileName, # Manifest filename - $bLoad # Load the manifest? + $strFileName, + $bLoad, + $oStorage, ) = logDebugParam ( __PACKAGE__ . '->new', \@_, {name => 'strFileName', trace => true}, - {name => 'bLoad', required => false, trace => true} + {name => 'bLoad', required => false, trace => true}, + {name => 'oStorage', optional => true, default => storageRepo(), trace => true}, ); # Set defaults $bLoad = defined($bLoad) ? $bLoad : true; # Init object and store variables - my $self = $class->SUPER::new($strFileName, {bLoad => $bLoad}); + my $self = $class->SUPER::new($strFileName, {bLoad => $bLoad, oStorage => $oStorage}); # Return from function and log return values if any return logDebugReturn @@ -554,7 +560,7 @@ sub build my ( $strOperation, - $oFile, + $oStorageDbMaster, $strDbVersion, $strPath, $oLastManifest, @@ -569,7 +575,7 @@ sub build logDebugParam ( __PACKAGE__ . '->build', \@_, - {name => 'oFile'}, + {name => 'oStorageDbMaster'}, {name => 'strDbVersion'}, {name => 'strPath'}, {name => 'oLastManifest', required => false}, @@ -589,7 +595,7 @@ sub build # If not online then build the tablespace map from pg_tblspc path if (!$bOnline && !defined($hTablespaceMap)) { - my $hTablespaceManifest = $oFile->manifest(PATH_DB_ABSOLUTE, $strPath . '/' . DB_PATH_PGTBLSPC); + my $hTablespaceManifest = $oStorageDbMaster->manifest($strPath . '/' . DB_PATH_PGTBLSPC); $hTablespaceMap = {}; foreach my $strOid (sort(CORE::keys(%{$hTablespaceManifest}))) @@ -632,11 +638,11 @@ sub build confess &log(ASSERT, "cannot get manifest for '${strPath}' when no parent path is specified"); } - $strPath = pathAbsolute($strParentPath, $strPath); + $strPath = $oStorageDbMaster->pathAbsolute($strParentPath, $strPath); } # Get the manifest for this level - my $hManifest = $oFile->manifest(PATH_DB_ABSOLUTE, $strPath); + my $hManifest = $oStorageDbMaster->manifest($strPath); my $strManifestType = MANIFEST_VALUE_LINK; # Loop though all paths/files/links in the manifest @@ -740,7 +746,7 @@ sub build # Check for tablespaces in PGDATA if (index($hManifest->{$strName}{link_destination}, "${strPath}/") == 0 || (index($hManifest->{$strName}{link_destination}, '/') != 0 && - index(pathAbsolute($strPath . '/' . DB_PATH_PGTBLSPC, + index($oStorageDbMaster->pathAbsolute($strPath . '/' . DB_PATH_PGTBLSPC, $hManifest->{$strName}{link_destination}) . '/', "${strPath}/") == 0)) { confess &log(ERROR, 'tablespace symlink ' . $hManifest->{$strName}{link_destination} . @@ -805,7 +811,7 @@ sub build $strPath = dirname("${strPath}/${strName}"); - $self->build($oFile, $strDbVersion, $strLinkDestination, undef, $bOnline, $hTablespaceMap, $hDatabaseMap, + $self->build($oStorageDbMaster, $strDbVersion, $strLinkDestination, undef, $bOnline, $hTablespaceMap, $hDatabaseMap, $strFile, $bTablespace, $strPath, $strFilter, $strLinkDestination); } } @@ -820,7 +826,9 @@ sub build # lead to an invalid diff/incr backup later when using timestamps to determine which files have changed. Offline backups do # not wait because it makes testing much faster and Postgres should not be running (if it is the backup will not be # consistent anyway and the one-second resolution problem is the least of our worries). - my $lTimeBegin = $oFile->wait(PATH_DB_ABSOLUTE, $bOnline); + my $lTimeBegin = + $oStorageDbMaster->can('protocol') ? + $oStorageDbMaster->protocol()->cmdExecute(OP_WAIT, [$bOnline]) : waitRemainder($bOnline); # Check that links are valid $self->linkCheck(); @@ -963,8 +971,8 @@ sub linkCheck { my $strChildPath = $self->get(MANIFEST_SECTION_BACKUP_TARGET, $strTargetChild, MANIFEST_SUBKEY_PATH); - if (index( - pathAbsolute($strBasePath, $strChildPath) . '/', pathAbsolute($strBasePath, $strParentPath) . '/') == 0) + if (index(storageLocal()->pathAbsolute( + $strBasePath, $strChildPath) . '/', storageLocal()->pathAbsolute($strBasePath, $strParentPath) . '/') == 0) { confess &log(ERROR, 'link ' . $self->dbPathGet($strBasePath, $strTargetChild) . " (${strChildPath}) references a subdirectory of or" . diff --git a/lib/pgBackRest/Protocol/Common/Master.pm b/lib/pgBackRest/Protocol/Base/Master.pm similarity index 80% rename from lib/pgBackRest/Protocol/Common/Master.pm rename to lib/pgBackRest/Protocol/Base/Master.pm index 182134f86..8ddff22a0 100644 --- a/lib/pgBackRest/Protocol/Common/Master.pm +++ b/lib/pgBackRest/Protocol/Base/Master.pm @@ -1,23 +1,31 @@ #################################################################################################################################### -# PROTOCOL COMMON MASTER MODULE +# Protocol Master Base #################################################################################################################################### -package pgBackRest::Protocol::Common::Master; -use parent 'pgBackRest::Protocol::Common::Common'; +package pgBackRest::Protocol::Base::Master; use strict; use warnings FATAL => qw(all); use Carp qw(confess); use English '-no_match_vars'; -use File::Basename qw(dirname); +use Exporter qw(import); + our @EXPORT = qw(); use Time::HiRes qw(gettimeofday); +use JSON::PP; use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Version; +#################################################################################################################################### +# Operation constants +#################################################################################################################################### +use constant OP_NOOP => 'noop'; + push @EXPORT, qw(OP_NOOP); +use constant OP_EXIT => 'exit'; + push @EXPORT, qw(OP_EXIT); + #################################################################################################################################### # CONSTRUCTOR #################################################################################################################################### @@ -25,52 +33,35 @@ sub new { my $class = shift; # Class name + # Create the class hash + my $self = {}; + bless $self, $class; + # Assign function parameters, defaults, and log debug info - my ( - $strOperation, - $strRemoteType, # Type of remote (DB or BACKUP) - $strName, # Name of the protocol - $strId, # Id of this process for error messages - $oIO, # IO object - $iBufferMax, # Maximum buffer size - $iCompressLevel, # Set compression level - $iCompressLevelNetwork, # Set compression level for network only compression - $iProtocolTimeout, # Protocol timeout + my $strOperation, + $self->{strName}, + $self->{strId}, + $self->{oIo}, ) = logDebugParam ( __PACKAGE__ . '->new', \@_, - {name => 'strRemoteType', trace => true}, {name => 'strName', trace => true}, {name => 'strId', trace => true}, - {name => 'strCommand', trace => true}, - {name => 'iBufferMax', trace => true}, - {name => 'iCompressLevel', trace => true}, - {name => 'iCompressLevelNetwork', trace => true}, - {name => 'iProtocolTimeout', trace => true}, + {name => 'oIo', trace => true}, ); - # Create the class hash - my $self = $class->SUPER::new($iBufferMax, $iCompressLevel, $iCompressLevelNetwork, $iProtocolTimeout, $strName); - bless $self, $class; - - # Set remote to specified value - $self->{strRemoteType} = $strRemoteType; - - # Set IO Object - $self->{io} = $oIO; + # Create JSON object + $self->{oJSON} = JSON::PP->new()->allow_nonref(); # Check greeting to be sure the protocol matches $self->greetingRead(); # Setup the keepalive timer - $self->{fKeepAliveTimeout} = $iProtocolTimeout / 2 > 120 ? 120 : $iProtocolTimeout / 2; + $self->{fKeepAliveTimeout} = $self->io()->timeout() / 2 > 120 ? 120 : $self->io()->timeout() / 2; $self->{fKeepAliveTime} = gettimeofday(); - # Set the id to be used for messages (especially error messages) - $self->{strId} = $strId; - # Set the error prefix used when raising error messages $self->{strErrorPrefix} = 'raised on ' . $self->{strId} . ' host'; @@ -102,9 +93,14 @@ sub greetingRead my $self = shift; # Get the first line of output from the remote if possible - my $hGreeting = $self->{oJSON}->decode($self->{io}->lineRead(undef, undef, undef, true)); + my $strGreeting = $self->io()->readLine(true); + + # Check for errors + $self->io()->error(); # Error if greeting parameters do not match + my $hGreeting = $self->{oJSON}->decode($strGreeting); + for my $hParam ({strName => 'name', strExpected => BACKREST_NAME}, {strName => 'version', strExpected => BACKREST_VERSION}, {strName => 'service', strExpected => $self->{strName}}) @@ -117,8 +113,8 @@ sub greetingRead } } - # Exchange one protocol message to catch errors early - $self->outputRead(); + # Perform noop to catch errors early + $self->noOp(); } #################################################################################################################################### @@ -148,7 +144,7 @@ sub outputRead {name => 'bRef', default => false, trace => true}, ); - my $strProtocolResult = $self->{io}->lineRead(); + my $strProtocolResult = $self->io()->readLine(); logDebugMisc ( @@ -179,7 +175,6 @@ sub outputRead # If output is required and there is no output, raise exception if ($bOutputRequired && !defined($hResult->{out})) { - $self->{io}->waitPid(); confess &log(ERROR, "$self->{strErrorPrefix}: output is not defined", ERROR_PROTOCOL_OUTPUT_REQUIRED); } @@ -223,7 +218,7 @@ sub cmdWrite ); # Write out the command - $self->{io}->lineWrite($strProtocolCommand); + $self->io()->writeLine($strProtocolCommand); # Reset the keep alive time $self->{fKeepAliveTime} = gettimeofday(); @@ -281,4 +276,10 @@ sub noOp $self->{fKeepAliveTime} = gettimeofday(); } +#################################################################################################################################### +# Getters +#################################################################################################################################### +sub io {shift->{oIo}} +sub master {true} + 1; diff --git a/lib/pgBackRest/Protocol/Common/Minion.pm b/lib/pgBackRest/Protocol/Base/Minion.pm similarity index 72% rename from lib/pgBackRest/Protocol/Common/Minion.pm rename to lib/pgBackRest/Protocol/Base/Minion.pm index e79fb8a0e..c7b4fb8b9 100644 --- a/lib/pgBackRest/Protocol/Common/Minion.pm +++ b/lib/pgBackRest/Protocol/Base/Minion.pm @@ -1,8 +1,7 @@ #################################################################################################################################### -# PROTOCOL COMMON MINION MODULE +# Protocol Minion Base #################################################################################################################################### -package pgBackRest::Protocol::Common::Minion; -use parent 'pgBackRest::Protocol::Common::Common'; +package pgBackRest::Protocol::Base::Minion; use strict; use warnings FATAL => qw(all); @@ -15,7 +14,8 @@ use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::Protocol::Common::Common; +use pgBackRest::Protocol::Base::Master; +use pgBackRest::Protocol::Helper; use pgBackRest::Version; #################################################################################################################################### @@ -25,45 +25,31 @@ sub new { my $class = shift; # Class name + # Create the class hash + my $self = {}; + bless $self, $class; + # Assign function parameters, defaults, and log debug info - my ( - $strOperation, - $strName, # Name of the protocol - $strCommand, # Command the master process is running - $oIO, # IO object - $iBufferMax, # Maximum buffer size - $iCompressLevel, # Set compression level - $iCompressLevelNetwork, # Set compression level for network only compression - $iProtocolTimeout, # Protocol timeout + my $strOperation, + $self->{strName}, + $self->{oIo}, ) = logDebugParam ( __PACKAGE__ . '->new', \@_, {name => 'strName', trace => true}, - {name => 'strCommand', trace => true}, - {name => 'oIO', trace => true}, - {name => 'iBufferMax', trace => true}, - {name => 'iCompressLevel', trace => true}, - {name => 'iCompressLevelNetwork', trace => true}, - {name => 'iProtocolTimeout', trace => true}, + {name => 'oIo', trace => true}, ); - # Create the class hash - my $self = $class->SUPER::new($iBufferMax, $iCompressLevel, $iCompressLevelNetwork, $iProtocolTimeout, $strName); - bless $self, $class; - - # Set IO Object - $self->{io} = $oIO; - - # Set command the master is running - $self->{strCommand} = $strCommand; + # Create JSON object + $self->{oJSON} = JSON::PP->new()->allow_nonref(); # Write the greeting so master process knows who we are $self->greetingWrite(); # Initialize module variables - $self->{hCommandMap} = $self->init(); + $self->{hCommandMap} = $self->can('init') ? $self->init() : undef; # Return from function and log return values if any return logDebugReturn @@ -83,24 +69,8 @@ sub greetingWrite my $self = shift; # Write the greeting - $self->{io}->lineWrite((JSON::PP->new()->canonical()->allow_nonref())->encode( + $self->io()->writeLine((JSON::PP->new()->canonical()->allow_nonref())->encode( {name => BACKREST_NAME, service => $self->{strName}, version => BACKREST_VERSION})); - - # Exchange one protocol message to catch errors early - $self->outputWrite(); -} - -#################################################################################################################################### -# binaryXferAbort -# -# Abort transfer when source file does not exist. -#################################################################################################################################### -sub binaryXferAbort -{ - my $self = shift; - - # Only allow in the backend process - $self->{io}->lineWrite('block -1'); } #################################################################################################################################### @@ -120,7 +90,7 @@ sub errorWrite } # Write error code and message - $self->{io}->lineWrite($self->{oJSON}->encode({err => $oException->code(), out => $oException->message()})); + $self->io()->writeLine($self->{oJSON}->encode({err => $oException->code(), out => $oException->message()})); } #################################################################################################################################### @@ -132,7 +102,7 @@ sub outputWrite { my $self = shift; - $self->{io}->lineWrite($self->{oJSON}->encode({out => \@_})); + $self->io()->writeLine($self->{oJSON}->encode({out => \@_})); } #################################################################################################################################### @@ -144,7 +114,7 @@ sub cmdRead { my $self = shift; - my $hCommand = $self->{oJSON}->decode($self->{io}->lineRead()); + my $hCommand = $self->{oJSON}->decode($self->io()->readLine()); return $hCommand->{cmd}, $hCommand->{param}; } @@ -178,6 +148,7 @@ sub process # Run the standard NOOP command. This this can be overridden in hCommandMap to implement a custom NOOP. elsif ($strCommand eq OP_NOOP) { + protocolKeepAlive(); $self->outputWrite(); } else @@ -185,12 +156,6 @@ sub process confess "invalid command: ${strCommand}"; } - # Run the post command if defined - if (defined($self->{hCommandMap}{&OP_POST})) - { - $self->{hCommandMap}{&OP_POST}->($strCommand, $rParam); - } - return true; } # Process errors @@ -222,4 +187,10 @@ sub process return 0; } +#################################################################################################################################### +# Getters +#################################################################################################################################### +sub io {shift->{oIo}} +sub master {false} + 1; diff --git a/lib/pgBackRest/Protocol/Command/Master.pm b/lib/pgBackRest/Protocol/Command/Master.pm index ead69d2ba..4afa792f6 100644 --- a/lib/pgBackRest/Protocol/Command/Master.pm +++ b/lib/pgBackRest/Protocol/Command/Master.pm @@ -2,7 +2,7 @@ # PROTOCOL COMMAND MASTER MODULE #################################################################################################################################### package pgBackRest::Protocol::Command::Master; -use parent 'pgBackRest::Protocol::Common::Master'; +use parent 'pgBackRest::Protocol::Base::Master'; use strict; use warnings FATAL => qw(all); @@ -15,8 +15,8 @@ use Time::HiRes qw(gettimeofday); use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; -use pgBackRest::Protocol::Common::Common; -use pgBackRest::Protocol::Common::Io::Process; +use pgBackRest::Common::Io::Process; +use pgBackRest::Protocol::Base::Master; use pgBackRest::Version; #################################################################################################################################### @@ -30,7 +30,6 @@ sub new my ( $strOperation, - $strRemoteType, # Type of remote (DB or BACKUP) $strName, # Name of the protocol $strId, # Id of this process for error messages $strCommand, # Command to execute on local/remote @@ -42,7 +41,6 @@ sub new logDebugParam ( __PACKAGE__ . '->new', \@_, - {name => 'strRemoteType'}, {name => 'strName'}, {name => 'strId'}, {name => 'strCommand'}, @@ -59,11 +57,12 @@ sub new } # Execute the command - my $oIO = pgBackRest::Protocol::Common::Io::Process->new3($strId, $strCommand, $iProtocolTimeout, $iBufferMax); + my $oIo = new pgBackRest::Common::Io::Process( + new pgBackRest::Common::Io::Buffered( + new pgBackRest::Common::Io::Handle($strId), $iProtocolTimeout, $iBufferMax), $strCommand); # Create the class hash - my $self = $class->SUPER::new( - $strRemoteType, $strName, $strId, $oIO, $iBufferMax, $iCompressLevel, $iCompressLevelNetwork, $iProtocolTimeout); + my $self = $class->SUPER::new($strName, $strId, $oIo); bless $self, $class; # Return from function and log return values if any @@ -98,13 +97,13 @@ sub close my $bClosed = false; # Only send the exit command if the process is running - if (defined($self->{io}) && defined($self->{io}->processId())) + if (defined($self->io()) && defined($self->io()->processId())) { &log(TRACE, "sending exit command to process"); eval { - $self->cmdWrite('exit'); + $self->cmdWrite(OP_EXIT); return true; } or do @@ -133,7 +132,8 @@ sub close ($bComplete ? "\n${strHint}" : '')); }; - undef($self->{io}); + $self->{oIo}->close(); + undef($self->{oIo}); $bClosed = true; } diff --git a/lib/pgBackRest/Protocol/Command/Minion.pm b/lib/pgBackRest/Protocol/Command/Minion.pm index af258ce76..8618a0ad2 100644 --- a/lib/pgBackRest/Protocol/Command/Minion.pm +++ b/lib/pgBackRest/Protocol/Command/Minion.pm @@ -2,7 +2,7 @@ # PROTOCOL COMMAND MINION MODULE #################################################################################################################################### package pgBackRest::Protocol::Command::Minion; -use parent 'pgBackRest::Protocol::Common::Minion'; +use parent 'pgBackRest::Protocol::Base::Minion'; use strict; use warnings FATAL => qw(all); @@ -15,8 +15,8 @@ use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::Protocol::Common::Minion; -use pgBackRest::Protocol::Common::Io::Process; +use pgBackRest::Protocol::Base::Minion; +use pgBackRest::Common::Io::Buffered; use pgBackRest::Version; #################################################################################################################################### @@ -31,28 +31,24 @@ sub new ( $strOperation, $strName, # Name of the protocol - $strCommand, # Command the master process is running $iBufferMax, # Maximum buffer size - $iCompressLevel, # Set compression level - $iCompressLevelNetwork, # Set compression level for network only compression $iProtocolTimeout, # Protocol timeout ) = logDebugParam ( __PACKAGE__ . '->new', \@_, {name => 'strName'}, - {name => 'strCommand'}, {name => 'iBufferMax'}, - {name => 'iCompressLevel'}, - {name => 'iCompressLevelNetwork'}, {name => 'iProtocolTimeout'}, ); + # Open buffered protocol io + my $oIo = + new pgBackRest::Common::Io::Buffered( + new pgBackRest::Common::Io::Handle('stdio', *STDIN, *STDOUT), $iProtocolTimeout, $iBufferMax); + # Create the class hash - my $self = $class->SUPER::new( - $strName, $strCommand, - new pgBackRest::Protocol::Common::Io::Process(*STDIN, *STDOUT, *STDERR, undef, undef, $iProtocolTimeout, $iBufferMax), - $iBufferMax, $iCompressLevel, $iCompressLevelNetwork, $iProtocolTimeout); + my $self = $class->SUPER::new($strName, $oIo); bless $self, $class; # Return from function and log return values if any diff --git a/lib/pgBackRest/Protocol/Common/Common.pm b/lib/pgBackRest/Protocol/Common/Common.pm deleted file mode 100644 index 654e85771..000000000 --- a/lib/pgBackRest/Protocol/Common/Common.pm +++ /dev/null @@ -1,735 +0,0 @@ -#################################################################################################################################### -# PROTOCOL COMMON MODULE -#################################################################################################################################### -package pgBackRest::Protocol::Common::Common; - -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); - -use Exporter qw(import); - our @EXPORT = qw(); -use Compress::Raw::Zlib qw(WANT_GZIP Z_OK Z_BUF_ERROR Z_STREAM_END); -use File::Basename qw(dirname); -use JSON::PP; - -use pgBackRest::Common::Exception; -use pgBackRest::Common::Ini; -use pgBackRest::Common::Log; -use pgBackRest::Protocol::Common::Io::Process; - -#################################################################################################################################### -# DB/BACKUP Constants -#################################################################################################################################### -use constant DB => 'db'; - push @EXPORT, qw(DB); -use constant BACKUP => 'backup'; - push @EXPORT, qw(BACKUP); -use constant NONE => 'none'; - push @EXPORT, qw(NONE); - -#################################################################################################################################### -# Operation constants -#################################################################################################################################### -use constant OP_NOOP => 'noop'; - push @EXPORT, qw(OP_NOOP); -use constant OP_EXIT => 'exit'; - push @EXPORT, qw(OP_EXIT); - -# Backup module -use constant OP_BACKUP_FILE => 'backupFile'; - push @EXPORT, qw(OP_BACKUP_FILE); - -# Archive Module -use constant OP_ARCHIVE_GET_ARCHIVE_ID => 'archiveId'; - push @EXPORT, qw(OP_ARCHIVE_GET_ARCHIVE_ID); -use constant OP_ARCHIVE_GET_CHECK => 'archiveCheck'; - push @EXPORT, qw(OP_ARCHIVE_GET_CHECK); -use constant OP_ARCHIVE_PUSH_CHECK => 'archivePushCheck'; - push @EXPORT, qw(OP_ARCHIVE_PUSH_CHECK); - -# Archive Push Async Module -use constant OP_ARCHIVE_PUSH_ASYNC => 'archivePushAsync'; - push @EXPORT, qw(OP_ARCHIVE_PUSH_ASYNC); - -# Archive File Module -use constant OP_ARCHIVE_PUSH_FILE => 'archivePushFile'; - push @EXPORT, qw(OP_ARCHIVE_PUSH_FILE); - -# Check Module -use constant OP_CHECK_BACKUP_INFO_CHECK => 'backupInfoCheck'; - push @EXPORT, qw(OP_CHECK_BACKUP_INFO_CHECK); - -# Db Module -use constant OP_DB_CONNECT => 'dbConnect'; - push @EXPORT, qw(OP_DB_CONNECT); -use constant OP_DB_EXECUTE_SQL => 'dbExecSql'; - push @EXPORT, qw(OP_DB_EXECUTE_SQL); -use constant OP_DB_INFO => 'dbInfo'; - push @EXPORT, qw(OP_DB_INFO); - -# File Module -use constant OP_FILE_COPY => 'fileCopy'; - push @EXPORT, qw(OP_FILE_COPY); -use constant OP_FILE_COPY_IN => 'fileCopyIn'; - push @EXPORT, qw(OP_FILE_COPY_IN); -use constant OP_FILE_COPY_OUT => 'fileCopyOut'; - push @EXPORT, qw(OP_FILE_COPY_OUT); -use constant OP_FILE_EXISTS => 'fileExists'; - push @EXPORT, qw(OP_FILE_EXISTS); -use constant OP_FILE_LIST => 'fileList'; - push @EXPORT, qw(OP_FILE_LIST); -use constant OP_FILE_MANIFEST => 'fileManifest'; - push @EXPORT, qw(OP_FILE_MANIFEST); -use constant OP_FILE_PATH_CREATE => 'pathCreate'; - push @EXPORT, qw(OP_FILE_PATH_CREATE); -use constant OP_FILE_WAIT => 'wait'; - push @EXPORT, qw(OP_FILE_WAIT); - -# Info module -use constant OP_INFO_STANZA_LIST => 'infoStanzList'; - push @EXPORT, qw(OP_INFO_STANZA_LIST); - -# Restore module -use constant OP_RESTORE_FILE => 'restoreFile'; - push @EXPORT, qw(OP_RESTORE_FILE); - -# To be run after each command -use constant OP_POST => 'post'; - push @EXPORT, qw(OP_POST); - -#################################################################################################################################### -# CONSTRUCTOR -#################################################################################################################################### -sub new -{ - my $class = shift; # Class name - - # Create the class hash - my $self = {}; - bless $self, $class; - - # Assign function parameters, defaults, and log debug info - ( - my $strOperation, - $self->{iBufferMax}, - $self->{iCompressLevel}, - $self->{iCompressLevelNetwork}, - $self->{iProtocolTimeout}, - $self->{strName} - ) = - logDebugParam - ( - __PACKAGE__ . '->new', \@_, - {name => 'iBufferMax', trace => true}, - {name => 'iCompressLevel', trace => true}, - {name => 'iCompressNetworkLevel', trace => true}, - {name => 'iProtocolTimeout', trace => true}, - {name => 'strName', required => false, trace => true} - ); - - # By default remote type is NONE - $self->{strRemoteType} = NONE; - - # Create JSON object - $self->{oJSON} = JSON::PP->new()->allow_nonref(); - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'self', value => $self} - ); -} - -#################################################################################################################################### -# keepAlive -# -# Don't do anything for keep alive if there is no remote. -#################################################################################################################################### -sub keepAlive -{ -} - -#################################################################################################################################### -# noop -# -# Don't do anything for noop if there is no remote. -#################################################################################################################################### -sub noOp -{ -} - -#################################################################################################################################### -# blockRead -# -# Read a block from the protocol layer. -#################################################################################################################################### -sub blockRead -{ - my $self = shift; - my $oIn = shift; - my $strBlockRef = shift; - my $bProtocol = shift; - - my $iBlockSize; - my $hMessage; - - if ($bProtocol) - { - # Read the block header and make sure it's valid - my $strBlockHeader = $oIn->lineRead(); - - if ($strBlockHeader !~ /^block -{0,1}[0-9]+( .*){0,1}$/) - { - confess &log(ERROR, "invalid block header ${strBlockHeader}", ERROR_FILE_READ); - } - - # Get block size from the header - my @stryToken = split(/ /, $strBlockHeader); - $iBlockSize = $stryToken[1]; - - if (defined($stryToken[2])) - { - $hMessage = $self->{oJSON}->decode($stryToken[2]); - } - - # If block size is 0 or an error code then undef the buffer - if ($iBlockSize <= 0) - { - undef($$strBlockRef); - } - # Else read the block - else - { - $oIn->bufferRead($strBlockRef, $iBlockSize, undef, true); - } - } - else - { - $iBlockSize = $oIn->bufferRead($strBlockRef, $self->{iBufferMax}, defined($$strBlockRef) ? length($$strBlockRef) : undef); - } - - # Return the block size - return $iBlockSize, $hMessage; -} - -#################################################################################################################################### -# blockWrite -# -# Write a block to the protocol layer. -#################################################################################################################################### -sub blockWrite -{ - my $self = shift; - my $oOut = shift; - my $tBlockRef = shift; - my $iBlockSize = shift; - my $bProtocol = shift; - my $hMessage = shift; - - # If block size is not defined, get it from buffer length - $iBlockSize = defined($iBlockSize) ? $iBlockSize : length($$tBlockRef); - - # Write block header to the protocol stream - if ($bProtocol) - { - $oOut->lineWrite("block ${iBlockSize}" . (defined($hMessage) ? " " . $self->{oJSON}->encode($hMessage) : '')); - } - - # Write block if size > 0 - if ($iBlockSize > 0) - { - $oOut->bufferWrite($tBlockRef, $iBlockSize); - } -} - -#################################################################################################################################### -# binaryXfer -# -# Copies data from one file handle to another, optionally compressing or decompressing the data in stream. If $strRemote != none -# then one side is a protocol stream, though this can be controlled with the bProtocol param. -#################################################################################################################################### -sub binaryXfer -{ - my $self = shift; - my $hIn = shift; - my $hOut = shift; - my $strRemote = shift; - my $bSourceCompressed = shift; - my $bDestinationCompress = shift; - my $bProtocol = shift; - my $fnExtra = shift; - my $rExtraParam = shift; - - # The input stream must be defined - my $oIn; - - if (!defined($hIn)) - { - $oIn = $self->{io}; - } - else - { - $oIn = new pgBackRest::Protocol::Common::Io::Process( - $hIn, undef, $self->{io}->{hErr}, $self->{io}->{pid}, $self->{io}->{strId}, $self->{iProtocolTimeout}, - $self->{iBufferMax}); - } - - # The output stream must be defined unless 'none' is passed - my $oOut; - - if (!defined($hOut)) - { - $oOut = $self->{io}; - } - elsif ($hOut ne 'none') - { - $oOut = new pgBackRest::Protocol::Common::Io::Process( - undef, $hOut, $self->{io}->{hErr}, $self->{io}->{pid}, $self->{io}->{strId}, $self->{iProtocolTimeout}, - $self->{iBufferMax}); - } - - # If no remote is defined then set to none - if (!defined($strRemote)) - { - $strRemote = 'none'; - } - # Only set compression defaults when remote is defined - else - { - $bSourceCompressed = defined($bSourceCompressed) ? $bSourceCompressed : false; - $bDestinationCompress = defined($bDestinationCompress) ? $bDestinationCompress : false; - } - - # Default protocol to true - $bProtocol = defined($bProtocol) ? $bProtocol : true; - my $hMessage = undef; - - # Checksum, size, and extra - my $strChecksum = undef; - my $iFileSize = undef; - my $rExtra = undef; - - # Read from the protocol stream - if ($strRemote eq 'in') - { - # If the destination should not be compressed then decompress - if (!$bDestinationCompress) - { - my $iBlockSize; - my $tCompressedBuffer; - my $tUncompressedBuffer; - my $iUncompressedBufferSize; - - # Initialize SHA - my $oSHA; - - if (!$bProtocol) - { - $oSHA = Digest::SHA->new('sha1'); - } - - # Initialize inflate object and check for errors - my ($oZLib, $iZLibStatus) = - new Compress::Raw::Zlib::Inflate(WindowBits => 15 & $bSourceCompressed ? WANT_GZIP : 0, - Bufsize => $self->{iBufferMax}, LimitOutput => 1); - - if ($iZLibStatus != Z_OK) - { - confess &log(ERROR, "unable create a inflate object: ${iZLibStatus}"); - } - - # Read all input - do - { - # Read a block from the input stream - ($iBlockSize, $hMessage) = $self->blockRead($oIn, \$tCompressedBuffer, $bProtocol); - - # Process protocol messages - if (defined($hMessage) && defined($hMessage->{bChecksum}) && !$hMessage->{bChecksum}) - { - $oSHA = Digest::SHA->new('sha1'); - undef($hMessage); - } - - # If the block contains data, decompress it - if ($iBlockSize > 0) - { - # Keep looping while there is more to decompress - do - { - # Decompress data - $iZLibStatus = $oZLib->inflate($tCompressedBuffer, $tUncompressedBuffer); - $iUncompressedBufferSize = length($tUncompressedBuffer); - - # If status is ok, write the data - if ($iZLibStatus == Z_OK || $iZLibStatus == Z_BUF_ERROR || $iZLibStatus == Z_STREAM_END) - { - if ($iUncompressedBufferSize > 0) - { - # Add data to checksum - if (defined($oSHA)) - { - $oSHA->add($tUncompressedBuffer); - } - - # Write data if hOut is defined - if (defined($oOut)) - { - $oOut->bufferWrite(\$tUncompressedBuffer, $iUncompressedBufferSize); - } - } - } - # Else error, exit so it can be handled - else - { - $iBlockSize = 0; - } - } - while ($iZLibStatus != Z_STREAM_END && $iUncompressedBufferSize > 0 && $iBlockSize > 0); - } - } - while ($iBlockSize > 0); - - # Make sure the decompression succeeded (iBlockSize < 0 indicates remote error, handled later) - if ($iBlockSize == 0 && $iZLibStatus != Z_STREAM_END) - { - confess &log(ERROR, "unable to inflate stream: ${iZLibStatus}"); - } - - # Get checksum and total uncompressed bytes written - if (defined($oSHA)) - { - $strChecksum = $oSHA->hexdigest(); - $iFileSize = $oZLib->total_out(); - }; - } - # If the destination should be compressed then just write out the already compressed stream - else - { - my $iBlockSize; - my $tBuffer; - - # Initialize checksum and size - my $oSHA; - - if (!$bProtocol) - { - $oSHA = Digest::SHA->new('sha1'); - $iFileSize = 0; - $rExtra = defined($fnExtra) ? {} : undef; - } - - do - { - # Read a block from the protocol stream - ($iBlockSize, $hMessage) = $self->blockRead($oIn, \$tBuffer, $bProtocol); - - # Add data to checksum and size - if ($iBlockSize > 0 && !$bProtocol) - { - $oSHA->add($tBuffer); - $iFileSize += $iBlockSize; - } - - # Do extra processing on the buffer if requested - if (!$bProtocol && defined($fnExtra)) - { - $fnExtra->($rExtraParam, \$tBuffer, $iBlockSize, $iFileSize - $iBlockSize, $rExtra); - } - - # Write buffer - if ($iBlockSize > 0) - { - $oOut->bufferWrite(\$tBuffer, $iBlockSize); - undef($tBuffer); - } - } - while ($iBlockSize > 0); - - # Get checksum - if (!$bProtocol) - { - $strChecksum = $oSHA->hexdigest(); - }; - } - } - # Read from file input stream - else - { - # If source is not already compressed then compress it - if ($strRemote eq 'out' && !$bSourceCompressed) - { - my $iBlockSize; - my $tCompressedBuffer; - my $iCompressedBufferSize; - my $tUncompressedBuffer; - - # Initialize message to indicate that a checksum will be sent - if ($bProtocol && defined($oOut)) - { - $hMessage->{bChecksum} = true; - } - - # Initialize checksum - my $oSHA = Digest::SHA->new('sha1'); - $rExtra = defined($fnExtra) ? {} : undef; - - # Initialize inflate object and check for errors - my ($oZLib, $iZLibStatus) = - new Compress::Raw::Zlib::Deflate(WindowBits => 15 & $bDestinationCompress ? WANT_GZIP : 0, - Level => $bDestinationCompress ? $self->{iCompressLevel} : - $self->{iCompressLevelNetwork}, - Bufsize => $self->{iBufferMax}, AppendOutput => 1); - - if ($iZLibStatus != Z_OK) - { - confess &log(ERROR, "unable create a deflate object: ${iZLibStatus}"); - } - - do - { - # Read a block from the stream - $iBlockSize = $oIn->bufferRead(\$tUncompressedBuffer, $self->{iBufferMax}); - - # If block size > 0 then update checksum and size - if ($iBlockSize > 0) - { - # Update checksum and filesize - $oSHA->add($tUncompressedBuffer); - } - - # Do extra processing on the buffer if requested - if (defined($fnExtra)) - { - $fnExtra->($rExtraParam, \$tUncompressedBuffer, $iBlockSize, $oZLib->total_in(), $rExtra); - } - - # If block size > 0 then compress - if ($iBlockSize > 0) - { - # Compress the data - $iZLibStatus = $oZLib->deflate($tUncompressedBuffer, $tCompressedBuffer); - $iCompressedBufferSize = length($tCompressedBuffer); - - # If compression was successful - if ($iZLibStatus == Z_OK) - { - # The compressed data is larger than block size, then write - if ($iCompressedBufferSize > $self->{iBufferMax}) - { - $self->blockWrite($oOut, \$tCompressedBuffer, $iCompressedBufferSize, $bProtocol, $hMessage); - undef($tCompressedBuffer); - undef($hMessage); - } - } - # Else if error - else - { - $iBlockSize = 0; - } - } - } - while ($iBlockSize > 0); - - # If good so far flush out the last bytes - if ($iZLibStatus == Z_OK) - { - $iZLibStatus = $oZLib->flush($tCompressedBuffer); - } - - # Make sure the compression succeeded - if ($iZLibStatus != Z_OK) - { - confess &log(ERROR, "unable to deflate stream: ${iZLibStatus}"); - } - - # Get checksum and total uncompressed bytes written - $strChecksum = $oSHA->hexdigest(); - $iFileSize = $oZLib->total_in(); - - # Write out the last block - if (defined($oOut)) - { - $iCompressedBufferSize = length($tCompressedBuffer); - - if ($iCompressedBufferSize > 0) - { - $self->blockWrite($oOut, \$tCompressedBuffer, $iCompressedBufferSize, $bProtocol, $hMessage); - undef($hMessage); - } - - $self->blockWrite( - $oOut, undef, 0, $bProtocol, {strChecksum => $strChecksum, iFileSize => $iFileSize, rExtra => $rExtra}); - } - } - # If source is already compressed or transfer is not compressed then just read the stream - else - { - my $iBlockSize; - my $tBuffer; - my $tCompressedBuffer; - my $tUncompressedBuffer; - my $iUncompressedBufferSize; - my $oSHA; - my $oZLib; - my $iZLibStatus; - - # If the destination will be compressed setup deflate - if ($bDestinationCompress) - { - if ($bProtocol) - { - $hMessage->{bChecksum} = true; - } - - # Initialize checksum and size - $oSHA = Digest::SHA->new('sha1'); - $iFileSize = 0; - - # Initialize inflate object and check for errors - ($oZLib, $iZLibStatus) = - new Compress::Raw::Zlib::Inflate(WindowBits => WANT_GZIP, Bufsize => $self->{iBufferMax}, LimitOutput => 1); - - if ($iZLibStatus != Z_OK) - { - confess &log(ERROR, "unable create a inflate object: ${iZLibStatus}"); - } - } - # Initialize message to indicate that a checksum will not be sent - elsif ($bProtocol) - { - $hMessage->{bChecksum} = false; - } - - # Read input - do - { - $iBlockSize = $oIn->bufferRead(\$tBuffer, $self->{iBufferMax}); - - # Write a block if size > 0 - if ($iBlockSize > 0) - { - $self->blockWrite($oOut, \$tBuffer, $iBlockSize, $bProtocol, $hMessage); - undef($hMessage); - } - - # Decompress the buffer to calculate checksum/size - if ($bDestinationCompress) - { - # If the block contains data, decompress it - if ($iBlockSize > 0) - { - # Copy file buffer to compressed buffer - if (defined($tCompressedBuffer)) - { - $tCompressedBuffer .= $tBuffer; - } - else - { - $tCompressedBuffer = $tBuffer; - } - - # Keep looping while there is more to decompress - do - { - # Decompress data - $iZLibStatus = $oZLib->inflate($tCompressedBuffer, $tUncompressedBuffer); - $iUncompressedBufferSize = length($tUncompressedBuffer); - - # If status is ok, write the data - if ($iZLibStatus == Z_OK || $iZLibStatus == Z_BUF_ERROR || $iZLibStatus == Z_STREAM_END) - { - if ($iUncompressedBufferSize > 0) - { - $oSHA->add($tUncompressedBuffer); - $iFileSize += $iUncompressedBufferSize; - } - } - # Else error, exit so it can be handled - else - { - $iBlockSize = 0; - } - } - while ($iZLibStatus != Z_STREAM_END && $iUncompressedBufferSize > 0 && $iBlockSize > 0); - } - } - } - while ($iBlockSize > 0); - - # Check decompression, get checksum - if ($bDestinationCompress) - { - # Make sure the decompression succeeded (iBlockSize < 0 indicates remote error, handled later) - if ($iBlockSize == 0 && $iZLibStatus != Z_STREAM_END) - { - confess &log(ERROR, "unable to inflate stream: ${iZLibStatus}"); - } - - # If protocol then create the message - if ($bProtocol) - { - $hMessage = {strChecksum => $oSHA->hexdigest(), iFileSize => $iFileSize, rExtra => $rExtra}; - } - # Otherwise just set checksum - else - { - $strChecksum = $oSHA->hexdigest(); - } - } - - # If protocol write - if ($bProtocol) - { - # Write 0 block to indicate end of stream - $self->blockWrite($oOut, undef, 0, $bProtocol, $hMessage); - } - } - } - - # If message is defined then the checksum, size, and extra should be in it - if (defined($hMessage)) - { - return $hMessage->{strChecksum}, $hMessage->{iFileSize}, $hMessage->{rExtra}; - } - - # Return the checksum and size if they are available - return $strChecksum, $iFileSize, $rExtra; -} - -#################################################################################################################################### -# remoteType -# -# Return the remote type. -#################################################################################################################################### -sub remoteType -{ - return shift->{strRemoteType}; -} - -#################################################################################################################################### -# remoteTypeTest -# -# Determine if the remote matches the specified remote. -#################################################################################################################################### -sub remoteTypeTest -{ - my $self = shift; - my $strRemoteType = shift; - - return $self->remoteType() eq $strRemoteType ? true : false; -} - -#################################################################################################################################### -# isRemote -# -# Determine if the protocol object is communicating with a remote. -#################################################################################################################################### -sub isRemote -{ - return shift->{strRemoteType} ne NONE ? true : false; -} - -1; diff --git a/lib/pgBackRest/Protocol/Common/Io/Handle.pm b/lib/pgBackRest/Protocol/Common/Io/Handle.pm deleted file mode 100644 index f1a48bd87..000000000 --- a/lib/pgBackRest/Protocol/Common/Io/Handle.pm +++ /dev/null @@ -1,462 +0,0 @@ -#################################################################################################################################### -# PROTOCOL IO MODULE -#################################################################################################################################### -package pgBackRest::Protocol::Common::Io::Handle; - -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use Exporter qw(import); - our @EXPORT = qw(); -use File::Basename qw(dirname); -use IPC::Open3 qw(open3); -use IO::Select; -use POSIX qw(:sys_wait_h); -use Symbol 'gensym'; -use Time::HiRes qw(gettimeofday); - -use pgBackRest::Common::Exception; -use pgBackRest::Common::Log; -use pgBackRest::Common::String; -use pgBackRest::Common::Wait; - -#################################################################################################################################### -# Amount of time to attempt to retrieve errors when a process terminates unexpectedly -#################################################################################################################################### -use constant IO_ERROR_TIMEOUT => 5; - push @EXPORT, qw(IO_ERROR_TIMEOUT); - -#################################################################################################################################### -# CONSTRUCTOR -#################################################################################################################################### -sub new -{ - my $class = shift; - - # Create the class hash - my $self = {}; - bless $self, $class; - - # Assign function parameters, defaults, and log debug info - ( - my $strOperation, - $self->{hIn}, # Input stream - $self->{hOut}, # Output stream - $self->{hErr}, # Error stream - $self->{iProtocolTimeout}, # Protocol timeout - $self->{iBufferMax}, # Maximum buffer size - ) = - logDebugParam - ( - __PACKAGE__ . '->new', \@_, - {name => 'hIn', required => false, trace => true}, - {name => 'hOut', required => false, trace => true}, - {name => 'hErr', required => false, trace => true}, - {name => 'iProtocolTimeout', trace => true}, - {name => 'iBufferMax', trace => true} - ); - - if (defined($self->{hIn})) - { - $self->{oInSelect} = IO::Select->new(); - $self->{oInSelect}->add($self->{hIn}); - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'self', value => $self} - ); -} - -#################################################################################################################################### -# new3 -# -# Use open3 to run the command and get the io handles. -#################################################################################################################################### -sub new3 -{ - my $class = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strId, - $strCommand, - $iProtocolTimeout, # Protocol timeout - $iBufferMax # Maximum buffer Size - ) = - logDebugParam - ( - __PACKAGE__ . '->new3', \@_, - {name => 'strId', trace => true}, - {name => 'strCommand', trace => true}, - {name => 'iProtocolTimeout', trace => true}, - {name => 'iBufferMax', trace => true} - ); - - # Use open3 to run the command - my ($pId, $hIn, $hOut, $hErr); - $hErr = gensym; - - $pId = IPC::Open3::open3($hIn, $hOut, $hErr, $strCommand); - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'self', value => $class->new($hOut, $hIn, $hErr, $pId, $strId, $iProtocolTimeout, $iBufferMax)} - ); -} - -#################################################################################################################################### -# Get input/output/error handles -#################################################################################################################################### -sub inputHandle -{ - my $self = shift; - - return $self->{hIn}; -} - -sub outputHandle -{ - my $self = shift; - - return $self->{hOut}; -} - -sub errorHandle -{ - my $self = shift; - - return $self->{hErr}; -} - -#################################################################################################################################### -# lineRead -# -# Read an lf-terminated line from the input or error stream. -#################################################################################################################################### -sub lineRead -{ - my $self = shift; - my $iTimeout = shift; - my $bInRead = shift; - my $bError = shift; - my $bIgnoreEOF = shift; - - # If there's already data in the buffer try to find the next linefeed - my $iLineFeedPos = defined($self->{strBuffer}) ? index($self->{strBuffer}, "\n", $self->{iBufferPos}) : -1; - - # Store the current time if a timeout is required - if ($iLineFeedPos == -1) - { - my $fTimeout = defined($iTimeout) ? $iTimeout : $self->{iProtocolTimeout}; - my $fRemaining = $fTimeout; - my $fTimeStart = gettimeofday(); - - # If no linefeed was found then load more data - do - { - # If the buffer already has data - if (defined($self->{strBuffer}) && $self->{iBufferPos} < $self->{iBufferSize}) - { - # And the buffer position is not 0 then trim it so there's room for more data - if ($self->{iBufferPos} != 0) - { - $self->{strBuffer} = substr($self->{strBuffer}, $self->{iBufferPos}); - $self->{iBufferSize} = $self->{iBufferSize} - $self->{iBufferPos}; - $self->{iBufferPos} = 0; - } - } - # Else the buffer is empty and data will need to be loaded - else - { - undef($self->{strBuffer}); # ??? Do we need this? - $self->{iBufferSize} = 0; - $self->{iBufferPos} = 0; - } - - # Get stream handle and select object - my $hIn; - my $oSelect; - - # If this is a normal input read - if (!defined($bInRead) || $bInRead) - { - $hIn = $self->{hIn}; - $oSelect = $self->{oInSelect}; - } - # Else this is an error read - else - { - # The select object will need to be created the first time an error is read - if (!defined($self->{oErrSelect})) - { - $self->{oErrSelect} = IO::Select->new(); - $self->{oErrSelect}->add($self->{hErr}); - } - - $oSelect = $self->{oErrSelect}; - $hIn = $self->{hErr}; - } - - # Load data into the buffer - my $iBufferRead = 0; - - if ($oSelect->can_read($fRemaining)) - { - $iBufferRead = sysread($hIn, $self->{strBuffer}, $self->{iBufferSize} >= $self->{iBufferMax} ? - $self->{iBufferMax} : $self->{iBufferMax} - $self->{iBufferSize}, $self->{iBufferSize}); - - # An error occurred if undef is returned - if (!defined($iBufferRead)) - { - # Store the error message - $self->error(ERROR_FILE_READ, 'unable to read line', $!); - } - - # Error on EOF (unless reading from error stream) - if ($iBufferRead == 0 && (!defined($bIgnoreEOF) || !$bIgnoreEOF)) - { - # Only error if reading from the input stream - if (!defined($bError) || $bError) - { - $self->error(ERROR_FILE_READ, 'unexpected EOF'); - } - # If reading from error stream then just return undef - else - { - return; - } - } - } - - # If data was read then check for a linefeed - if ($iBufferRead > 0) - { - $self->{iBufferSize} += $iBufferRead; - - $iLineFeedPos = index($self->{strBuffer}, "\n"); - } - else - { - $self->error(); - } - - # Calculate time remaining before timeout - if ($iLineFeedPos == -1) - { - $fRemaining = $fTimeout - (gettimeofday() - $fTimeStart); - } - } - while ($iLineFeedPos == -1 && $fRemaining > 0); - - # If not linefeed was found within the time return undef - if ($iLineFeedPos == -1) - { - if (!defined($bError) || $bError) - { - confess &log(ERROR, "unable to read line after ${fTimeout} second(s)", ERROR_PROTOCOL_TIMEOUT); - } - - return; - } - } - - # Return the line that was found and adjust the buffer position - my $strLine = $iLineFeedPos - $self->{iBufferPos} == 0 ? '' : - substr($self->{strBuffer}, $self->{iBufferPos}, $iLineFeedPos - $self->{iBufferPos}); - $self->{iBufferPos} = $iLineFeedPos + 1; - - return $strLine; -} - -#################################################################################################################################### -# errorWrite -# -# Write error data to the stream. -#################################################################################################################################### -sub errorWrite -{ - my $self = shift; - my $strBuffer = shift; - - if (defined($self->{pId})) - { - confess &log(ASSERT, 'errorWrite() not valid in master process'); - } - - $self->lineWrite($strBuffer, $self->{hError}); -} - -#################################################################################################################################### -# lineWrite -# -# Write line to the stream. -#################################################################################################################################### -sub lineWrite -{ - my $self = shift; - my $strBuffer = shift; - my $hOut = shift; - - # Check if the process has exited abnormally (doesn't seem like we should need this, but the next syswrite does a hard - # abort if the remote process has already closed) - $self->error(); - - # Write the data - my $iLineOut = syswrite(defined($hOut) ? $hOut : $self->{hOut}, (defined($strBuffer) ? $strBuffer : '') . "\n"); - - if (!defined($iLineOut) || $iLineOut != (defined($strBuffer) ? length($strBuffer) : 0) + 1) - { - # Check if the process has exited abnormally - $self->error(ERROR_PROTOCOL, "unable to write ${strBuffer}", $!); - } -} - -#################################################################################################################################### -# bufferRead -# -# Read data from a stream. -#################################################################################################################################### -sub bufferRead -{ - my $self = shift; - my $tBufferRef = shift; - my $iRequestSize = shift; - my $iOffset = shift; - my $bBlock = shift; - - # Set working variables - my $iRemainingSize = $iRequestSize; - $iOffset = defined($iOffset) ? $iOffset : 0; - - # If there is data left over in the buffer from lineRead then use it - if (defined($self->{strBuffer}) && $self->{iBufferPos} < $self->{iBufferSize}) - { - # There is enough data in the buffer to satisfy the entire request and have data left over - if ($iRemainingSize < $self->{iBufferSize} - $self->{iBufferPos}) - { - $$tBufferRef = substr($self->{strBuffer}, $self->{iBufferPos}, $iRequestSize); - $self->{iBufferPos} += $iRequestSize; - return $iRequestSize; - } - # Else the entire buffer will be used (and more may be needed if blocking) - else - { - $$tBufferRef = substr($self->{strBuffer}, $self->{iBufferPos}); - my $iReadSize = $self->{iBufferSize} - $self->{iBufferPos}; - $iRemainingSize -= $iReadSize; - undef($self->{strBuffer}); - - return $iReadSize if $iRemainingSize == 0; - - $iOffset += $iReadSize; - } - } - - # If this is a blocking read then loop until all bytes have been read, else error. If not blocking read until the request size - # has been met or EOF. - my $fTimeStart = gettimeofday(); - my $fRemaining = 1; #$self->{iProtocolTimeout}; - - do - { - # Check if the sysread call will block - if ($self->{oInSelect}->can_read($fRemaining)) - { - # Read a data into the buffer - my $iReadSize = sysread($self->{hIn}, $$tBufferRef, $iRemainingSize, $iOffset); - - # Process errors from the sysread - if (!defined($iReadSize)) - { - $self->error(ERROR_FILE_READ, "unable to read ${iReadSize} bytes", $!); - } - - # Check for EOF - if ($iReadSize == 0) - { - if (defined($bBlock) && $bBlock) - { - confess &log(ERROR, - 'EOF after ' . ($iRequestSize - $iRemainingSize) . " bytes but expected ${iRequestSize}", - ERROR_FILE_READ); - } - else - { - return $iRequestSize - $iRemainingSize; - } - } - - # Update remaining size and return when it reaches 0 - $iRemainingSize -= $iReadSize; - - if ($iRemainingSize == 0) - { - return $iRequestSize; - } - - # Update the offset to advance the next read further into the buffer - $iOffset += $iReadSize; - } - - # Calculate time remaining before timeout - $fRemaining = $self->{iProtocolTimeout} - (gettimeofday() - $fTimeStart); - } - while ($fRemaining > 0); - - # Throw an error if timeout happened before required bytes were read - confess &log(ERROR, "unable to read ${iRequestSize} bytes after $self->{iProtocolTimeout} seconds", ERROR_PROTOCOL_TIMEOUT); -} - -#################################################################################################################################### -# bufferWrite -# -# Write data to a stream. -#################################################################################################################################### -sub bufferWrite -{ - my $self = shift; - my $tBufferRef = shift; - my $iWriteSize = shift; - - # If block size is not defined, get it from buffer length - $iWriteSize = defined($iWriteSize) ? $iWriteSize : length($$tBufferRef); - - # Write the block - my $iWriteOut = syswrite($self->{hOut}, $$tBufferRef, $iWriteSize); - - # Report any errors - if (!defined($iWriteOut) || $iWriteOut != $iWriteSize) - { - $self->error(ERROR_FILE_WRITE, "unable to write ${iWriteSize} bytes", $!); - } -} - -#################################################################################################################################### -# error -# -# Format and confess error. -#################################################################################################################################### -sub error -{ - my $self = shift; - my $iCode = shift; - my $strMessage = shift; - my $strSubMessage = shift; - - # Confess default error - if (defined($iCode)) - { - confess &log(ERROR, ($strMessage . (defined($strSubMessage) && $strSubMessage ne '' ? ": ${strSubMessage}" : '')), $iCode); - } -} - -1; diff --git a/lib/pgBackRest/Protocol/Common/Io/Process.pm b/lib/pgBackRest/Protocol/Common/Io/Process.pm deleted file mode 100644 index 159431df5..000000000 --- a/lib/pgBackRest/Protocol/Common/Io/Process.pm +++ /dev/null @@ -1,214 +0,0 @@ -#################################################################################################################################### -# PROTOCOL PROCESS IO MODULE -#################################################################################################################################### -package pgBackRest::Protocol::Common::Io::Process; -use parent 'pgBackRest::Protocol::Common::Io::Handle'; - -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use Exporter qw(import); - our @EXPORT = qw(); -use File::Basename qw(dirname); -use IPC::Open3 qw(open3); -use IO::Select; -use POSIX qw(:sys_wait_h); -use Symbol 'gensym'; -use Time::HiRes qw(gettimeofday); - -use pgBackRest::Common::Exception; -use pgBackRest::Common::Log; -use pgBackRest::Common::String; -use pgBackRest::Common::Wait; -use pgBackRest::Protocol::Common::Io::Handle; - -#################################################################################################################################### -# CONSTRUCTOR -#################################################################################################################################### -sub new -{ - my $class = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $hndIn, # Input stream - $hndOut, # Output stream - $hndErr, # Error stream - $pId, # Process ID - $strId, # Id for messages - $iProtocolTimeout, # Protocol timeout - $iBufferMax, # Maximum buffer size - ) = - logDebugParam - ( - __PACKAGE__ . '->new', \@_, - {name => 'hndIn', required => false, trace => true}, - {name => 'hndOut', required => false, trace => true}, - {name => 'hndErr', required => false, trace => true}, - {name => 'pId', required => false, trace => true}, - {name => 'strId', required => false, trace => true}, - {name => 'iProtocolTimeout', trace => true}, - {name => 'iBufferMax', trace => true} - ); - - my $self = $class->SUPER::new($hndIn, $hndOut, $hndErr, $iProtocolTimeout, $iBufferMax); - - $self->{pId} = $pId; - $self->{strId} = $strId; - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'self', value => $self} - ); -} - -#################################################################################################################################### -# new3 -# -# Use open3 to run the command and get the io handles. -#################################################################################################################################### -sub new3 -{ - my $class = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strId, - $strCommand, - $iProtocolTimeout, # Protocol timeout - $iBufferMax # Maximum buffer Size - ) = - logDebugParam - ( - __PACKAGE__ . '->new3', \@_, - {name => 'strId', trace => true}, - {name => 'strCommand', trace => true}, - {name => 'iProtocolTimeout', trace => true}, - {name => 'iBufferMax', trace => true} - ); - - # Use open3 to run the command - my ($pId, $hIn, $hOut, $hErr); - $hErr = gensym; - - $pId = IPC::Open3::open3($hIn, $hOut, $hErr, $strCommand); - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'self', value => $class->new($hOut, $hIn, $hErr, $pId, $strId, $iProtocolTimeout, $iBufferMax)} - ); -} - -#################################################################################################################################### -# Get process id -#################################################################################################################################### -sub processId -{ - my $self = shift; - - return $self->{pId}; -} - -#################################################################################################################################### -# error -# -# See if the remote process has terminated unexpectedly and attempt to retrieve error information from stderr. If that fails then -# call parent error() method to report error. -#################################################################################################################################### -sub error -{ - my $self = shift; - my $iCode = shift; - my $strMessage = shift; - my $strSubMessage = shift; - - # Record the start time and set initial sleep interval - my $oWait = waitInit(defined($iCode) ? IO_ERROR_TIMEOUT : 0); - - if (defined($self->{pId})) - { - do - { - my $iResult = waitpid($self->{pId}, WNOHANG); - - # If there is no such process we'll assume it terminated previously - if ($iResult == -1) - { - return true; - } - - # If the process exited then this is unexpected - if ($iResult > 0) - { - # Get the exit status so we can report it later - my $iExitStatus = ${^CHILD_ERROR_NATIVE} >> 8; - - # Initialize error - my $strError = undef; - - # If the error stream is already closed then we can't fetch the real error - if (!defined($self->{hErr})) - { - $strError = 'no error captured because stderr is already closed'; - } - # Get whatever text we can from the error stream - else - { - eval - { - while (my $strLine = $self->lineRead(0, false, false)) - { - if (defined($strError)) - { - $strError .= "\n"; - } - - $strError .= $strLine; - } - - return true; - } - or do - { - if (!defined($strError)) - { - my $strException = $EVAL_ERROR; - - $strError = - 'no output from terminated process' . - (defined($strException) && ${strException} ne '' ? ": ${strException}" : ''); - } - }; - } - - $self->{pId} = undef; - $self->{hIn} = undef; - $self->{hOut} = undef; - $self->{hErr} = undef; - - # Finally, confess the error - confess &log( - ERROR, 'remote process terminated on ' . $self->{strId} . ' host' . - ($iExitStatus < ERROR_MINIMUM || $iExitStatus > ERROR_MAXIMUM ? " (exit status ${iExitStatus})" : '') . - ': ' . (defined($strError) ? $strError : 'no error on stderr'), - $iExitStatus >= ERROR_MINIMUM && $iExitStatus <= ERROR_MAXIMUM ? $iExitStatus : ERROR_HOST_CONNECT); - } - } - while (waitMore($oWait)); - } - - # Confess default error - $self->SUPER::error($iCode, $strMessage, $iCode); -} - -1; diff --git a/lib/pgBackRest/Protocol/Helper.pm b/lib/pgBackRest/Protocol/Helper.pm index 6ae52971c..4475ea9ac 100644 --- a/lib/pgBackRest/Protocol/Helper.pm +++ b/lib/pgBackRest/Protocol/Helper.pm @@ -1,5 +1,5 @@ #################################################################################################################################### -# PROTOCOL HELPER MODULE +# Create and manage protocol objects. #################################################################################################################################### package pgBackRest::Protocol::Helper; @@ -12,10 +12,72 @@ use Exporter qw(import); use pgBackRest::Common::Log; use pgBackRest::Config::Config; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Remote::Master; use pgBackRest::Version; +#################################################################################################################################### +# Operation constants +#################################################################################################################################### +# Backup module +use constant OP_BACKUP_FILE => 'backupFile'; + push @EXPORT, qw(OP_BACKUP_FILE); + +# Archive Module +use constant OP_ARCHIVE_GET_ARCHIVE_ID => 'archiveId'; + push @EXPORT, qw(OP_ARCHIVE_GET_ARCHIVE_ID); +use constant OP_ARCHIVE_GET_CHECK => 'archiveCheck'; + push @EXPORT, qw(OP_ARCHIVE_GET_CHECK); +use constant OP_ARCHIVE_PUSH_CHECK => 'archivePushCheck'; + push @EXPORT, qw(OP_ARCHIVE_PUSH_CHECK); + +# Archive Push Async Module +use constant OP_ARCHIVE_PUSH_ASYNC => 'archivePushAsync'; + push @EXPORT, qw(OP_ARCHIVE_PUSH_ASYNC); + +# Archive File Module +use constant OP_ARCHIVE_PUSH_FILE => 'archivePushFile'; + push @EXPORT, qw(OP_ARCHIVE_PUSH_FILE); + +# Check Module +use constant OP_CHECK_BACKUP_INFO_CHECK => 'backupInfoCheck'; + push @EXPORT, qw(OP_CHECK_BACKUP_INFO_CHECK); + +# Db Module +use constant OP_DB_CONNECT => 'dbConnect'; + push @EXPORT, qw(OP_DB_CONNECT); +use constant OP_DB_EXECUTE_SQL => 'dbExecSql'; + push @EXPORT, qw(OP_DB_EXECUTE_SQL); +use constant OP_DB_INFO => 'dbInfo'; + push @EXPORT, qw(OP_DB_INFO); + +# Storage Module +use constant OP_STORAGE_OPEN_READ => 'storageOpenRead'; + push @EXPORT, qw(OP_STORAGE_OPEN_READ); +use constant OP_STORAGE_OPEN_WRITE => 'storageOpenWrite'; + push @EXPORT, qw(OP_STORAGE_OPEN_WRITE); +use constant OP_STORAGE_EXISTS => 'storageExists'; + push @EXPORT, qw(OP_STORAGE_EXISTS); +use constant OP_STORAGE_LIST => 'storageList'; + push @EXPORT, qw(OP_STORAGE_LIST); +use constant OP_STORAGE_MANIFEST => 'storageManifest'; + push @EXPORT, qw(OP_STORAGE_MANIFEST); +use constant OP_STORAGE_MOVE => 'storageMove'; + push @EXPORT, qw(OP_STORAGE_MOVE); +use constant OP_STORAGE_PATH_GET => 'storagePathGet'; + push @EXPORT, qw(OP_STORAGE_PATH_GET); + +# Info module +use constant OP_INFO_STANZA_LIST => 'infoStanzList'; + push @EXPORT, qw(OP_INFO_STANZA_LIST); + +# Restore module +use constant OP_RESTORE_FILE => 'restoreFile'; + push @EXPORT, qw(OP_RESTORE_FILE); + +# Wait +use constant OP_WAIT => 'wait'; + push @EXPORT, qw(OP_WAIT); + #################################################################################################################################### # Module variables #################################################################################################################################### @@ -29,9 +91,9 @@ my $hProtocol = {}; # Global remote hash that is created on first reques sub isRepoLocal { # Not valid for remote - if (commandTest(CMD_REMOTE)) + if (commandTest(CMD_REMOTE) && !optionTest(OPTION_TYPE, BACKUP)) { - confess &log(ASSERT, 'isRepoLocal() not valid on remote'); + confess &log(ASSERT, 'isRepoLocal() not valid on ' . optionGet(OPTION_TYPE) . ' remote'); } return optionTest(OPTION_BACKUP_HOST) ? false : true; @@ -40,19 +102,37 @@ sub isRepoLocal push @EXPORT, qw(isRepoLocal); #################################################################################################################################### -# isDbLocal -# -# Is the database local? +# isDbLocal - is the database local? #################################################################################################################################### sub isDbLocal { + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $iRemoteIdx, + ) = + logDebugParam + ( + __PACKAGE__ . '::isDbLocal', \@_, + {name => 'iRemoteIdx', optional => true, default => optionValid(OPTION_HOST_ID) ? optionGet(OPTION_HOST_ID) : 1, + trace => true}, + ); + # Not valid for remote - if (commandTest(CMD_REMOTE)) + if (commandTest(CMD_REMOTE) && !optionTest(OPTION_TYPE, DB)) { - confess &log(ASSERT, 'isDbLocal() not valid on remote'); + confess &log(ASSERT, 'isDbLocal() not valid on ' . optionGet(OPTION_TYPE) . ' remote'); } - return optionTest(OPTION_DB_HOST) ? false : true; + my $bLocal = optionTest(optionIndex(OPTION_DB_HOST, $iRemoteIdx)) ? false : true; + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'bLocal', value => $bLocal, trace => true} + ); } push @EXPORT, qw(isDbLocal); @@ -80,7 +160,7 @@ sub protocolGet ( __PACKAGE__ . '::protocolGet', \@_, {name => 'strRemoteType'}, - {name => 'iRemoteIdx', default => 1}, + {name => 'iRemoteIdx', default => optionValid(OPTION_HOST_ID) ? optionGet(OPTION_HOST_ID) : 1}, {name => 'bCache', optional => true, default => true}, {name => 'strBackRestBin', optional => true}, {name => 'iProcessIdx', optional => true}, @@ -91,19 +171,11 @@ sub protocolGet my $oProtocol; # If no remote requested or if the requested remote type is local then return a local protocol object - my $strRemoteHost = $strRemoteType eq NONE ? undef : optionIndex("${strRemoteType}-host", $iRemoteIdx); + my $strRemoteHost = optionIndex("${strRemoteType}-host", $iRemoteIdx); - if ($strRemoteType eq NONE || !optionTest($strRemoteHost)) + if (!optionTest($strRemoteHost)) { - logDebugMisc($strOperation, 'create local protocol'); - - $oProtocol = new pgBackRest::Protocol::Common::Common - ( - optionGet(OPTION_BUFFER_SIZE), - commandTest(CMD_EXPIRE) ? OPTION_DEFAULT_COMPRESS_LEVEL : optionGet(OPTION_COMPRESS_LEVEL), - commandTest(CMD_EXPIRE) ? OPTION_DEFAULT_COMPRESS_LEVEL_NETWORK : optionGet(OPTION_COMPRESS_LEVEL_NETWORK), - commandTest(CMD_EXPIRE) ? OPTION_PROTOCOL_TIMEOUT : optionGet(OPTION_PROTOCOL_TIMEOUT) - ); + confess &log(ASSERT, 'protocol cannot be created when remote host is not specified'); } # Else create the remote protocol else @@ -116,6 +188,10 @@ sub protocolGet { $oProtocol = $$hProtocol{$strRemoteType}{$iRemoteIdx}; logDebugMisc($strOperation, 'found cached protocol'); + + # Issue a noop on protocol pulled from the cache to be sure it is still functioning. It's better to get an error at + # request time than somewhere randomly later. + $oProtocol->noOp(); } # If protocol was not returned from cache then create it @@ -157,7 +233,6 @@ sub protocolGet $oProtocol = new pgBackRest::Protocol::Remote::Master ( - $strRemoteType, optionGet(OPTION_CMD_SSH), commandWrite( CMD_REMOTE, true, @@ -210,6 +285,54 @@ sub protocolGet push @EXPORT, qw(protocolGet); +#################################################################################################################################### +# protocolList - list all active protocols +#################################################################################################################################### +sub protocolList +{ + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strRemoteType, + $iRemoteIdx, + ) = + logDebugParam + ( + __PACKAGE__ . '::protocolList', \@_, + {name => 'strRemoteType', required => false, trace => true}, + {name => 'iRemoteIdx', required => false, trace => true}, + ); + + my @oyProtocol; + + if (!defined($strRemoteType)) + { + foreach my $strRemoteType (sort(keys(%{$hProtocol}))) + { + push(@oyProtocol, protocolList($strRemoteType)); + } + } + elsif (!defined($iRemoteIdx)) + { + foreach my $iRemoteIdx (sort(keys(%{$hProtocol->{$strRemoteType}}))) + { + push(@oyProtocol, protocolList($strRemoteType, $iRemoteIdx)); + } + } + elsif (defined($hProtocol->{$strRemoteType}{$iRemoteIdx})) + { + push(@oyProtocol, {strRemoteType => $strRemoteType, iRemoteIdx => $iRemoteIdx}); + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oyProtocol', value => \@oyProtocol, trace => true} + ); +} + #################################################################################################################################### # protocolDestroy # @@ -235,34 +358,15 @@ sub protocolDestroy my $iExitStatus = 0; - if (defined($strRemoteType)) + foreach my $rhProtocol (protocolList($strRemoteType, $iRemoteIdx)) { - $iRemoteIdx = defined($iRemoteIdx) ? $iRemoteIdx : 1; + logDebugMisc( + $strOperation, 'found cached protocol', + {name => 'strRemoteType', value => $rhProtocol->{strRemoteType}}, + {name => 'iRemoteIdx', value => $rhProtocol->{iRemoteIdx}}); - if (defined($$hProtocol{$strRemoteType}{$iRemoteIdx})) - { - $iExitStatus = ($$hProtocol{$strRemoteType}{$iRemoteIdx})->close($bComplete); - delete($$hProtocol{$strRemoteType}{$iRemoteIdx}); - } - } - else - { - foreach my $strRemoteType (sort(keys(%{$hProtocol}))) - { - foreach my $iRemoteIdx (sort(keys(%{$$hProtocol{$strRemoteType}}))) - { - if (defined($$hProtocol{$strRemoteType}{$iRemoteIdx})) - { - logDebugMisc( - $strOperation, 'found cached protocol', - {name => 'strRemoteType', value => $strRemoteType}, - {name => 'iRemoteIdx', value => $iRemoteIdx}); - - $iExitStatus = ($$hProtocol{$strRemoteType}{$iRemoteIdx})->close($bComplete); - delete($$hProtocol{$strRemoteType}{$iRemoteIdx}); - } - } - } + $iExitStatus = $hProtocol->{$rhProtocol->{strRemoteType}}{$rhProtocol->{iRemoteIdx}}->close($bComplete); + delete($hProtocol->{$rhProtocol->{strRemoteType}}{$rhProtocol->{iRemoteIdx}}); } # Return from function and log return values if any @@ -275,4 +379,34 @@ sub protocolDestroy push @EXPORT, qw(protocolDestroy); +#################################################################################################################################### +# protocolKeepAlive - call keepAlive() on all protocols +#################################################################################################################################### +sub protocolKeepAlive +{ + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strRemoteType, + $iRemoteIdx, + ) = + logDebugParam + ( + __PACKAGE__ . '::protocolDestroy', \@_, + {name => 'strRemoteType', required => false, trace => true}, + {name => 'iRemoteIdx', required => false, trace => true}, + ); + + foreach my $rhProtocol (protocolList($strRemoteType, $iRemoteIdx)) + { + $hProtocol->{$rhProtocol->{strRemoteType}}{$rhProtocol->{iRemoteIdx}}->keepAlive(); + } + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +push @EXPORT, qw(protocolKeepAlive); + 1; diff --git a/lib/pgBackRest/Protocol/Local/Master.pm b/lib/pgBackRest/Protocol/Local/Master.pm index 6698a8aef..2a300b930 100644 --- a/lib/pgBackRest/Protocol/Local/Master.pm +++ b/lib/pgBackRest/Protocol/Local/Master.pm @@ -12,7 +12,6 @@ use pgBackRest::Backup::File; use pgBackRest::Common::Log; use pgBackRest::Config::Config; use pgBackRest::Protocol::Command::Master; -use pgBackRest::Protocol::Common::Common; #################################################################################################################################### # CONSTRUCTOR @@ -36,17 +35,12 @@ sub new ); # Init object and store variables - my $strLocal = 'local-' . $iProcessIdx; - my $self = $class->SUPER::new( - NONE, 'local', $strLocal, $strCommand, optionGet(OPTION_BUFFER_SIZE), optionGet(OPTION_COMPRESS_LEVEL), + 'local', "'local-${iProcessIdx}'", $strCommand, optionGet(OPTION_BUFFER_SIZE), optionGet(OPTION_COMPRESS_LEVEL), optionGet(OPTION_COMPRESS_LEVEL_NETWORK), optionGet(OPTION_PROTOCOL_TIMEOUT)); bless $self, $class; - # Store the host - $self->{strLocal} = $strLocal; - # Return from function and log return values if any return logDebugReturn ( diff --git a/lib/pgBackRest/Protocol/Local/Minion.pm b/lib/pgBackRest/Protocol/Local/Minion.pm index 471129ac6..b52f14527 100644 --- a/lib/pgBackRest/Protocol/Local/Minion.pm +++ b/lib/pgBackRest/Protocol/Local/Minion.pm @@ -12,9 +12,9 @@ use pgBackRest::Archive::ArchivePushFile; use pgBackRest::Backup::File; use pgBackRest::Common::Log; use pgBackRest::Config::Config; -use pgBackRest::File; +use pgBackRest::Storage::Local; +use pgBackRest::Protocol::Base::Master; use pgBackRest::Protocol::Command::Minion; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; use pgBackRest::RestoreFile; @@ -26,21 +26,10 @@ sub new my $class = shift; # Class name # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $strCommand, - ) = - logDebugParam - ( - __PACKAGE__ . '->new', \@_, - {name => 'strCommand'}, - ); + my ($strOperation) = logDebugParam(__PACKAGE__ . '->new'); # Init object and store variables - my $self = $class->SUPER::new( - CMD_LOCAL, $strCommand, optionGet(OPTION_BUFFER_SIZE), optionGet(OPTION_COMPRESS_LEVEL), - optionGet(OPTION_COMPRESS_LEVEL_NETWORK), optionGet(OPTION_PROTOCOL_TIMEOUT)); + my $self = $class->SUPER::new(CMD_LOCAL, optionGet(OPTION_BUFFER_SIZE), optionGet(OPTION_PROTOCOL_TIMEOUT)); bless $self, $class; # Return from function and log return values if any @@ -61,25 +50,12 @@ sub init # Assign function parameters, defaults, and log debug info my ($strOperation) = logDebugParam(__PACKAGE__ . '->init'); - # Create the file object - my $oFile = new pgBackRest::File - ( - optionGet(OPTION_STANZA), - optionGet(OPTION_REPO_PATH), - protocolGet( - optionGet(OPTION_TYPE), optionGet(OPTION_HOST_ID), - {iProcessIdx => optionGet(OPTION_PROCESS), strCommand => optionGet(OPTION_COMMAND)}) - ); - # Create anonymous subs for each command my $hCommandMap = { - &OP_ARCHIVE_PUSH_FILE => sub {archivePushFile($oFile, @{shift()})}, - &OP_BACKUP_FILE => sub {backupFile($oFile, @{shift()})}, - &OP_RESTORE_FILE => sub {restoreFile($oFile, @{shift()})}, - - # To be run after each command to keep the remote alive - &OP_POST => sub {$oFile->{oProtocol}->keepAlive()}, + &OP_ARCHIVE_PUSH_FILE => sub {archivePushFile(@{shift()})}, + &OP_BACKUP_FILE => sub {backupFile(@{shift()})}, + &OP_RESTORE_FILE => sub {restoreFile(@{shift()})}, }; # Return from function and log return values if any diff --git a/lib/pgBackRest/Protocol/Local/Process.pm b/lib/pgBackRest/Protocol/Local/Process.pm index 802143f3f..d8a51cb86 100644 --- a/lib/pgBackRest/Protocol/Local/Process.pm +++ b/lib/pgBackRest/Protocol/Local/Process.pm @@ -197,7 +197,7 @@ sub hostConnect iProcessId => $iProcessId, iHostProcessIdx => $iHostProcessIdx, oLocal => $oLocal, - hndIn => fileno($oLocal->{io}->{hIn}), + hndIn => fileno($oLocal->io()->handleRead()), }; push(@{$self->{hyLocal}}, $hLocal); @@ -335,7 +335,7 @@ sub process confess $oException if (!isException($oException)); # If the process is has terminated throw the exception - if (!defined($hLocal->{oLocal}->{io}->processId())) + if (!defined($hLocal->{oLocal}->io()->processId())) { confess logException($oException); } diff --git a/lib/pgBackRest/Protocol/Remote/Master.pm b/lib/pgBackRest/Protocol/Remote/Master.pm index 69f520747..8c3ea2032 100644 --- a/lib/pgBackRest/Protocol/Remote/Master.pm +++ b/lib/pgBackRest/Protocol/Remote/Master.pm @@ -25,7 +25,6 @@ sub new my ( $strOperation, - $strRemoteType, # Type of remote (DB or BACKUP) $strCommandSSH, # SSH client $strCommand, # Command to execute on local/remote $iBufferMax, # Maximum buffer size @@ -38,7 +37,6 @@ sub new logDebugParam ( __PACKAGE__ . '->new', \@_, - {name => 'strRemoteType'}, {name => 'strCommandSSH'}, {name => 'strCommand'}, {name => 'iBufferMax'}, @@ -55,7 +53,8 @@ sub new # Init object and store variables my $self = $class->SUPER::new( - $strRemoteType, 'remote', $strHost, $strCommand, $iBufferMax, $iCompressLevel, $iCompressLevelNetwork, $iProtocolTimeout); + 'remote', "'$strHost remote'", $strCommand, $iBufferMax, $iCompressLevel, $iCompressLevelNetwork, + $iProtocolTimeout); bless $self, $class; # Store the host diff --git a/lib/pgBackRest/Protocol/Remote/Minion.pm b/lib/pgBackRest/Protocol/Remote/Minion.pm index d01dce763..de9b1b8f5 100644 --- a/lib/pgBackRest/Protocol/Remote/Minion.pm +++ b/lib/pgBackRest/Protocol/Remote/Minion.pm @@ -12,15 +12,17 @@ use File::Basename qw(dirname); use pgBackRest::Backup::File; use pgBackRest::Common::Log; +use pgBackRest::Common::Io::Buffered; +use pgBackRest::Common::Wait; use pgBackRest::Archive::ArchiveGet; use pgBackRest::Archive::ArchivePushFile; use pgBackRest::Check::Check; use pgBackRest::Config::Config; use pgBackRest::Db; -use pgBackRest::File; use pgBackRest::Info; use pgBackRest::Protocol::Command::Minion; -use pgBackRest::Protocol::Common::Common; +use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; #################################################################################################################################### # CONSTRUCTOR @@ -33,25 +35,18 @@ sub new my ( $strOperation, - $strCommand, # Command the master process is running $iBufferMax, # Maximum buffer size - $iCompressLevel, # Set compression level - $iCompressLevelNetwork, # Set compression level for network only compression, $iProtocolTimeout # Protocol timeout ) = logDebugParam ( __PACKAGE__ . '->new', \@_, - {name => 'strCommand'}, {name => 'iBufferMax'}, - {name => 'iCompressLevel'}, - {name => 'iCompressNetworkLevel'}, {name => 'iProtocolTimeout'} ); # Init object and store variables - my $self = $class->SUPER::new(CMD_REMOTE, $strCommand, $iBufferMax, $iCompressLevel, - $iCompressLevelNetwork, $iProtocolTimeout); + my $self = $class->SUPER::new(CMD_REMOTE, $iBufferMax, $iProtocolTimeout); bless $self, $class; # Return from function and log return values if any @@ -73,30 +68,25 @@ sub init my ($strOperation) = logDebugParam(__PACKAGE__ . '->init'); # Create objects - my $oFile = new pgBackRest::File - ( - optionGet(OPTION_STANZA, false), - optionGet(OPTION_REPO_PATH, false), - $self - ); + my $oStorage = optionTest(OPTION_TYPE, DB) ? storageDb() : storageRepo(); - my $oArchiveGet = new pgBackRest::Archive::ArchiveGet(); - my $oCheck = new pgBackRest::Check::Check(); - my $oInfo = new pgBackRest::Info(); - my $oDb = new pgBackRest::Db(); + my $oArchiveGet = optionTest(OPTION_TYPE, BACKUP) ? new pgBackRest::Archive::ArchiveGet() : undef; + my $oCheck = optionTest(OPTION_TYPE, BACKUP) ? new pgBackRest::Check::Check() : undef; + my $oInfo = optionTest(OPTION_TYPE, BACKUP) ? new pgBackRest::Info() : undef; + my $oDb = optionTest(OPTION_TYPE, DB) ? new pgBackRest::Db() : undef; # Create anonymous subs for each command my $hCommandMap = { # ArchiveGet commands - &OP_ARCHIVE_GET_ARCHIVE_ID => sub {$oArchiveGet->getArchiveId($oFile)}, - &OP_ARCHIVE_GET_CHECK => sub {$oArchiveGet->getCheck($oFile, @{shift()})}, + &OP_ARCHIVE_GET_ARCHIVE_ID => sub {$oArchiveGet->getArchiveId()}, + &OP_ARCHIVE_GET_CHECK => sub {$oArchiveGet->getCheck(@{shift()})}, # ArchivePush commands - &OP_ARCHIVE_PUSH_CHECK => sub {archivePushCheck($oFile, @{shift()})}, + &OP_ARCHIVE_PUSH_CHECK => sub {archivePushCheck(@{shift()})}, # Check commands - &OP_CHECK_BACKUP_INFO_CHECK => sub {$oCheck->backupInfoCheck($oFile, @{shift()})}, + &OP_CHECK_BACKUP_INFO_CHECK => sub {$oCheck->backupInfoCheck(@{shift()})}, # Db commands &OP_DB_CONNECT => sub {$oDb->connect()}, @@ -104,17 +94,38 @@ sub init &OP_DB_INFO => sub {$oDb->info(@{shift()})}, # File commands - &OP_FILE_COPY => sub {my $rParam = shift; $oFile->copy(PATH_ABSOLUTE, shift(@{$rParam}), PATH_ABSOLUTE, @{$rParam})}, - &OP_FILE_COPY_IN => sub {my $rParam = shift; $oFile->copy(PIPE_STDIN, shift(@{$rParam}), PATH_ABSOLUTE, @{$rParam})}, - &OP_FILE_COPY_OUT => sub {my $rParam = shift; $oFile->copy(PATH_ABSOLUTE, shift(@{$rParam}), PIPE_STDOUT, @{$rParam})}, - &OP_FILE_EXISTS => sub {$oFile->exists(PATH_ABSOLUTE, @{shift()})}, - &OP_FILE_LIST => sub {$oFile->list(PATH_ABSOLUTE, @{shift()})}, - &OP_FILE_MANIFEST => sub {$oFile->manifest(PATH_ABSOLUTE, @{shift()})}, - &OP_FILE_PATH_CREATE => sub {$oFile->pathCreate(PATH_ABSOLUTE, @{shift()})}, - &OP_FILE_WAIT => sub {$oFile->wait(PATH_ABSOLUTE, @{shift()})}, + &OP_STORAGE_OPEN_READ => sub + { + my $oSourceFileIo = $oStorage->openRead(@{shift()}); + + # If the source file exists + if (defined($oSourceFileIo)) + { + $self->outputWrite(true); + + $oStorage->copy($oSourceFileIo, new pgBackRest::Protocol::Storage::File($self, $oSourceFileIo)); + + return true; + } + + return false; + }, + &OP_STORAGE_OPEN_WRITE => sub + { + my $oDestinationFileIo = $oStorage->openWrite(@{shift()}); + $oStorage->copy(new pgBackRest::Protocol::Storage::File($self, $oDestinationFileIo), $oDestinationFileIo); + }, + &OP_STORAGE_EXISTS => sub {$oStorage->exists(@{shift()})}, + &OP_STORAGE_LIST => sub {$oStorage->list(@{shift()})}, + &OP_STORAGE_MANIFEST => sub {$oStorage->manifest(@{shift()})}, + &OP_STORAGE_MOVE => sub {$oStorage->move(@{shift()})}, + &OP_STORAGE_PATH_GET => sub {$oStorage->pathGet(@{shift()})}, # Info commands - &OP_INFO_STANZA_LIST => sub {$oInfo->stanzaList($oFile, @{shift()})}, + &OP_INFO_STANZA_LIST => sub {$oInfo->stanzaList(@{shift()})}, + + # Wait command + &OP_WAIT => sub {waitRemainder(@{shift()})}, }; # Return from function and log return values if any diff --git a/lib/pgBackRest/Protocol/Storage/File.pm b/lib/pgBackRest/Protocol/Storage/File.pm new file mode 100644 index 000000000..e93ccb986 --- /dev/null +++ b/lib/pgBackRest/Protocol/Storage/File.pm @@ -0,0 +1,151 @@ +#################################################################################################################################### +# Protocol File +#################################################################################################################################### +package pgBackRest::Protocol::Storage::File; +use parent 'pgBackRest::Common::Io::Base'; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Exporter qw(import); + our @EXPORT = qw(); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; + +#################################################################################################################################### +# CONSTRUCTOR +#################################################################################################################################### +sub new +{ + my $class = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $oProtocol, # Master or minion protocol + $oFileIo, # File whose results will be returned via protocol + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'oProtocol', trace => true}, + {name => 'oFileIo', required => false, trace => true}, + ); + + # Create class + my $self = $class->SUPER::new($oProtocol->io()->id() . ' file'); + bless $self, $class; + + # Set variables + $self->{oProtocol} = $oProtocol; + $self->{oFileIo} = $oFileIo; + + # Set read/write + $self->{bWrite} = false; + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self} + ); +} + +#################################################################################################################################### +# read - read block from protocol +#################################################################################################################################### +sub read +{ + my $self = shift; + my $rtBuffer = shift; + + my $lBlockSize; + + # Read the block header and make sure it's valid + my $strBlockHeader = $self->{oProtocol}->io()->readLine(); + + if ($strBlockHeader !~ /^BRBLOCK[0-9]+$/) + { + confess &log(ERROR, "invalid block header '${strBlockHeader}'", ERROR_FILE_READ); + } + + # Get block size from the header + $lBlockSize = substr($strBlockHeader, 7); + + # Read block if size > 0 + if ($lBlockSize > 0) + { + $self->{oProtocol}->io()->read($rtBuffer, $lBlockSize, true); + } + + # Return the block size + return $lBlockSize; +} + +#################################################################################################################################### +# write - write block to protocol +#################################################################################################################################### +sub write +{ + my $self = shift; + my $rtBuffer = shift; + + # Set write + $self->{bWrite} = true; + + # Get the buffer size + my $lBlockSize = defined($rtBuffer) ? length($$rtBuffer) : 0; + + # Write if size > 0 (0 ends the copy stream so it should only be done in close()) + if ($lBlockSize > 0) + { + # Write block header to the protocol stream + $self->{oProtocol}->io()->writeLine("BRBLOCK${lBlockSize}"); + + # Write block if size + $self->{oProtocol}->io()->write($rtBuffer); + } + + return length($$rtBuffer); +} + +#################################################################################################################################### +# close - set the result hash +#################################################################################################################################### +sub close +{ + my $self = shift; + + # Close if protocol is defined (to prevent this from running more than once) + if (defined($self->{oProtocol})) + { + # If writing output terminator + if ($self->{bWrite}) + { + $self->{oProtocol}->io()->writeLine("BRBLOCK0"); + } + + # On master read the results + if ($self->{oProtocol}->master()) + { + ($self->{rhResult}) = $self->{oProtocol}->outputRead(); + + # Minion will send one more output message after file is closed which can be ignored + $self->{oProtocol}->outputRead(); + } + # On minion write the results + else + { + $self->{oProtocol}->outputWrite($self->{oFileIo}->{rhResult}); + } + + # Delete protocol to prevent close from running again + delete($self->{oProtocol}); + } +} + +1; diff --git a/lib/pgBackRest/Protocol/Storage/Helper.pm b/lib/pgBackRest/Protocol/Storage/Helper.pm new file mode 100644 index 000000000..c2b299b80 --- /dev/null +++ b/lib/pgBackRest/Protocol/Storage/Helper.pm @@ -0,0 +1,220 @@ +#################################################################################################################################### +# Db & Repository Storage Helper +#################################################################################################################################### +package pgBackRest::Protocol::Storage::Helper; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); + +use Exporter qw(import); + our @EXPORT = qw(); +use File::Basename qw(basename); + +use pgBackRest::Common::Log; +use pgBackRest::Config::Config; +use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Remote; +use pgBackRest::Storage::Helper; +use pgBackRest::Storage::Local; + +#################################################################################################################################### +# Storage constants +#################################################################################################################################### +use constant STORAGE_DB => ''; + push @EXPORT, qw(STORAGE_DB); + +use constant STORAGE_REPO => ''; + push @EXPORT, qw(STORAGE_REPO); +use constant STORAGE_REPO_ARCHIVE => ''; + push @EXPORT, qw(STORAGE_REPO_ARCHIVE); +use constant STORAGE_REPO_BACKUP => ''; + push @EXPORT, qw(STORAGE_REPO_BACKUP); + +#################################################################################################################################### +# Cache storage so it can be retrieved quickly +#################################################################################################################################### +my $hStorage; + +#################################################################################################################################### +# storageDb - get db storage +#################################################################################################################################### +sub storageDb +{ + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $iRemoteIdx, + ) = + logDebugParam + ( + __PACKAGE__ . '::storageDb', \@_, + {name => 'iRemoteIdx', optional => true, default => optionValid(OPTION_HOST_ID) ? optionGet(OPTION_HOST_ID) : 1, + trace => true}, + ); + + # Create storage if not defined + if (!defined($hStorage->{&STORAGE_DB}{$iRemoteIdx})) + { + if (isDbLocal({iRemoteIdx => $iRemoteIdx})) + { + $hStorage->{&STORAGE_DB}{$iRemoteIdx} = new pgBackRest::Storage::Local( + optionGet(optionIndex(OPTION_DB_PATH, $iRemoteIdx)), new pgBackRest::Storage::Posix::Driver(), + {strTempExtension => STORAGE_TEMP_EXT, lBufferMax => optionGet(OPTION_BUFFER_SIZE)}); + } + else + { + $hStorage->{&STORAGE_DB}{$iRemoteIdx} = new pgBackRest::Protocol::Storage::Remote(protocolGet(DB, $iRemoteIdx)); + } + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oStorageDb', value => $hStorage->{&STORAGE_DB}{$iRemoteIdx}, trace => true}, + ); +} + +push @EXPORT, qw(storageDb); + +#################################################################################################################################### +# storageRepoRule - rules for paths in the repository +#################################################################################################################################### +sub storageRepoRule +{ + my $strRule = shift; + my $strFile = shift; + my $strStanza = shift; + + # Result path and file + my $strResultFile; + + # Return archive path + if ($strRule eq STORAGE_REPO_ARCHIVE) + { + $strResultFile = "archive/${strStanza}"; + + # If file is not defined nothing further to do + if (defined($strFile)) + { + my ($strArchiveId, $strWalFile) = split('/', $strFile); + + # If a WAL file (including .backup) + if (defined($strWalFile) && $strWalFile =~ /^[0-F]{24}/) + { + $strResultFile .= "/${strArchiveId}/" . substr($strWalFile, 0, 16) . "/${strWalFile}"; + } + # Else other files + else + { + $strResultFile .= "/${strFile}"; + } + } + } + # Return backup path + elsif ($strRule eq STORAGE_REPO_BACKUP) + { + $strResultFile = "backup/${strStanza}" . (defined($strFile) ? "/${strFile}" : ''); + } + # Else error + else + { + confess &log(ASSERT, "invalid " . STORAGE_REPO . " storage rule ${strRule}"); + } + + return $strResultFile; +} + +#################################################################################################################################### +# storageRepo - get repository storage +#################################################################################################################################### +sub storageRepo +{ + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strStanza, + ) = + logDebugParam + ( + __PACKAGE__ . '::storageRepo', \@_, + {name => 'strStanza', optional => true, trace => true}, + ); + + if (!defined($strStanza)) + { + if (optionValid(OPTION_STANZA) && optionTest(OPTION_STANZA)) + { + $strStanza = optionGet(OPTION_STANZA); + } + else + { + $strStanza = STORAGE_REPO; + } + } + + # Create storage if not defined + if (!defined($hStorage->{&STORAGE_REPO}{$strStanza})) + { + if (isRepoLocal()) + { + # Path rules + my $hRule; + + if ($strStanza ne STORAGE_REPO) + { + $hRule = + { + &STORAGE_REPO_ARCHIVE => + { + fnRule => \&storageRepoRule, + xData => $strStanza, + }, + &STORAGE_REPO_BACKUP => + { + fnRule => \&storageRepoRule, + xData => $strStanza, + }, + } + }; + + # Create the driver + my $oDriver; + + if (optionTest(OPTION_REPO_TYPE, REPO_TYPE_CIFS)) + { + require pgBackRest::Storage::Cifs::Driver; + + $oDriver = new pgBackRest::Storage::Cifs::Driver(); + } + else + { + $oDriver = new pgBackRest::Storage::Posix::Driver(); + } + + # Create local storage + $hStorage->{&STORAGE_REPO}{$strStanza} = new pgBackRest::Storage::Local( + optionGet(OPTION_REPO_PATH), $oDriver, + {strTempExtension => STORAGE_TEMP_EXT, hRule => $hRule, lBufferMax => optionGet(OPTION_BUFFER_SIZE)}); + } + else + { + # Create remote storage + $hStorage->{&STORAGE_REPO}{$strStanza} = new pgBackRest::Protocol::Storage::Remote(protocolGet(BACKUP)); + } + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oStorageRepo', value => $hStorage->{&STORAGE_REPO}{$strStanza}, trace => true}, + ); +} + +push @EXPORT, qw(storageRepo); + +1; diff --git a/lib/pgBackRest/Protocol/Storage/Remote.pm b/lib/pgBackRest/Protocol/Storage/Remote.pm new file mode 100644 index 000000000..dc8a0cf89 --- /dev/null +++ b/lib/pgBackRest/Protocol/Storage/Remote.pm @@ -0,0 +1,315 @@ +#################################################################################################################################### +# Remote Storage +#################################################################################################################################### +package pgBackRest::Protocol::Storage::Remote; +use parent 'pgBackRest::Storage::Base'; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; +use pgBackRest::Config::Config; +use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::File; +use pgBackRest::Storage::Base; +use pgBackRest::Storage::Filter::Gzip; + +#################################################################################################################################### +# new +#################################################################################################################################### +sub new +{ + my $class = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $oProtocol, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'oProtocol'}, + ); + + # Init parent + my $self = $class->SUPER::new({lBufferMax => $oProtocol->io()->bufferMax()}); + bless $self, $class; + + # Set variables + $self->{oProtocol} = $oProtocol; + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self} + ); +} + +#################################################################################################################################### +# exists +#################################################################################################################################### +sub exists +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathExp, + ) = + logDebugParam + ( + __PACKAGE__ . '->exists', \@_, + {name => 'strPathExp'}, + ); + + my $bExists = $self->{oProtocol}->cmdExecute(OP_STORAGE_EXISTS, [$strPathExp]); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'bExists', value => $bExists} + ); +} + +#################################################################################################################################### +# list +#################################################################################################################################### +sub list +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathExp, + $rhParam, + ) = + logDebugParam + ( + __PACKAGE__ . '->list', \@_, + {name => 'strPathExp'}, + {name => 'rhParam', required => false}, + ); + + my @stryFileList = $self->{oProtocol}->cmdExecute(OP_STORAGE_LIST, [$strPathExp, $rhParam]); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'stryFileList', value => \@stryFileList} + ); +} + +#################################################################################################################################### +# manifest +#################################################################################################################################### +sub manifest +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathExp, + ) = + logDebugParam + ( + __PACKAGE__ . '->manifest', \@_, + {name => 'strPathExp'}, + ); + + my $hManifest = $self->{oProtocol}->cmdExecute(OP_STORAGE_MANIFEST, [$strPathExp]); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'hManifest', value => $hManifest, trace => true} + ); +} + +#################################################################################################################################### +# openRead +#################################################################################################################################### +sub openRead +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strFileExp, + $rhParam, + ) = + logDebugParam + ( + __PACKAGE__ . '->openRead', \@_, + {name => 'strFileExp'}, + {name => 'rhParam', required => false}, + ); + + my $bProtocolCompress = defined($rhParam->{bProtocolCompress}) && $rhParam->{bProtocolCompress}; + + # Compress on the remote side + if ($bProtocolCompress) + { + push( + @{$rhParam->{rhyFilter}}, + {strClass => STORAGE_FILTER_GZIP, + rxyParam => [{iLevel => optionGet(OPTION_COMPRESS_LEVEL_NETWORK), bWantGzip => false}]}); + delete($rhParam->{bProtocolCompress}); + } + + my $oSourceFileIo = + $self->{oProtocol}->cmdExecute(OP_STORAGE_OPEN_READ, [$strFileExp, $rhParam]) ? + new pgBackRest::Protocol::Storage::File($self->{oProtocol}) : undef; + + # Decompress on the local side + if ($bProtocolCompress) + { + $oSourceFileIo = new pgBackRest::Storage::Filter::Gzip( + $oSourceFileIo, {strCompressType => STORAGE_DECOMPRESS, bWantGzip => false}); + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oFileIo', value => $oSourceFileIo, trace => true}, + ); +} + +#################################################################################################################################### +# openWrite +#################################################################################################################################### +sub openWrite +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strFileExp, + $rhParam, + ) = + logDebugParam + ( + __PACKAGE__ . '->openWrite', \@_, + {name => 'strFileExp'}, + {name => 'rhParam', required => false}, + ); + + # Is protocol compression enabled? + my $bProtocolCompress = defined($rhParam->{bProtocolCompress}) && $rhParam->{bProtocolCompress}; + + # Decompress on the remote side + if ($bProtocolCompress) + { + push( + @{$rhParam->{rhyFilter}}, + {strClass => STORAGE_FILTER_GZIP, rxyParam => [{strCompressType => STORAGE_DECOMPRESS, bWantGzip => false}]}); + delete($rhParam->{bProtocolCompress}); + } + + # Open the remote file + $self->{oProtocol}->cmdWrite(OP_STORAGE_OPEN_WRITE, [$strFileExp, $rhParam]); + my $oDestinationFileIo = new pgBackRest::Protocol::Storage::File($self->{oProtocol}); + + # Compress on local side + if ($bProtocolCompress) + { + $oDestinationFileIo = new pgBackRest::Storage::Filter::Gzip( + $oDestinationFileIo, {iLevel => optionGet(OPTION_COMPRESS_LEVEL_NETWORK), bWantGzip => false}); + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oFileIo', value => $oDestinationFileIo, trace => true}, + ); +} + +#################################################################################################################################### +# pathGet +#################################################################################################################################### +sub pathGet +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathExp, + $rhParam, + ) = + logDebugParam + ( + __PACKAGE__ . '->pathGet', \@_, + {name => 'strPathExp', required => false}, + {name => 'rhParam', required => false}, + ); + + my $strPath = $self->{oProtocol}->cmdExecute(OP_STORAGE_PATH_GET, [$strPathExp, $rhParam]); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'strPath', value => $strPath} + ); +} + +#################################################################################################################################### +# move +#################################################################################################################################### +sub move +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strSourcePathExp, + $strDestinationPathExp, + $rhParam, + ) = + logDebugParam + ( + __PACKAGE__ . '->move', \@_, + {name => 'strSourcePathExp'}, + {name => 'strDestinationPathExp'}, + {name => 'rhParam', required => false}, + ); + + $self->{oProtocol}->cmdExecute(OP_STORAGE_MOVE, [$strSourcePathExp, $strDestinationPathExp, $rhParam], false); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation + ); +} + +#################################################################################################################################### +# getters +#################################################################################################################################### +sub protocol {shift->{oProtocol}}; + +1; diff --git a/lib/pgBackRest/Restore.pm b/lib/pgBackRest/Restore.pm index 3c22532dc..e99c9650e 100644 --- a/lib/pgBackRest/Restore.pm +++ b/lib/pgBackRest/Restore.pm @@ -17,13 +17,12 @@ use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Config::Config; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Manifest; use pgBackRest::RestoreFile; -use pgBackRest::Protocol::Common::Common; -use pgBackRest::Protocol::Local::Process; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Local::Process; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; use pgBackRest::Version; #################################################################################################################################### @@ -41,15 +40,7 @@ sub new my ($strOperation) = logDebugParam(__PACKAGE__ . '->new'); # Initialize protocol - $self->{oProtocol} = protocolGet(BACKUP); - - # Initialize default file object - $self->{oFile} = new pgBackRest::File - ( - optionGet(OPTION_STANZA), - optionGet(OPTION_REPO_PATH), - $self->{oProtocol} - ); + $self->{oProtocol} = !isRepoLocal() ? protocolGet(BACKUP) : undef; # Initialize variables $self->{strDbClusterPath} = optionGet(OPTION_DB_PATH); @@ -63,22 +54,6 @@ sub new ); } -#################################################################################################################################### -# DESTROY -#################################################################################################################################### -sub DESTROY -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my ($strOperation) = logDebugParam(__PACKAGE__ . '->DESTROY'); - - undef($self->{oFile}); - - # Return from function and log return values if any - return logDebugReturn($strOperation); -} - #################################################################################################################################### # manifestOwnershipCheck # @@ -226,18 +201,19 @@ sub manifestLoad my ($strOperation) = logDebugParam (__PACKAGE__ . '->manifestLoad'); # Error if the backup set does not exist - if (!$self->{oFile}->exists(PATH_BACKUP_CLUSTER, $self->{strBackupSet})) + if (!storageRepo()->exists(STORAGE_REPO_BACKUP . "/$self->{strBackupSet}/" . FILE_MANIFEST)) { - confess &log(ERROR, 'backup ' . $self->{strBackupSet} . ' does not exist'); + confess &log(ERROR, "backup '$self->{strBackupSet}' does not exist"); } # Copy the backup manifest to the db cluster path - $self->{oFile}->copy(PATH_BACKUP_CLUSTER, "$self->{strBackupSet}/" . FILE_MANIFEST, - PATH_DB_ABSOLUTE, $self->{strDbClusterPath} . '/' . FILE_MANIFEST); + storageDb()->copy( + storageRepo()->openRead(STORAGE_REPO_BACKUP . "/$self->{strBackupSet}/" . FILE_MANIFEST, {bProtocolCompress => true}), + $self->{strDbClusterPath} . '/' . FILE_MANIFEST); # Load the manifest into a hash - my $oManifest = new pgBackRest::Manifest($self->{oFile}->pathGet(PATH_DB_ABSOLUTE, - $self->{strDbClusterPath} . '/' . FILE_MANIFEST)); + my $oManifest = new pgBackRest::Manifest( + storageDb()->pathGet($self->{strDbClusterPath} . '/' . FILE_MANIFEST), undef, {oStorage => storageDb()}); # If backup is latest then set it equal to backup label, else verify that requested backup and label match my $strBackupLabel = $oManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_LABEL); @@ -486,6 +462,9 @@ sub clean {name => 'oManifest'} ); + # Db storage + my $oStorageDb = storageDb(); + # Track if files/links/paths where removed my %oRemoveHash = ( @@ -515,7 +494,7 @@ sub clean $strBasePath .= "/${strTargetPath}"; } - ${$self->{oTargetPath}}{$strTarget} = pathAbsolute($strBasePath, $strCheckPath); + ${$self->{oTargetPath}}{$strTarget} = $oStorageDb->pathAbsolute($strBasePath, $strCheckPath); $strCheckPath = ${$self->{oTargetPath}}{$strTarget}; @@ -528,7 +507,7 @@ sub clean &log(DETAIL, "check ${strCheckPath} exists"); # Check if the path exists - if (!$self->{oFile}->exists(PATH_DB_ABSOLUTE, $strCheckPath)) + if (!$oStorageDb->pathExists($strCheckPath)) { confess &log(ERROR, "cannot restore to missing path ${strCheckPath}", ERROR_PATH_MISSING); } @@ -541,7 +520,7 @@ sub clean $oManifest->get(MANIFEST_SECTION_BACKUP_TARGET, $strTarget, MANIFEST_SUBKEY_FILE); # Check if the file exists - if ($self->{oFile}->exists(PATH_DB_ABSOLUTE, $strCheckFile)) + if ($oStorageDb->exists($strCheckFile)) { # If the file exists and this is not a delta then error if (!$bDelta) @@ -564,14 +543,14 @@ sub clean ${$self->{oTargetPath}}{$strTarget} = "${$self->{oTargetPath}}{$strTarget}/" . $oManifest->tablespacePathGet(); # If this path does not exist then skip the rest of the checking - the path will be created later - if (!$self->{oFile}->exists(PATH_DB_ABSOLUTE, ${$self->{oTargetPath}}{$strTarget})) + if (!$oStorageDb->pathExists(${$self->{oTargetPath}}{$strTarget})) { next; } } # Build a manifest of the path to check for existing files - my $hTargetManifest = $self->{oFile}->manifest(PATH_DB_ABSOLUTE, ${$self->{oTargetPath}}{$strTarget}); + my $hTargetManifest = $oStorageDb->manifest(${$self->{oTargetPath}}{$strTarget}); for my $strName (keys(%{$hTargetManifest})) { @@ -605,14 +584,14 @@ sub clean &log(INFO, "remove invalid files/paths/links from ${$self->{oTargetPath}}{$strTarget}"); # OK for the special tablespace path to not exist yet - it will be created later - if (!$self->{oFile}->exists(PATH_DB_ABSOLUTE, ${$self->{oTargetPath}}{$strTarget}) && + if (!$oStorageDb->pathExists(${$self->{oTargetPath}}{$strTarget}) && $oManifest->isTargetTablespace($strTarget)) { next; } # Load path manifest so it can be compared to deleted files/paths/links that are not in the backup - my $hTargetManifest = $self->{oFile}->manifest(PATH_DB_ABSOLUTE, ${$self->{oTargetPath}}{$strTarget}); + my $hTargetManifest = $oStorageDb->manifest(${$self->{oTargetPath}}{$strTarget}); # If the target is a file it doesn't matter whether it already exists or not. if ($oManifest->isTargetFile($strTarget)) @@ -658,7 +637,7 @@ sub clean { &log(DETAIL, "set ownership ${strUser}:${strGroup} on ${strOsFile}"); - $self->{oFile}->owner(PATH_DB_ABSOLUTE, $strOsFile, $strUser, $strGroup); + $oStorageDb->owner($strOsFile, $strUser, $strGroup); } # If a link does not have the same destination, then delete it (it will be recreated later) @@ -668,7 +647,7 @@ sub clean $hTargetManifest->{$strName}{link_destination}) { &log(DETAIL, "remove link ${strOsFile} - destination changed"); - fileRemove($strOsFile); + $oStorageDb->remove($strOsFile); } } # Else if file/path mode does not match, fix it @@ -710,10 +689,10 @@ sub clean else { &log(DETAIL, "remove ${strType} ${strOsFile}"); - fileRemove($strOsFile); + $oStorageDb->remove($strOsFile); # Removing a file can be expensive so send protocol keep alive - $self->{oProtocol}->keepAlive(); + protocolKeepAlive(); $oRemoveHash{$strSection} += 1; } @@ -786,6 +765,9 @@ sub build {name => 'oManifest'} ); + # Db storage + my $oStorageDb = storageDb(); + # Create target paths (except for MANIFEST_TARGET_PGDATA because that must already exist) foreach my $strTarget ($oManifest->keys(MANIFEST_SECTION_BACKUP_TARGET)) { @@ -798,10 +780,10 @@ sub build $strPath = dirname($strPath); } - if (!$self->{oFile}->exists(PATH_DB_ABSOLUTE, $strPath)) + if (!$oStorageDb->pathExists($strPath)) { - $self->{oFile}->pathCreate(PATH_DB_ABSOLUTE, $strPath, - $oManifest->get(MANIFEST_SECTION_TARGET_PATH, $strTarget, MANIFEST_SUBKEY_MODE)); + $oStorageDb->pathCreate( + $strPath, {strMode => $oManifest->get(MANIFEST_SECTION_TARGET_PATH, $strTarget, MANIFEST_SUBKEY_MODE)}); # Set ownership (??? this could be done better inside the file functions) my $strUser = $oManifest->get(MANIFEST_SECTION_TARGET_PATH, $strTarget, MANIFEST_SUBKEY_USER); @@ -809,7 +791,7 @@ sub build if ($strUser ne getpwuid($<) || $strGroup ne getgrgid($()) { - $self->{oFile}->owner(PATH_DB_ABSOLUTE, $strPath, $strUser, $strGroup); + $oStorageDb->owner($strPath, $strUser, $strGroup); } } } @@ -850,13 +832,13 @@ sub build # If the path/link does not already exist then create it. The clean() method should have determined if the # permissions, destinations, etc. are correct - if (!$self->{oFile}->exists(PATH_DB_ABSOLUTE, $strDbPath)) + if (!$oStorageDb->pathExists($strDbPath) && !$oStorageDb->exists($strDbPath)) { # Create a path if ($strSection eq &MANIFEST_SECTION_TARGET_PATH) { - $self->{oFile}->pathCreate(PATH_DB_ABSOLUTE, $strDbPath, - $oManifest->get($strSection, $strName, MANIFEST_SUBKEY_MODE)); + $oStorageDb->pathCreate( + $strDbPath, {strMode => $oManifest->get($strSection, $strName, MANIFEST_SUBKEY_MODE)}); } # Else create a link else @@ -867,8 +849,10 @@ sub build # In order to create relative links they must be converted to absolute links and then made relative # again by linkCreate(). It's possible to modify linkCreate() to accept relative paths but that could # have an impact elsewhere and doesn't seem worth it. - $self->{oFile}->linkCreate(PATH_DB_ABSOLUTE, pathAbsolute(dirname($strDbPath), $strDestination), - PATH_DB_ABSOLUTE, $strDbPath, undef, (index($strDestination, '/') != 0)); + $oStorageDb->linkCreate( + $oStorageDb->pathAbsolute( + dirname($strDbPath), $strDestination), $strDbPath, + {bRelative => (index($strDestination, '/') != 0, bIgnoreExists => true)}); } # Set ownership (??? this could be done better inside the file functions) @@ -877,7 +861,7 @@ sub build if ($strUser ne getpwuid($<) || $strGroup ne getgrgid($()) { - $self->{oFile}->owner(PATH_DB_ABSOLUTE, $strDbPath, $strUser, $strGroup); + $oStorageDb->owner($strDbPath, $strUser, $strGroup); } } @@ -913,7 +897,7 @@ sub recovery my $strRecoveryConf = $self->{strDbClusterPath} . '/' . DB_FILE_RECOVERYCONF; # See if recovery.conf already exists - my $bRecoveryConfExists = $self->{oFile}->exists(PATH_DB_ABSOLUTE, $strRecoveryConf); + my $bRecoveryConfExists = storageDb()->exists($strRecoveryConf); # If RECOVERY_TYPE_PRESERVE then warn if recovery.conf does not exist and return if (optionTest(OPTION_TYPE, RECOVERY_TYPE_PRESERVE)) @@ -928,7 +912,7 @@ sub recovery # In all other cases the old recovery.conf should be removed if it exists if ($bRecoveryConfExists) { - $self->{oFile}->remove(PATH_DB_ABSOLUTE, $strRecoveryConf); + storageDb()->remove($strRecoveryConf); } # If RECOVERY_TYPE_NONE then return @@ -1040,13 +1024,16 @@ sub process # Assign function parameters, defaults, and log debug info my ($strOperation) = logDebugParam (__PACKAGE__ . '->process'); - if (!fileExists($self->{strDbClusterPath})) + # Db storage + my $oStorageDb = storageDb(); + + if (!$oStorageDb->pathExists($self->{strDbClusterPath})) { confess &log(ERROR, "\$PGDATA directory $self->{strDbClusterPath} does not exist"); } # Make sure that Postgres is not running - if ($self->{oFile}->exists(PATH_DB_ABSOLUTE, $self->{strDbClusterPath} . '/' . DB_FILE_POSTMASTERPID)) + if ($oStorageDb->exists($self->{strDbClusterPath} . '/' . DB_FILE_POSTMASTERPID)) { confess &log(ERROR, "unable to restore while PostgreSQL is running\n" . @@ -1057,8 +1044,8 @@ sub process # If the restore will be destructive attempt to verify that $PGDATA is valid if ((optionGet(OPTION_DELTA) || optionGet(OPTION_FORCE)) && - !($self->{oFile}->exists(PATH_DB_ABSOLUTE, $self->{strDbClusterPath} . '/' . DB_FILE_PGVERSION) || - $self->{oFile}->exists(PATH_DB_ABSOLUTE, $self->{strDbClusterPath} . '/' . FILE_MANIFEST))) + !($oStorageDb->exists($self->{strDbClusterPath} . '/' . DB_FILE_PGVERSION) || + $oStorageDb->exists($self->{strDbClusterPath} . '/' . FILE_MANIFEST))) { &log(WARN, '--delta or --force specified but unable to find \'' . DB_FILE_PGVERSION . '\' or \'' . FILE_MANIFEST . '\' in \'' . $self->{strDbClusterPath} . '\' to confirm that this is a valid $PGDATA directory.' . @@ -1070,12 +1057,13 @@ sub process } # Copy backup info, load it, then delete - $self->{oFile}->copy(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO, - PATH_DB_ABSOLUTE, $self->{strDbClusterPath} . '/' . FILE_BACKUP_INFO); + $oStorageDb->copy( + storageRepo()->openRead(STORAGE_REPO_BACKUP . qw(/) . FILE_BACKUP_INFO, {bProtocolCompress => true}), + $self->{strDbClusterPath} . '/' . FILE_BACKUP_INFO); - my $oBackupInfo = new pgBackRest::Backup::Info($self->{strDbClusterPath}, false); + my $oBackupInfo = new pgBackRest::Backup::Info($self->{strDbClusterPath}, false, undef, {oStorage => storageDb()}); - $self->{oFile}->remove(PATH_DB_ABSOLUTE, $self->{strDbClusterPath} . '/' . FILE_BACKUP_INFO, undef, false, true); + $oStorageDb->remove($self->{strDbClusterPath} . '/' . FILE_BACKUP_INFO); # If set to restore is latest then get the actual set if ($self->{strBackupSet} eq OPTION_DEFAULT_RESTORE_SET) @@ -1104,9 +1092,10 @@ sub process # Delete pg_control file. This will be copied from the backup at the very end to prevent a partially restored database # from being started by PostgreSQL. - $self->{oFile}->remove(PATH_DB_ABSOLUTE, $oManifest->dbPathGet( - $oManifest->get(MANIFEST_SECTION_BACKUP_TARGET, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_PATH), - MANIFEST_FILE_PGCONTROL), true, true); + $oStorageDb->remove( + $oManifest->dbPathGet( + $oManifest->get(MANIFEST_SECTION_BACKUP_TARGET, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_PATH), + MANIFEST_FILE_PGCONTROL)); # Clean the restore paths $self->clean($oManifest); @@ -1238,7 +1227,7 @@ sub process # Copy pg_control to a temporary file that will be renamed later if ($strRepoFile eq MANIFEST_TARGET_PGDATA . '/' . DB_FILE_PGCONTROL) { - $strDbFile .= '.' . BACKREST_EXE; + $strDbFile .= '.' . STORAGE_TEMP_EXT; } # Increment file size @@ -1272,26 +1261,32 @@ sub process # A keep-alive is required here because if there are a large number of resumed files that need to be checksummed # then the remote might timeout while waiting for a command. - $self->{oProtocol}->keepAlive(); + protocolKeepAlive(); } # Create recovery.conf file $self->recovery($oManifest->get(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_DB_VERSION)); # Sync db cluster path - $self->{oFile}->pathSync(PATH_DB_ABSOLUTE, $self->{strDbClusterPath}, true); + $oStorageDb->pathSync($self->{strDbClusterPath}, {bRecurse => true}); - # Copy pg_control last + # Move pg_control last &log(INFO, 'restore ' . $oManifest->dbPathGet(undef, MANIFEST_FILE_PGCONTROL) . - ' (copied last to ensure aborted restores cannot be started)'); + ' (performed last to ensure aborted restores cannot be started)'); - $self->{oFile}->move( - PATH_DB_ABSOLUTE, $self->{strDbClusterPath} . '/' . DB_FILE_PGCONTROL . '.' . BACKREST_EXE, - PATH_DB_ABSOLUTE, $self->{strDbClusterPath} . '/' . DB_FILE_PGCONTROL, undef, true); + $oStorageDb->move( + $self->{strDbClusterPath} . '/' . DB_FILE_PGCONTROL . '.' . STORAGE_TEMP_EXT, + $self->{strDbClusterPath} . '/' . DB_FILE_PGCONTROL); + + # Sync to be sure the rename of pg_control is persisted + $oStorageDb->pathSync($self->{strDbClusterPath}); # Finally remove the manifest to indicate the restore is complete - $self->{oFile}->remove(PATH_DB_ABSOLUTE, $self->{strDbClusterPath} . '/' . FILE_MANIFEST, undef, false, true); + $oStorageDb->remove($self->{strDbClusterPath} . '/' . FILE_MANIFEST); + + # Sync removal of the manifest + $oStorageDb->pathSync($self->{strDbClusterPath}); # Return from function and log return values if any return logDebugReturn($strOperation); diff --git a/lib/pgBackRest/RestoreFile.pm b/lib/pgBackRest/RestoreFile.pm index 37a034986..7ee8f8aa2 100644 --- a/lib/pgBackRest/RestoreFile.pm +++ b/lib/pgBackRest/RestoreFile.pm @@ -9,18 +9,20 @@ use Carp qw(confess); use Exporter qw(import); our @EXPORT = qw(); -use Fcntl qw(O_WRONLY O_CREAT O_TRUNC); use File::Basename qw(dirname); use File::stat qw(lstat); use pgBackRest::Common::Exception; +use pgBackRest::Common::Io::Handle; use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Manifest; -use pgBackRest::Protocol::Common::Common; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Base; +use pgBackRest::Storage::Filter::Gzip; +use pgBackRest::Storage::Filter::Sha; +use pgBackRest::Storage::Helper; #################################################################################################################################### # restoreFile @@ -33,7 +35,6 @@ sub restoreFile my ( $strOperation, - $oFile, # File object $strDbFile, $lSize, $lModificationTime, @@ -53,7 +54,6 @@ sub restoreFile logDebugParam ( __PACKAGE__ . '::restoreFile', \@_, - {name => 'oFile', trace => true}, {name => 'strDbFile', trace => true}, {name => 'lSize', trace => true}, {name => 'lModificationTime', trace => true}, @@ -71,35 +71,24 @@ sub restoreFile {name => 'bSourceCompressed', trace => true}, ); - # Copy flag and log message + # Does the file need to be copied? + my $oStorageDb = storageDb(); my $bCopy = true; if ($bZero) { $bCopy = false; - # Open the file truncating to zero bytes in case it already exists - my $hFile = fileOpen($strDbFile, O_WRONLY | O_CREAT | O_TRUNC, $strMode); + my $oDestinationFileIo = $oStorageDb->openWrite( + $strDbFile, {strMode => $strMode, strUser => $strUser, strGroup => $strGroup, lTimestamp => $lModificationTime}); + $oDestinationFileIo->open(); # Now truncate to the original size. This will create a sparse file which is very efficient for this use case. - truncate($hFile, $lSize); + truncate($oDestinationFileIo->handle(), $lSize); - # Sync the file - $hFile->sync() - or confess &log(ERROR, "unable to sync ${strDbFile}", ERROR_FILE_SYNC); - - # Close the file - close($hFile) - or confess &log(ERROR, "unable to close ${strDbFile}", ERROR_FILE_CLOSE); - - # Fix the timestamp - not really needed in this case but good for testing - utime($lModificationTime, $lModificationTime, $strDbFile) - or confess &log(ERROR, "unable to set time for ${strDbFile}"); - - # Set file ownership - $oFile->owner(PATH_DB_ABSOLUTE, $strDbFile, $strUser, $strGroup); + $oDestinationFileIo->close(); } - elsif ($oFile->exists(PATH_DB_ABSOLUTE, $strDbFile)) + elsif ($oStorageDb->exists($strDbFile)) { # Perform delta if requested if ($bDelta) @@ -118,7 +107,7 @@ sub restoreFile } else { - my ($strActualChecksum, $lActualSize) = $oFile->hashSize(PATH_DB_ABSOLUTE, $strDbFile); + my ($strActualChecksum, $lActualSize) = $oStorageDb->hashSize($strDbFile); if ($lActualSize == $lSize && ($lSize == 0 || $strActualChecksum eq $strChecksum)) { @@ -133,25 +122,38 @@ sub restoreFile } } - # Copy the file from the backup to the database + # Copy file from repository to database if ($bCopy) { - my ($bCopyResult, $strCopyChecksum, $lCopySize) = $oFile->copy( - PATH_BACKUP_CLUSTER, (defined($strReference) ? $strReference : $strBackupPath) . - "/${strRepoFile}" . ($bSourceCompressed ? '.' . $oFile->{strCompressExtension} : ''), - PATH_DB_ABSOLUTE, $strDbFile, - $bSourceCompressed, - undef, undef, - $lModificationTime, $strMode, - undef, - $strUser, $strGroup, - undef, undef, undef, undef, - false); # Don't copy via a temp file + # Add sha filter + my $rhyFilter = [{strClass => STORAGE_FILTER_SHA}]; - if ($lCopySize != 0 && $strCopyChecksum ne $strChecksum) + # Add compression + if ($bSourceCompressed) { - confess &log(ERROR, "error restoring ${strDbFile}: actual checksum ${strCopyChecksum} " . - "does not match expected checksum ${strChecksum}", ERROR_CHECKSUM); + unshift(@{$rhyFilter}, {strClass => STORAGE_FILTER_GZIP, rxyParam => [{strCompressType => STORAGE_DECOMPRESS}]}); + } + + # Open destination file + my $oDestinationFileIo = $oStorageDb->openWrite( + $strDbFile, + {strMode => $strMode, strUser => $strUser, strGroup => $strGroup, lTimestamp => $lModificationTime, + rhyFilter => $rhyFilter}); + + # Copy file + storageRepo()->copy( + storageRepo()->openRead( + STORAGE_REPO_BACKUP . qw(/) . (defined($strReference) ? $strReference : $strBackupPath) . + "/${strRepoFile}" . ($bSourceCompressed ? qw{.} . COMPRESS_EXT : ''), + {bProtocolCompress => !$bSourceCompressed && $lSize != 0}), + $oDestinationFileIo); + + # Validate checksum + if ($oDestinationFileIo->result(COMMON_IO_HANDLE) != 0 && $oDestinationFileIo->result(STORAGE_FILTER_SHA) ne $strChecksum) + { + confess &log(ERROR, + "error restoring ${strDbFile}: actual checksum '" . $oDestinationFileIo->digest() . + "' does not match expected checksum ${strChecksum}", ERROR_CHECKSUM); } } diff --git a/lib/pgBackRest/Stanza.pm b/lib/pgBackRest/Stanza.pm index b8c95ef89..239735800 100644 --- a/lib/pgBackRest/Stanza.pm +++ b/lib/pgBackRest/Stanza.pm @@ -20,17 +20,16 @@ use pgBackRest::Archive::ArchiveInfo; use pgBackRest::Backup::Info; use pgBackRest::Db; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::InfoCommon; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; #################################################################################################################################### # Global variables #################################################################################################################################### -my $strStanzaCreateErrorMsg = "not empty\n" . - "HINT: Use --force to force the stanza data to be created."; +my $strHintForce = "\nHINT: use stanza-create --force to force the stanza data to be created."; +my $strInfoMissing = " information missing"; +my $strStanzaCreateErrorMsg = "not empty" . $strHintForce; #################################################################################################################################### # CONSTRUCTOR @@ -106,51 +105,63 @@ sub stanzaCreate # Assign function parameters, defaults, and log debug info my ($strOperation) = logDebugParam(__PACKAGE__ . '->stanzaCreate'); - # Initialize default file object with protocol set to NONE meaning strictly local - my $oFile = new pgBackRest::File - ( - optionGet(OPTION_STANZA), - optionGet(OPTION_REPO_PATH), - protocolGet(NONE) - ); - # Get the parent paths (create if not exist) - my $strParentPathArchive = $self->parentPathGet($oFile, PATH_BACKUP_ARCHIVE); - my $strParentPathBackup = $self->parentPathGet($oFile, PATH_BACKUP_CLUSTER); + my $strParentPathArchive = $self->parentPathGet(STORAGE_REPO_ARCHIVE); + my $strParentPathBackup = $self->parentPathGet(STORAGE_REPO_BACKUP); # Get a listing of files in the directory, ignoring if any are missing - my @stryFileListArchive = fileList($strParentPathArchive, {bIgnoreMissing => true}); - my @stryFileListBackup = fileList($strParentPathBackup, {bIgnoreMissing => true}); + my @stryFileListArchive = storageRepo()->list($strParentPathArchive, {bIgnoreMissing => true}); + my @stryFileListBackup = storageRepo()->list($strParentPathBackup, {bIgnoreMissing => true}); - # If force not used and at least one directory is not empty, then check to see if the info files exist - if (!optionGet(OPTION_FORCE) && (@stryFileListArchive || @stryFileListBackup)) + # If force not used, then if files exist force should be required since create must have already occurred and reissuing a create + # needs to be a consciuos effort to rewrite the files + if (!optionGet(OPTION_FORCE)) { - my $strBackupInfoFile = &FILE_BACKUP_INFO; - my $strArchiveInfoFile = &ARCHIVE_INFO_FILE; - - # If either info file is not in the file list, then something exists in the directories so need to use force option - if (@stryFileListBackup && !grep(/^$strBackupInfoFile/i, @stryFileListBackup) - || @stryFileListArchive && !grep(/^$strArchiveInfoFile/i, @stryFileListArchive)) + # At least one directory is not empty, then check to see if the info files exist + if (@stryFileListArchive || @stryFileListBackup) { - confess &log(ERROR, - (@stryFileListBackup ? 'backup directory ' : '') . - ((@stryFileListBackup && @stryFileListArchive) ? 'and/or ' : '') . - (@stryFileListArchive ? 'archive directory ' : '') . - $strStanzaCreateErrorMsg, ERROR_PATH_NOT_EMPTY); + my $strBackupInfoFile = &FILE_BACKUP_INFO; + my $strArchiveInfoFile = &ARCHIVE_INFO_FILE; + + my $bBackupInfoFileExists = grep(/^$strBackupInfoFile$/i, @stryFileListBackup); + my $bArchiveInfoFileExists = grep(/^$strArchiveInfoFile$/i, @stryFileListArchive); + + # If the info file exists in one directory but is missing from the other directory then there is clearly a mismatch + # which requires force option + if (!$bArchiveInfoFileExists && $bBackupInfoFileExists) + { + confess &log(ERROR, 'archive' . $strInfoMissing . $strHintForce, ERROR_FILE_MISSING); + } + elsif (!$bBackupInfoFileExists && $bArchiveInfoFileExists) + { + confess &log(ERROR, 'backup' . $strInfoMissing . $strHintForce, ERROR_FILE_MISSING); + } + # If we get here then either both exist or neither exist so if neither file exists then something still exists in the + # directories since one or both of them are not empty so need to use force option + elsif (!$bArchiveInfoFileExists) + { + confess &log(ERROR, + (@stryFileListBackup ? 'backup directory ' : '') . + ((@stryFileListBackup && @stryFileListArchive) ? 'and/or ' : '') . + (@stryFileListArchive ? 'archive directory ' : '') . + $strStanzaCreateErrorMsg, ERROR_PATH_NOT_EMPTY); + } } } - # Create the archive.info file and local variables + # Instantiate the info objects. Throws an error and aborts if force not used and an error occurs during instantiation. + my $oArchiveInfo = $self->infoObject(STORAGE_REPO_ARCHIVE, $strParentPathArchive, {bRequired => false, bIgnoreMissing => true}); + my $oBackupInfo = $self->infoObject(STORAGE_REPO_BACKUP, $strParentPathBackup, {bRequired => false, bIgnoreMissing => true}); + + # Create the archive info object my ($iResult, $strResultMessage) = - $self->infoFileCreate((new pgBackRest::Archive::ArchiveInfo($strParentPathArchive, false)), $oFile, - PATH_BACKUP_ARCHIVE, $strParentPathArchive, \@stryFileListArchive); + $self->infoFileCreate($oArchiveInfo, STORAGE_REPO_ARCHIVE, $strParentPathArchive, \@stryFileListArchive); if ($iResult == 0) { # Create the backup.info file ($iResult, $strResultMessage) = - $self->infoFileCreate((new pgBackRest::Backup::Info($strParentPathBackup, false, false)), $oFile, - PATH_BACKUP_CLUSTER, $strParentPathBackup, \@stryFileListBackup); + $self->infoFileCreate($oBackupInfo, STORAGE_REPO_BACKUP, $strParentPathBackup, \@stryFileListBackup); } if ($iResult != 0) @@ -180,47 +191,29 @@ sub stanzaUpgrade # Assign function parameters, defaults, and log debug info my ($strOperation) = logDebugParam(__PACKAGE__ . '->stanzaUpgrade'); - # Initialize default file object with protocol set to NONE meaning strictly local - my $oFile = new pgBackRest::File - ( - optionGet(OPTION_STANZA), - optionGet(OPTION_REPO_PATH), - protocolGet(NONE) - ); - # Get the archive info and backup info files; if either does not exist an error will be thrown - my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($oFile->pathGet(PATH_BACKUP_ARCHIVE)); - my $oBackupInfo = new pgBackRest::Backup::Info($oFile->pathGet(PATH_BACKUP_CLUSTER)); + my $oArchiveInfo = $self->infoObject(STORAGE_REPO_ARCHIVE, storageRepo()->pathGet(STORAGE_REPO_ARCHIVE)); + my $oBackupInfo = $self->infoObject(STORAGE_REPO_BACKUP, storageRepo()->pathGet(STORAGE_REPO_BACKUP)); my $bBackupUpgraded = false; my $bArchiveUpgraded = false; # If the DB section does not match, then upgrade - if ($self->upgradeCheck($oBackupInfo, PATH_BACKUP_CLUSTER, ERROR_BACKUP_MISMATCH)) + if ($self->upgradeCheck($oBackupInfo, STORAGE_REPO_BACKUP, ERROR_BACKUP_MISMATCH)) { - # Determine if it is necessary to reconstruct the file - my ($bReconstruct, $strWarningMsgArchive) = - $self->reconstructCheck($oBackupInfo, PATH_BACKUP_CLUSTER, $oFile, $oFile->pathGet(PATH_BACKUP_CLUSTER)); - - # If reconstruction was required then save the reconstructed file - if ($bReconstruct) - { - $oBackupInfo->save(); - $bBackupUpgraded = true; - } + # Reconstruct the file and save it + my ($bReconstruct, $strWarningMsgArchive) = $oBackupInfo->reconstruct(false, false, $self->{oDb}{strDbVersion}, + $self->{oDb}{ullDbSysId}, $self->{oDb}{iControlVersion}, $self->{oDb}{iCatalogVersion}); + $oBackupInfo->save(); + $bBackupUpgraded = true; } - if ($self->upgradeCheck($oArchiveInfo, PATH_BACKUP_ARCHIVE, ERROR_ARCHIVE_MISMATCH)) + if ($self->upgradeCheck($oArchiveInfo, STORAGE_REPO_ARCHIVE, ERROR_ARCHIVE_MISMATCH)) { - # Determine if it is necessary to reconstruct the file - my ($bReconstruct, $strWarningMsgArchive) = - $self->reconstructCheck($oArchiveInfo, PATH_BACKUP_ARCHIVE, $oFile, $oFile->pathGet(PATH_BACKUP_ARCHIVE)); - - # If reconstruction was required then save the reconstructed file - if ($bReconstruct) - { - $oArchiveInfo->save(); - $bArchiveUpgraded = true; - } + # Reconstruct the file and save it + my ($bReconstruct, $strWarningMsgArchive) = $oArchiveInfo->reconstruct($self->{oDb}{strDbVersion}, + $self->{oDb}{ullDbSysId}); + $oArchiveInfo->save(); + $bArchiveUpgraded = true; } # If neither file needed upgrading then provide informational message that an upgrade was not necessary @@ -250,23 +243,21 @@ sub parentPathGet my ( $strOperation, - $oFile, $strPathType, ) = logDebugParam ( __PACKAGE__ . '->parentPathGet', \@_, - {name => 'oFile', trace => true}, {name => 'strPathType', trace => true}, ); - my $strParentPath = $oFile->pathGet($strPathType); + my $strParentPath = storageRepo()->pathGet($strPathType); # If the info path does not exist, create it - if (!fileExists($strParentPath)) + if (!storageRepo()->pathExists($strParentPath)) { # Create the cluster repo path - $oFile->pathCreate($strPathType, undef, undef, true, true); + storageRepo()->pathCreate($strPathType, {bIgnoreExists => true, bCreateParent => true}); } # Return from function and log return values if any @@ -277,6 +268,97 @@ sub parentPathGet ); } +#################################################################################################################################### +# infoObject +# +# Attempt to load an info object. Ignores missing files if directed. Throws an error and aborts if force not used and an error +# occurs during loading, else instatiates the object without loading it. +#################################################################################################################################### +sub infoObject +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathType, + $strParentPath, + $bRequired, + $bIgnoreMissing, + ) = + logDebugParam + ( + __PACKAGE__ . '->infoObject', \@_, + {name => 'strPathType'}, + {name => 'strParentPath'}, + {name => 'bRequired', optional => true, default => true}, + {name => 'bIgnoreMissing', optional => true, default => false}, + ); + + my $iResult = 0; + my $strResultMessage; + my $oInfo; + + # Turn off console logging to control when to display the error + logDisable(); + + # Instantiate the info object in an eval block to trap errors. If force is not used and an error occurs, throw the error + # along with a directive that force will need to be used to attempt to correct the issue + eval + { + # Ignore missing files if directed but if the info or info.copy file exists the exists flag will still be set and data will + # attempt to be loaded + $oInfo = ($strPathType eq STORAGE_REPO_BACKUP ? + new pgBackRest::Backup::Info($strParentPath, false, $bRequired, {bIgnoreMissing => $bIgnoreMissing}) : + new pgBackRest::Archive::ArchiveInfo($strParentPath, $bRequired, {bIgnoreMissing => $bIgnoreMissing})); + + # Reset the console logging + logEnable(); + return true; + } + or do + { + # Reset console logging and capture error information + logEnable(); + $iResult = exceptionCode($EVAL_ERROR); + $strResultMessage = exceptionMessage($EVAL_ERROR->message()); + }; + + if ($iResult != 0) + { + # If force was not used, and the file is missing, then confess the error with hint to use force if the option is + # configurable (force is not configurable for stanza-upgrade so this will always confess errors on stanza-upgrade) + # else confess all other errors + if ((optionValid(OPTION_FORCE) && !optionGet(OPTION_FORCE)) || + (!optionValid(OPTION_FORCE))) + { + if ($iResult == ERROR_FILE_MISSING) + { + confess &log(ERROR, (optionValid(OPTION_FORCE) ? $strResultMessage . $strHintForce : $strResultMessage), $iResult); + } + else + { + confess &log(ERROR, $strResultMessage, $iResult); + } + } + # Else instatiate the object without loading it so we can reconstruct and overwrite the invalid files + else + { + $oInfo = ($strPathType eq STORAGE_REPO_BACKUP ? + new pgBackRest::Backup::Info($strParentPath, false, false, {bLoad => false}) : + new pgBackRest::Archive::ArchiveInfo($strParentPath, false, {bLoad => false})); + } + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oInfo', value => $oInfo}, + ); +} + #################################################################################################################################### # infoFileCreate # @@ -291,7 +373,6 @@ sub infoFileCreate ( $strOperation, $oInfo, - $oFile, $strPathType, $strParentPath, $stryFileList, @@ -300,7 +381,6 @@ sub infoFileCreate ( __PACKAGE__ . '->infoFileCreate', \@_, {name => 'oInfo', trace => true}, - {name => 'oFile', trace => true}, {name => 'strPathType'}, {name => 'strParentPath'}, {name => 'stryFileList'}, @@ -309,14 +389,12 @@ sub infoFileCreate my $iResult = 0; my $strResultMessage = undef; my $strWarningMsgArchive = undef; - my $bReconstruct = true; - # If force was not used and the info file does not exist and the directory is not empty, then error # This should also be performed by the calling routine before this function is called, so this is just a safety check if (!optionGet(OPTION_FORCE) && !$oInfo->{bExists} && @$stryFileList) { - confess &log(ERROR, ($strPathType eq PATH_BACKUP_CLUSTER ? 'backup directory ' : 'archive directory ') . + confess &log(ERROR, ($strPathType eq STORAGE_REPO_BACKUP ? 'backup directory ' : 'archive directory ') . $strStanzaCreateErrorMsg, ERROR_PATH_NOT_EMPTY); } @@ -325,34 +403,36 @@ sub infoFileCreate eval { - ($bReconstruct, $strWarningMsgArchive) = $self->reconstructCheck($oInfo, $strPathType, $oFile, $strParentPath); - - if ($oInfo->exists() && $bReconstruct) + # Reconstruct the file from the data in the directory if there is any else initialize the file + if ($strPathType eq STORAGE_REPO_BACKUP) { - # If force was not used and the hashes are different then error - if (!optionGet(OPTION_FORCE)) - { - $iResult = ERROR_FILE_INVALID; - $strResultMessage = - ($strPathType eq PATH_BACKUP_CLUSTER ? 'backup file ' : 'archive file ') . "invalid\n" . - 'HINT: use stanza-upgrade if the database has been upgraded or use --force'; - } + $oInfo->reconstruct(false, false, $self->{oDb}{strDbVersion}, $self->{oDb}{ullDbSysId}, $self->{oDb}{iControlVersion}, + $self->{oDb}{iCatalogVersion}); + } + # If this is the archive.info reconstruction then catch any warnings + else + { + $strWarningMsgArchive = $oInfo->reconstruct($self->{oDb}{strDbVersion}, $self->{oDb}{ullDbSysId}); } - if ($iResult == 0) + # If the file exists on disk, then check if the reconstructed data is the same as what is on disk + if ($oInfo->exists()) { - # Save the reconstructed file - if ($bReconstruct) - { - $oInfo->save(); - } + my $oInfoOnDisk = + ($strPathType eq STORAGE_REPO_BACKUP ? + new pgBackRest::Backup::Info($strParentPath) : new pgBackRest::Archive::ArchiveInfo($strParentPath)); - # Sync path if requested - if (optionGet(OPTION_REPO_SYNC)) + # If the hashes are not the same + if ($oInfoOnDisk->hash() ne $oInfo->hash()) { - $oFile->pathSync( - PATH_BACKUP_ABSOLUTE, - defined($oInfo->{strArchiveClusterPath}) ? $oInfo->{strArchiveClusterPath} : $oInfo->{strBackupClusterPath}); + # If force was not used and the hashes are different then error + if (!optionGet(OPTION_FORCE)) + { + $iResult = ERROR_FILE_INVALID; + $strResultMessage = + ($strPathType eq STORAGE_REPO_BACKUP ? 'backup info file ' : 'archive info file ') . "invalid\n" . + 'HINT: use stanza-upgrade if the database has been upgraded or use --force'; + } } } @@ -368,6 +448,16 @@ sub infoFileCreate $strResultMessage = exceptionMessage($EVAL_ERROR->message()); }; + # If we got here without error then save the reconstructed file + if ($iResult == 0) + { + $oInfo->save(); + + # Sync path + storageRepo()->pathSync( + defined($oInfo->{strArchiveClusterPath}) ? $oInfo->{strArchiveClusterPath} : $oInfo->{strBackupClusterPath}); + } + # If a warning was issued, raise it if (defined($strWarningMsgArchive)) { @@ -411,73 +501,6 @@ sub dbInfoGet return logDebugReturn($strOperation); } -#################################################################################################################################### -# reconstructCheck -# -# Reconstruct the file based on disk data. If the info file already exists, it compares the reconstructed file to the existing file -# and indicates if reconstruction is required. If the file does not yet exist on disk, it will still indicate reconstruction is -# needed. The oInfo object contains the reconstructed data and can be saved by the calling routine. -#################################################################################################################################### -sub reconstructCheck -{ - my $self = shift; - - # Assign function parameters, defaults, and log debug info - my - ( - $strOperation, - $oInfo, - $strPathType, - $oFile, - $strParentPath, - ) = - logDebugParam - ( - __PACKAGE__ . '->reconstructCheck', \@_, - {name => 'oInfo'}, - {name => 'strPathType'}, - {name => 'oFile'}, - {name => 'strParentPath'}, - ); - - my $bReconstruct = true; - my $strWarningMsgArchive = undef; - - # Reconstruct the file from the data in the directory if there is any else initialize the file - if ($strPathType eq PATH_BACKUP_CLUSTER) - { - $oInfo->reconstruct(false, false, $self->{oDb}{strDbVersion}, $self->{oDb}{ullDbSysId}, $self->{oDb}{iControlVersion}, - $self->{oDb}{iCatalogVersion}); - } - # If this is the archive.info reconstruction then catch any warnings - else - { - $strWarningMsgArchive = $oInfo->reconstruct($oFile, $self->{oDb}{strDbVersion}, $self->{oDb}{ullDbSysId}); - } - - # If the file exists on disk, then check if the reconstructed data is the same as what is on disk - if ($oInfo->{bExists}) - { - my $oInfoOnDisk = - ($strPathType eq PATH_BACKUP_CLUSTER ? new pgBackRest::Backup::Info($strParentPath) - : new pgBackRest::Archive::ArchiveInfo($strParentPath)); - - # If the hashes are the same, then no need to reconstruct the file since it already exists and is valid - if ($oInfoOnDisk->hash() eq $oInfo->hash()) - { - $bReconstruct = false; - } - } - - # Return from function and log return values if any - return logDebugReturn - ( - $strOperation, - {name => 'bReconstruct', value => $bReconstruct}, - {name => 'strWarningMsgArchive', value => $strWarningMsgArchive}, - ); -} - #################################################################################################################################### # upgradeCheck # @@ -511,7 +534,7 @@ sub upgradeCheck eval { - ($strPathType eq PATH_BACKUP_CLUSTER) + ($strPathType eq STORAGE_REPO_BACKUP) ? $oInfo->check($self->{oDb}{strDbVersion}, $self->{oDb}{iControlVersion}, $self->{oDb}{iCatalogVersion}, $self->{oDb}{ullDbSysId}, true) : $oInfo->check($self->{oDb}{strDbVersion}, $self->{oDb}{ullDbSysId}, true); diff --git a/lib/pgBackRest/Storage/Base.pm b/lib/pgBackRest/Storage/Base.pm new file mode 100644 index 000000000..a0311b152 --- /dev/null +++ b/lib/pgBackRest/Storage/Base.pm @@ -0,0 +1,295 @@ +#################################################################################################################################### +# Base Storage Module +#################################################################################################################################### +package pgBackRest::Storage::Base; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Exporter qw(import); + our @EXPORT = qw(); +use File::Basename qw(dirname); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Io::Base; +use pgBackRest::Common::Log; + +#################################################################################################################################### +# Compress constants +#################################################################################################################################### +use constant STORAGE_COMPRESS => 'compress'; + push @EXPORT, qw(STORAGE_COMPRESS); +use constant STORAGE_DECOMPRESS => 'decompress'; + push @EXPORT, qw(STORAGE_DECOMPRESS); + +#################################################################################################################################### +# Capability constants +#################################################################################################################################### +use constant STORAGE_CAPABILITY_LINK => 'link'; + push @EXPORT, qw(STORAGE_CAPABILITY_LINK); + +#################################################################################################################################### +# new +#################################################################################################################################### +sub new +{ + my $class = shift; + + # Create the class hash + my $self = {}; + bless $self, $class; + + # Assign function parameters, defaults, and log debug info + ( + my $strOperation, + $self->{lBufferMax}, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'lBufferMax', optional => true, default => COMMON_IO_BUFFER_MAX, trace => true}, + ); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self} + ); +} + +#################################################################################################################################### +# copy - copy a file +#################################################################################################################################### +sub copy +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $xSourceFile, + $xDestinationFile, + ) = + logDebugParam + ( + __PACKAGE__ . '->copy', \@_, + {name => 'xSourceFile', required => false}, + {name => 'xDestinationFile', required => false}, + ); + + # Was the file copied? + my $bResult = false; + + # Is source an IO object or a file expression? + my $oSourceFileIo = + defined($xSourceFile) ? (ref($xSourceFile) ? $xSourceFile : $self->openRead($self->pathGet($xSourceFile))) : undef; + + # Proceed if source file exists + if (defined($oSourceFileIo)) + { + # Is destination an IO object or a file expression? + my $oDestinationFileIo = ref($xDestinationFile) ? $xDestinationFile : $self->openWrite($self->pathGet($xDestinationFile)); + + # Copy the data + my $lSizeRead; + + do + { + # Read data + my $tBuffer = ''; + + $lSizeRead = $oSourceFileIo->read(\$tBuffer, $self->{lBufferMax}); + $oDestinationFileIo->write(\$tBuffer); + } + while ($lSizeRead != 0); + + # Close files + $oSourceFileIo->close(); + $oDestinationFileIo->close(); + + # File was copied + $bResult = true; + } + + return logDebugReturn + ( + $strOperation, + {name => 'bResult', value => $bResult, trace => true}, + ); +} + +#################################################################################################################################### +# get - reads a buffer from storage all at once +#################################################################################################################################### +sub get +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $xFile, + ) = + logDebugParam + ( + __PACKAGE__ . '->get', \@_, + {name => 'xFile', required => false, trace => true}, + ); + + # Is this an IO object or a file expression? + my $oFileIo = defined($xFile) ? (ref($xFile) ? $xFile : $self->openRead($xFile)) : undef; + + # Read only if there is something to read from + my $tContent; + my $lSize = 0; + + if (defined($oFileIo)) + { + my $lSizeRead; + + do + { + $lSizeRead = $oFileIo->read(\$tContent, $self->{lBufferMax}); + $lSize += $lSizeRead; + } + while ($lSizeRead != 0); + + # Close the file + $oFileIo->close(); + + # If nothing was read then set to undef + if ($lSize == 0) + { + $tContent = undef; + } + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'rtContent', value => defined($oFileIo) ? \$tContent : undef, trace => true}, + ); +} + +#################################################################################################################################### +# pathAbsolute - generate an absolute path from an absolute base path and a relative path +#################################################################################################################################### +sub pathAbsolute +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strBasePath, + $strPath + ) = + logDebugParam + ( + __PACKAGE__ . '::pathAbsolute', \@_, + {name => 'strBasePath', trace => true}, + {name => 'strPath', trace => true} + ); + + # Working variables + my $strAbsolutePath; + + # If the path is already absolute + if (index($strPath, '/') == 0) + { + $strAbsolutePath = $strPath; + } + # Else make it absolute using the base path + else + { + # Make sure the absolute path is really absolute + if (index($strBasePath, '/') != 0 || index($strBasePath, '/..') != -1) + { + confess &log(ERROR, "${strBasePath} is not an absolute path", ERROR_PATH_TYPE); + } + + while (index($strPath, '..') == 0) + { + $strBasePath = dirname($strBasePath); + $strPath = substr($strPath, 2); + + if (index($strPath, '/') == 0) + { + $strPath = substr($strPath, 1); + } + } + + $strAbsolutePath = "${strBasePath}/${strPath}"; + } + + # Make sure the result is really an absolute path + if (index($strAbsolutePath, '/') != 0 || index($strAbsolutePath, '/..') != -1) + { + confess &log(ERROR, "result ${strAbsolutePath} was not an absolute path", ERROR_PATH_TYPE); + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'strAbsolutePath', value => $strAbsolutePath, trace => true} + ); +} + +#################################################################################################################################### +# put - writes a buffer out to storage all at once +#################################################################################################################################### +sub put +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $xFile, + $xContent, + ) = + logDebugParam + ( + __PACKAGE__ . '->put', \@_, + {name => 'xFile', trace => true}, + {name => 'xContent', required => false, trace => true}, + ); + + # Is this an IO object or a file expression? + my $oFileIo = ref($xFile) ? $xFile : $self->openWrite($xFile); + + # Determine size of content + my $lSize = defined($xContent) ? length(ref($xContent) ? $$xContent : $xContent) : 0; + + # Write only if there is something to write + if ($lSize > 0) + { + $oFileIo->write(ref($xContent) ? $xContent : \$xContent, $lSize); + } + # Else open the file so a zero length file is created (since file is not opened until first write) + else + { + $oFileIo->open(); + } + + # Close the file + $oFileIo->close(); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'lSize', value => $lSize, trace => true}, + ); +} + +1; diff --git a/lib/pgBackRest/Storage/Cifs/Driver.pm b/lib/pgBackRest/Storage/Cifs/Driver.pm new file mode 100644 index 000000000..8136984f5 --- /dev/null +++ b/lib/pgBackRest/Storage/Cifs/Driver.pm @@ -0,0 +1,54 @@ +#################################################################################################################################### +# CIFS Storage Driver +# +# Implements storage functions for Posix-compliant file systems. +#################################################################################################################################### +package pgBackRest::Storage::Cifs::Driver; +use parent 'pgBackRest::Storage::Posix::Driver'; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Exporter qw(import); + our @EXPORT = qw(); + +use pgBackRest::Common::Log; + +#################################################################################################################################### +# Package name constant +#################################################################################################################################### +use constant STORAGE_CIFS_DRIVER => __PACKAGE__; + push @EXPORT, qw(STORAGE_CIFS_DRIVER); + +#################################################################################################################################### +# pathSync - CIFS does not support path sync so this is a noop +#################################################################################################################################### +sub pathSync +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPath, + ) = + logDebugParam + ( + __PACKAGE__ . '->pathSync', \@_, + {name => 'strPath', trace => true}, + ); + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +#################################################################################################################################### +# Getters/Setters +#################################################################################################################################### +sub capability {false} +sub className {STORAGE_CIFS_DRIVER} + +1; diff --git a/lib/pgBackRest/Storage/Filter/Gzip.pm b/lib/pgBackRest/Storage/Filter/Gzip.pm new file mode 100644 index 000000000..fe574a45f --- /dev/null +++ b/lib/pgBackRest/Storage/Filter/Gzip.pm @@ -0,0 +1,263 @@ +#################################################################################################################################### +# GZIP Filter +#################################################################################################################################### +package pgBackRest::Storage::Filter::Gzip; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Compress::Raw::Zlib qw(WANT_GZIP MAX_WBITS Z_OK Z_BUF_ERROR Z_DATA_ERROR Z_STREAM_END); +use Exporter qw(import); + our @EXPORT = qw(); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Io::Base; +use pgBackRest::Common::Log; +use pgBackRest::Storage::Base; + +#################################################################################################################################### +# Package name constant +#################################################################################################################################### +use constant STORAGE_FILTER_GZIP => __PACKAGE__; + push @EXPORT, qw(STORAGE_FILTER_GZIP); + +#################################################################################################################################### +# CONSTRUCTOR +#################################################################################################################################### +our @ISA = (); ## no critic (ClassHierarchies::ProhibitExplicitISA) + +sub new +{ + my $class = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $self, + $bWantGzip, + $strCompressType, + $iLevel, + $lCompressBufferMax, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'self', trace => true}, + {name => 'bWantGzip', optional => true, default => true, trace => true}, + {name => 'strCompressType', optional => true, default => STORAGE_COMPRESS, trace => true}, + {name => 'iLevel', optional => true, default => 6, trace => true}, + {name => 'lCompressBufferMax', optional => true, default => COMMON_IO_BUFFER_MAX, trace => true}, + ); + + # Bless with new class + @ISA = $self->isA(); ## no critic (ClassHierarchies::ProhibitExplicitISA) + bless $self, $class; + + # Set variables + $self->{bWantGzip} = $bWantGzip; + $self->{iLevel} = $iLevel; + $self->{lCompressBufferMax} = $lCompressBufferMax; + $self->{strCompressType} = $strCompressType; + + # Set read/write + $self->{bWrite} = false; + + # Create the zlib object + my $iZLibStatus; + + if ($self->{strCompressType} eq STORAGE_COMPRESS) + { + ($self->{oZLib}, $iZLibStatus) = new Compress::Raw::Zlib::Deflate( + WindowBits => $self->{bWantGzip} ? WANT_GZIP : MAX_WBITS, Level => $self->{iLevel}, + Bufsize => $self->{lCompressBufferMax}, AppendOutput => 1); + + $self->{tCompressedBuffer} = undef; + } + else + { + ($self->{oZLib}, $iZLibStatus) = new Compress::Raw::Zlib::Inflate( + WindowBits => $self->{bWantGzip} ? WANT_GZIP : MAX_WBITS, Bufsize => $self->{lCompressBufferMax}, + LimitOutput => 1, AppendOutput => 1); + + $self->{tUncompressedBuffer} = undef; + $self->{lUncompressedBufferSize} = 0; + } + + $self->errorCheck($iZLibStatus); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self} + ); +} + +#################################################################################################################################### +# errorCheck - check status code for errors +#################################################################################################################################### +sub errorCheck +{ + my $self = shift; + my $iZLibStatus = shift; + + if (!($iZLibStatus == Z_OK || $iZLibStatus == Z_BUF_ERROR)) + { + logErrorResult( + $self->{bWrite} ? ERROR_FILE_WRITE : ERROR_FILE_READ, + 'unable to ' . ($self->{strCompressType} eq STORAGE_COMPRESS ? 'deflate' : 'inflate') . " '$self->{strName}'", + $self->{oZLib}->msg()); + } + + return Z_OK; +} + +#################################################################################################################################### +# read - compress/decompress data +#################################################################################################################################### +sub read +{ + my $self = shift; + my $rtBuffer = shift; + my $iSize = shift; + + if ($self->{strCompressType} eq STORAGE_COMPRESS) + { + my $lSizeBegin = defined($$rtBuffer) ? length($$rtBuffer) : 0; + my $lUncompressedSize; + my $lCompressedSize; + + do + { + my $tUncompressedBuffer; + $lUncompressedSize = $self->SUPER::read(\$tUncompressedBuffer, $iSize); + + if ($lUncompressedSize > 0) + { + $self->errorCheck($self->{oZLib}->deflate($tUncompressedBuffer, $$rtBuffer)); + } + else + { + $self->errorCheck($self->{oZLib}->flush($$rtBuffer)); + } + + $lCompressedSize = length($$rtBuffer) - $lSizeBegin; + } + while ($lUncompressedSize > 0 && $lCompressedSize < $iSize); + + # Return the actual size read + return $lCompressedSize; + } + else + { + # If the local buffer size is not large enough to satisfy the request and there is still data to decompress + if ($self->{lUncompressedBufferSize} < $iSize) + { + while ($self->{lUncompressedBufferSize} < $iSize) + { + if (!defined($self->{tCompressedBuffer}) || length($self->{tCompressedBuffer}) == 0) + { + $self->SUPER::read(\$self->{tCompressedBuffer}, $self->{lCompressBufferMax}); + } + + my $iZLibStatus = $self->{oZLib}->inflate($self->{tCompressedBuffer}, $self->{tUncompressedBuffer}); + $self->{lUncompressedBufferSize} = length($self->{tUncompressedBuffer}); + + last if $iZLibStatus == Z_STREAM_END; + + $self->errorCheck($iZLibStatus); + } + } + + # Actual size is the lesser of the local buffer size or requested size - if the local buffer is smaller than the requested size + # it means that there was nothing more to be read. + my $iActualSize = $self->{lUncompressedBufferSize} < $iSize ? $self->{lUncompressedBufferSize} : $iSize; + + # Append the to the request buffer + $$rtBuffer .= substr($self->{tUncompressedBuffer}, 0, $iActualSize); + + # Truncate local buffer + $self->{tUncompressedBuffer} = substr($self->{tUncompressedBuffer}, $iActualSize); + $self->{lUncompressedBufferSize} -= $iActualSize; + + # Return the actual size read + return $iActualSize; + } +} + +#################################################################################################################################### +# write - compress/decompress data +#################################################################################################################################### +sub write +{ + my $self = shift; + my $rtBuffer = shift; + + $self->{bWrite} = true; + + if ($self->{strCompressType} eq STORAGE_COMPRESS) + { + # Compress the data + $self->errorCheck($self->{oZLib}->deflate($$rtBuffer, $self->{tCompressedBuffer})); + + # Only write when buffer is full + if (defined($self->{tCompressedBuffer}) && length($self->{tCompressedBuffer}) > $self->{lCompressBufferMax}) + { + $self->SUPER::write(\$self->{tCompressedBuffer}); + $self->{tCompressedBuffer} = undef; + } + } + else + { + my $tCompressedBuffer = $$rtBuffer; + + while (length($tCompressedBuffer) > 0) + { + my $tUncompressedBuffer; + + my $iZLibStatus = $self->{oZLib}->inflate($tCompressedBuffer, $tUncompressedBuffer); + $self->SUPER::write(\$tUncompressedBuffer); + + last if $iZLibStatus == Z_STREAM_END; + + $self->errorCheck($iZLibStatus); + } + } + + # Return bytes written + return length($$rtBuffer); +} + +#################################################################################################################################### +# close - close the file +#################################################################################################################################### +sub close +{ + my $self = shift; + + if (defined($self->{oZLib})) + { + # Flush the write buffer + if ($self->{bWrite}) + { + if ($self->{strCompressType} eq STORAGE_COMPRESS) + { + # Flush out last compressed bytes + $self->errorCheck($self->{oZLib}->flush($self->{tCompressedBuffer})); + + # Write last compressed bytes + $self->SUPER::write(\$self->{tCompressedBuffer}); + } + } + + undef($self->{oZLib}); + + # Close io + return $self->SUPER::close(); + } +} + +1; diff --git a/lib/pgBackRest/Storage/Filter/Sha.pm b/lib/pgBackRest/Storage/Filter/Sha.pm new file mode 100644 index 000000000..71d429d0c --- /dev/null +++ b/lib/pgBackRest/Storage/Filter/Sha.pm @@ -0,0 +1,123 @@ +#################################################################################################################################### +# SHA Filter +#################################################################################################################################### +package pgBackRest::Storage::Filter::Sha; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Exporter qw(import); + our @EXPORT = qw(); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; + +#################################################################################################################################### +# Package name constant +#################################################################################################################################### +use constant STORAGE_FILTER_SHA => __PACKAGE__; + push @EXPORT, qw(STORAGE_FILTER_SHA); + +#################################################################################################################################### +# CONSTRUCTOR +#################################################################################################################################### +our @ISA = (); ## no critic (ClassHierarchies::ProhibitExplicitISA) + +sub new +{ + my $class = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $self, + $strAlgorithm, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'self', trace => true}, + {name => 'strAlgorithm', optional => true, default => 'sha1', trace => true}, + ); + + # Bless with new class + @ISA = $self->isA(); ## no critic (ClassHierarchies::ProhibitExplicitISA) + bless $self, $class; + + # Set variables + $self->{strAlgorithm} = $strAlgorithm; + + # Create SHA object + $self->{oSha} = Digest::SHA->new($self->{strAlgorithm}); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self} + ); +} + +#################################################################################################################################### +# read - calculate sha digest +#################################################################################################################################### +sub read +{ + my $self = shift; + my $rtBuffer = shift; + my $iSize = shift; + + # Call the io method + my $tShaBuffer; + my $iActualSize = $self->SUPER::read(\$tShaBuffer, $iSize); + + # Calculate sha for the returned buffer + if ($iActualSize > 0) + { + $self->{oSha}->add($tShaBuffer); + $$rtBuffer .= $tShaBuffer; + } + + # Return the actual size read + return $iActualSize; +} + +#################################################################################################################################### +# write - calculate sha digest +#################################################################################################################################### +sub write +{ + my $self = shift; + my $rtBuffer = shift; + + # Calculate sha for the buffer + $self->{oSha}->add($$rtBuffer); + + # Call the io method + return $self->SUPER::write($rtBuffer); +} + +#################################################################################################################################### +# close - close the file +#################################################################################################################################### +sub close +{ + my $self = shift; + + if (defined($self->{oSha})) + { + # Set result + $self->resultSet(STORAGE_FILTER_SHA, $self->{oSha}->hexdigest()); + + # Delete the sha object + delete($self->{oSha}); + + # Close io + return $self->SUPER::close(); + } +} + +1; diff --git a/lib/pgBackRest/Storage/Helper.pm b/lib/pgBackRest/Storage/Helper.pm new file mode 100644 index 000000000..9f89ef92d --- /dev/null +++ b/lib/pgBackRest/Storage/Helper.pm @@ -0,0 +1,130 @@ +#################################################################################################################################### +# Local Storage Helper +#################################################################################################################################### +package pgBackRest::Storage::Helper; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); + +use Exporter qw(import); + our @EXPORT = qw(); +use File::Basename qw(basename); + +use pgBackRest::Common::Log; +use pgBackRest::Config::Config; +use pgBackRest::Storage::Posix::Driver; +use pgBackRest::Storage::Local; +use pgBackRest::Version; + +#################################################################################################################################### +# Storage constants +#################################################################################################################################### +use constant STORAGE_LOCAL => ''; + push @EXPORT, qw(STORAGE_LOCAL); + +use constant STORAGE_SPOOL => ''; + push @EXPORT, qw(STORAGE_SPOOL); +use constant STORAGE_SPOOL_ARCHIVE_OUT => ''; + push @EXPORT, qw(STORAGE_SPOOL_ARCHIVE_OUT); + +#################################################################################################################################### +# Compression extension +#################################################################################################################################### +use constant COMPRESS_EXT => 'gz'; + push @EXPORT, qw(COMPRESS_EXT); + +#################################################################################################################################### +# Temp file extension +#################################################################################################################################### +use constant STORAGE_TEMP_EXT => BACKREST_EXE . '.tmp'; + push @EXPORT, qw(STORAGE_TEMP_EXT); + +#################################################################################################################################### +# Cache storage so it can be retrieved quickly +#################################################################################################################################### +my $hStorage; + +#################################################################################################################################### +# storageLocal - get local storage +# +# Local storage is generally read-only (except for locking) and can never reference a remote path. Used for adhoc activities like +# reading pgbackrest.conf. +#################################################################################################################################### +sub storageLocal +{ + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPath, + ) = + logDebugParam + ( + __PACKAGE__ . '::storageLocal', \@_, + {name => 'strPath', default => '/', trace => true}, + ); + + # Create storage if not defined + if (!defined($hStorage->{&STORAGE_LOCAL}{$strPath})) + { + # Create local storage + $hStorage->{&STORAGE_LOCAL}{$strPath} = new pgBackRest::Storage::Local( + $strPath, new pgBackRest::Storage::Posix::Driver(), + {strTempExtension => STORAGE_TEMP_EXT, + lBufferMax => optionValid(OPTION_BUFFER_SIZE, false) ? optionGet(OPTION_BUFFER_SIZE, false) : undef}); + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oStorageLocal', value => $hStorage->{&STORAGE_LOCAL}{$strPath}, trace => true}, + ); +} + +push @EXPORT, qw(storageLocal); + +#################################################################################################################################### +# storageSpool - get spool storage +#################################################################################################################################### +sub storageSpool +{ + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strStanza, + ) = + logDebugParam + ( + __PACKAGE__ . '::storageSpool', \@_, + {name => 'strStanza', default => optionGet(OPTION_STANZA), trace => true}, + ); + + # Create storage if not defined + if (!defined($hStorage->{&STORAGE_SPOOL}{$strStanza})) + { + # Path rules + my $hRule = + { + &STORAGE_SPOOL_ARCHIVE_OUT => "archive/${strStanza}/out", + }; + + # Create local storage + $hStorage->{&STORAGE_SPOOL}{$strStanza} = new pgBackRest::Storage::Local( + optionGet(OPTION_SPOOL_PATH), new pgBackRest::Storage::Posix::Driver(), + {hRule => $hRule, strTempExtension => STORAGE_TEMP_EXT, lBufferMax => optionGet(OPTION_BUFFER_SIZE)}); + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oStorageSpool', value => $hStorage->{&STORAGE_SPOOL}{$strStanza}, trace => true}, + ); +} + +push @EXPORT, qw(storageSpool); + +1; diff --git a/lib/pgBackRest/Storage/Local.pm b/lib/pgBackRest/Storage/Local.pm new file mode 100644 index 000000000..d18d5ac7b --- /dev/null +++ b/lib/pgBackRest/Storage/Local.pm @@ -0,0 +1,773 @@ +#################################################################################################################################### +# Local Storage +# +# Implements storage functionality using drivers. +#################################################################################################################################### +package pgBackRest::Storage::Local; +use parent 'pgBackRest::Storage::Base'; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use File::Basename qw(dirname); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; +use pgBackRest::Common::String; +use pgBackRest::Storage::Filter::Sha; + +#################################################################################################################################### +# new +#################################################################################################################################### +sub new +{ + my $class = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathBase, + $oDriver, + $hRule, + $bAllowTemp, + $strTempExtension, + $strDefaultPathMode, + $strDefaultFileMode, + $lBufferMax, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'strPathBase'}, + {name => 'oDriver'}, + {name => 'hRule', optional => true}, + {name => 'bAllowTemp', optional => true, default => true}, + {name => 'strTempExtension', optional => true, default => 'tmp'}, + {name => 'strDefaultPathMode', optional => true, default => '0750'}, + {name => 'strDefaultFileMode', optional => true, default => '0640'}, + {name => 'lBufferMax', optional => true}, + ); + + # Create class + my $self = $class->SUPER::new({lBufferMax => $lBufferMax}); + bless $self, $class; + + $self->{strPathBase} = $strPathBase; + $self->{oDriver} = $oDriver; + $self->{hRule} = $hRule; + $self->{bAllowTemp} = $bAllowTemp; + $self->{strTempExtension} = $strTempExtension; + $self->{strDefaultPathMode} = $strDefaultPathMode; + $self->{strDefaultFileMode} = $strDefaultFileMode; + + # Set temp extension in driver + $self->driver()->tempExtensionSet($self->{strTempExtension}) if $self->driver()->can('tempExtensionSet'); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self} + ); +} + +#################################################################################################################################### +# exists - check if file exists +#################################################################################################################################### +sub exists +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strFileExp, + ) = + logDebugParam + ( + __PACKAGE__ . '->exists', \@_, + {name => 'strFileExp'}, + ); + + # Check exists + my $bExists = $self->driver()->exists($self->pathGet($strFileExp)); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'bExists', value => $bExists} + ); +} + +#################################################################################################################################### +# hashSize - calculate sha1 hash and size of file +#################################################################################################################################### +sub hashSize +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $xFileExp, + ) = + logDebugParam + ( + __PACKAGE__ . '->hashSize', \@_, + {name => 'xFileExp'}, + ); + + # Set operation variables + my $strHash; + my $lSize; + + # Is this an IO object or a file expression? + my $oFileIo = defined($xFileExp) ? (ref($xFileExp) ? $xFileExp : $self->openRead($self->pathGet($xFileExp))) : undef; + + if (defined($oFileIo)) + { + $lSize = 0; + my $oShaIo = new pgBackRest::Storage::Filter::Sha($oFileIo); + my $lSizeRead; + + do + { + my $tContent; + $lSizeRead = $oShaIo->read(\$tContent, $self->{lBufferMax}); + $lSize += $lSizeRead; + } + while ($lSizeRead != 0); + + # Close the file + $oShaIo->close(); + + # Get the hash + $strHash = $oShaIo->result(STORAGE_FILTER_SHA); + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'strHash', value => $strHash}, + {name => 'lSize', value => $lSize} + ); +} + +#################################################################################################################################### +# info - get information for path/file +#################################################################################################################################### +sub info +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathFileExp, + $bIgnoreMissing, + ) = + logDebugParam + ( + __PACKAGE__ . '::fileStat', \@_, + {name => 'strPathFileExp'}, + {name => 'bIgnoreMissing', default => false}, + ); + + # Stat the path/file + my $oInfo = $self->driver()->info($self->pathGet($strPathFileExp), $bIgnoreMissing); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oInfo', value => $oInfo, trace => true} + ); +} + +#################################################################################################################################### +# linkCreate - create a link +#################################################################################################################################### +sub linkCreate +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strSourcePathFileExp, + $strDestinationLinkExp, + $bHard, + $bRelative, + $bPathCreate, + $bIgnoreExists, + ) = + logDebugParam + ( + __PACKAGE__ . '->linkCreate', \@_, + {name => 'strSourcePathFileExp'}, + {name => 'strDestinationLinkExp'}, + {name => 'bHard', optional=> true, default => false}, + {name => 'bRelative', optional=> true, default => false}, + {name => 'bPathCreate', optional=> true, default => true}, + {name => 'bIgnoreExists', optional => true, default => false}, + ); + + # Get source and destination paths + my $strSourcePathFile = $self->pathGet($strSourcePathFileExp); + my $strDestinationLink = $self->pathGet($strDestinationLinkExp); + + # Generate relative path if requested + if ($bRelative) + { + # Determine how much of the paths are common + my @strySource = split('/', $strSourcePathFile); + my @stryDestination = split('/', $strDestinationLink); + + while (defined($strySource[0]) && defined($stryDestination[0]) && $strySource[0] eq $stryDestination[0]) + { + shift(@strySource); + shift(@stryDestination); + } + + # Add relative path sections + $strSourcePathFile = ''; + + for (my $iIndex = 0; $iIndex < @stryDestination - 1; $iIndex++) + { + $strSourcePathFile .= '../'; + } + + # Add path to source + $strSourcePathFile .= join('/', @strySource); + + logDebugMisc + ( + $strOperation, 'apply relative path', + {name => 'strSourcePathFile', value => $strSourcePathFile, trace => true} + ); + } + + # Create the link + $self->driver()->linkCreate( + $strSourcePathFile, $strDestinationLink, {bHard => $bHard, bPathCreate => $bPathCreate, bIgnoreExists => $bIgnoreExists}); + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +#################################################################################################################################### +# list - list all files/paths in path +#################################################################################################################################### +sub list +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathExp, + $strExpression, + $strSortOrder, + $bIgnoreMissing, + ) = + logDebugParam + ( + __PACKAGE__ . '->list', \@_, + {name => 'strPathExp'}, + {name => 'strExpression', optional => true}, + {name => 'strSortOrder', optional => true, default => 'forward'}, + {name => 'bIgnoreMissing', optional => true, default => false}, + ); + + # Get file list + my $rstryFileList = $self->driver()->list($self->pathGet($strPathExp), {bIgnoreMissing => $bIgnoreMissing}); + + # Apply expression if defined + if (defined($strExpression)) + { + @{$rstryFileList} = grep(/$strExpression/i, @{$rstryFileList}); + } + + # Reverse sort + if ($strSortOrder eq 'reverse') + { + @{$rstryFileList} = sort {$b cmp $a} @{$rstryFileList}; + } + # Normal sort + else + { + @{$rstryFileList} = sort @{$rstryFileList}; + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'stryFileList', value => $rstryFileList} + ); +} + +#################################################################################################################################### +# manifest - build path/file/link manifest starting with base path and including all subpaths +#################################################################################################################################### +sub manifest +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathExp, + ) = + logDebugParam + ( + __PACKAGE__ . '->manifest', \@_, + {name => 'strPathExp'}, + ); + + my $hManifest = $self->driver()->manifest($self->pathGet($strPathExp)); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'hManifest', value => $hManifest, trace => true} + ); +} + +#################################################################################################################################### +# move - move path/file +#################################################################################################################################### +sub move +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strSourcePathFileExp, + $strDestinationPathFileExp, + $bPathCreate, + ) = + logDebugParam + ( + __PACKAGE__ . '->move', \@_, + {name => 'strSourcePathExp'}, + {name => 'strDestinationPathExp'}, + {name => 'bPathCreate', optional => true, default => false, trace => true}, + ); + + # Set operation variables + $self->driver()->move( + $self->pathGet($strSourcePathFileExp), $self->pathGet($strDestinationPathFileExp), {bPathCreate => $bPathCreate}); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation + ); +} + +#################################################################################################################################### +# openRead - open file for reading +#################################################################################################################################### +sub openRead +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $xFileExp, + $bIgnoreMissing, + $rhyFilter, + ) = + logDebugParam + ( + __PACKAGE__ . '->openRead', \@_, + {name => 'xFileExp'}, + {name => 'bIgnoreMissing', optional => true, default => false}, + {name => 'rhyFilter', optional => true}, + ); + + # Need to push this down to drivers so errors do not appear in the log + my $oFileIo = $self->driver()->openRead($self->pathGet($xFileExp), {bIgnoreMissing => $bIgnoreMissing}); + + # Apply filters if file is defined + if (defined($rhyFilter) && defined($oFileIo)) + { + foreach my $rhFilter (@{$rhyFilter}) + { + $oFileIo = $rhFilter->{strClass}->new($oFileIo, @{$rhFilter->{rxyParam}}); + } + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oFileIo', value => $oFileIo, trace => true}, + ); +} + +#################################################################################################################################### +# openWrite - open file for writing +#################################################################################################################################### +sub openWrite +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $xFileExp, + $strMode, + $strUser, + $strGroup, + $lTimestamp, + $bAtomic, + $bPathCreate, + $rhyFilter, + ) = + logDebugParam + ( + __PACKAGE__ . '->openWrite', \@_, + {name => 'xFileExp'}, + {name => 'strMode', optional => true, default => $self->{strDefaultFileMode}}, + {name => 'strUser', optional => true}, + {name => 'strGroup', optional => true}, + {name => 'lTimestamp', optional => true}, + {name => 'bAtomic', optional => true, default => false}, + {name => 'bPathCreate', optional => true, default => false}, + {name => 'rhyFilter', optional => true}, + ); + + # Open the file + my $oFileIo = $self->driver()->openWrite($self->pathGet($xFileExp), + {strMode => $strMode, strUser => $strUser, strGroup => $strGroup, lTimestamp => $lTimestamp, bPathCreate => $bPathCreate, + bAtomic => $bAtomic}); + + # Apply filters if file is defined + if (defined($rhyFilter)) + { + foreach my $rhFilter (reverse(@{$rhyFilter})) + { + $oFileIo = $rhFilter->{strClass}->new($oFileIo, @{$rhFilter->{rxyParam}}); + } + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oFileIo', value => $oFileIo, trace => true}, + ); +} + +#################################################################################################################################### +# owner - change ownership of path/file +#################################################################################################################################### +sub owner +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathFileExp, + $strUser, + $strGroup + ) = + logDebugParam + ( + __PACKAGE__ . '->owner', \@_, + {name => 'strPathFileExp'}, + {name => 'strUser', required => false}, + {name => 'strGroup', required => false} + ); + + # Set ownership + $self->driver()->owner($self->pathGet($strPathFileExp), {strUser => $strUser, strGroup => $strGroup}); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation + ); +} + +#################################################################################################################################### +# pathCreate - create path +#################################################################################################################################### +sub pathCreate +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathExp, + $strMode, + $bIgnoreExists, + $bCreateParent, + ) = + logDebugParam + ( + __PACKAGE__ . '->pathCreate', \@_, + {name => 'strPathExp'}, + {name => 'strMode', optional => true, default => $self->{strDefaultPathMode}}, + {name => 'bIgnoreExists', optional => true, default => false}, + {name => 'bCreateParent', optional => true, default => false}, + ); + + # Create path + $self->driver()->pathCreate( + $self->pathGet($strPathExp), {strMode => $strMode, bIgnoreExists => $bIgnoreExists, bCreateParent => $bCreateParent}); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation + ); +} + +#################################################################################################################################### +# pathExists - check if path exists +#################################################################################################################################### +sub pathExists +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathExp, + ) = + logDebugParam + ( + __PACKAGE__ . '->pathExists', \@_, + {name => 'strPathExp'}, + ); + + # Check exists + my $bExists = $self->driver()->pathExists($self->pathGet($strPathExp)); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'bExists', value => $bExists} + ); +} + +#################################################################################################################################### +# pathGet - resolve a path expression into an absolute path +#################################################################################################################################### +sub pathGet +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathExp, # File that that needs to be translated to a path + $bTemp, # Return the temp file name + ) = + logDebugParam + ( + __PACKAGE__ . '->pathGet', \@_, + {name => 'strPathExp', required => false, trace => true}, + {name => 'bTemp', optional => true, default => false, trace => true}, + ); + + # Path and file to be returned + my $strPath; + my $strFile; + + # Is this an absolute path type? + my $bAbsolute = false; + + if (defined($strPathExp) && index($strPathExp, qw(/)) == 0) + { + $bAbsolute = true; + $strPath = $strPathExp; + } + else + { + # Is it a rule type + if (defined($strPathExp) && index($strPathExp, qw(<)) == 0) + { + # Extract the rule type + my $iPos = index($strPathExp, qw(>)); + + if ($iPos == -1) + { + confess &log(ASSERT, "found < but not > in '${strPathExp}'"); + } + + my $strType = substr($strPathExp, 0, $iPos + 1); + + # Extract the filename + if ($iPos < length($strPathExp) - 1) + { + $strFile = substr($strPathExp, $iPos + 2); + } + + # Lookup the rule + if (!defined($self->{hRule}->{$strType})) + { + confess &log(ASSERT, "storage rule '${strType}' does not exist"); + } + + # If rule is a ref then call the function + if (ref($self->{hRule}->{$strType})) + { + $strPath = $self->pathBase(); + $strFile = $self->{hRule}{$strType}{fnRule}->($strType, $strFile, $self->{hRule}{$strType}{xData}); + } + # Else get the path + else + { + $strPath = $self->pathBase() . ($self->pathBase() =~ /\/$/ ? '' : qw{/}) . $self->{hRule}->{$strType}; + } + } + # Else it must be relative + else + { + $strPath = $self->pathBase(); + $strFile = $strPathExp; + } + } + + # Make sure a temp file is valid for this type and file + if ($bTemp) + { + # Error when temp files are not allowed + if (!$self->{bAllowTemp}) + { + confess &log(ASSERT, "temp file not supported for storage '" . $self->pathBase() . "'"); + } + + # The file must be defined + if (!$bAbsolute) + { + if (!defined($strFile)) + { + confess &log(ASSERT, 'file part must be defined when temp file specified'); + } + } + } + + # Combine path and file + $strPath .= defined($strFile) ? ($strPath =~ /\/$/ ? '' : qw{/}) . "${strFile}" : ''; + + # Add temp extension + $strPath .= $bTemp ? ".$self->{strTempExtension}" : ''; + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'strPath', value => $strPath, trace => true} + ); +} + +#################################################################################################################################### +# pathSync - perform driver sync operation on path +#################################################################################################################################### +sub pathSync +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathExp, + $bRecurse, + ) = + logDebugParam + ( + __PACKAGE__ . '->pathSync', \@_, + {name => 'strPathExp'}, + {name => 'bRecurse', default => false}, + ); + + $self->driver()->pathSync($self->pathGet($strPathExp), {bRecurse => true}); + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +#################################################################################################################################### +# remove - remove path/file +#################################################################################################################################### +sub remove +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $xstryPathFileExp, + $bIgnoreMissing, + $bRecurse, + ) = + logDebugParam + ( + __PACKAGE__ . '->remove', \@_, + {name => 'strPathFileExp'}, + {name => 'bIgnoreMissing', optional => true, default => true}, + {name => 'bRecurse', optional => true, default => false, trace => true}, + ); + + # Evaluate expressions for all files + my @stryPathFileExp; + + if (ref($xstryPathFileExp)) + { + foreach my $strPathFileExp (@{$xstryPathFileExp}) + { + push(@stryPathFileExp, $self->pathGet($strPathFileExp)); + } + } + + # Remove path(s)/file(s) + my $bRemoved = $self->driver()->remove( + ref($xstryPathFileExp) ? \@stryPathFileExp : $self->pathGet($xstryPathFileExp), + {bIgnoreMissing => $bIgnoreMissing, bRecurse => $bRecurse}); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'bRemoved', value => $bRemoved} + ); +} + +#################################################################################################################################### +# Getters +#################################################################################################################################### +sub pathBase {shift->{strPathBase}} +sub driver {shift->{oDriver}} + +1; diff --git a/lib/pgBackRest/Storage/Posix/Driver.pm b/lib/pgBackRest/Storage/Posix/Driver.pm new file mode 100644 index 000000000..26bc398bc --- /dev/null +++ b/lib/pgBackRest/Storage/Posix/Driver.pm @@ -0,0 +1,1000 @@ +#################################################################################################################################### +# Posix Storage Driver +# +# Implements storage functions for Posix-compliant file systems. +#################################################################################################################################### +package pgBackRest::Storage::Posix::Driver; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Exporter qw(import); + our @EXPORT = qw(); +use File::Basename qw(basename dirname); +use Fcntl qw(:mode); +use File::stat qw{lstat}; + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; +use pgBackRest::Storage::Base; +use pgBackRest::Storage::Posix::FileRead; +use pgBackRest::Storage::Posix::FileWrite; + +#################################################################################################################################### +# Package name constant +#################################################################################################################################### +use constant STORAGE_POSIX_DRIVER => __PACKAGE__; + push @EXPORT, qw(STORAGE_POSIX_DRIVER); + +#################################################################################################################################### +# new +#################################################################################################################################### +sub new +{ + my $class = shift; + + # Create the class hash + my $self = {}; + bless $self, $class; + + # Assign function parameters, defaults, and log debug info + ( + my $strOperation, + $self->{bFileSync}, + $self->{bPathSync}, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'bFileSync', optional => true, default => true, trace => true}, + {name => 'bPathSync', optional => true, default => true, trace => true}, + ); + + # Set default temp extension + $self->{strTempExtension} = 'tmp'; + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self, trace => true} + ); +} + +#################################################################################################################################### +# exists - check if a path or file exists +#################################################################################################################################### +sub exists +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strFile, + ) = + logDebugParam + ( + __PACKAGE__ . '->exists', \@_, + {name => 'strFile', trace => true}, + ); + + # Does the path/file exist? + my $bExists = true; + my $oStat = lstat($strFile); + + # Use stat to test if file exists + if (defined($oStat)) + { + # Check that it is actually a file + $bExists = !S_ISDIR($oStat->mode) ? true : false; + } + else + { + # If the error is not entry missing, then throw error + if (!$OS_ERROR{ENOENT}) + { + logErrorResult(ERROR_FILE_EXISTS, "unable to test if file '${strFile}' exists", $OS_ERROR); + } + + $bExists = false; + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'bExists', value => $bExists, trace => true} + ); +} + +#################################################################################################################################### +# info - get information for path/file +#################################################################################################################################### +sub info +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPathFile, + $bIgnoreMissing, + ) = + logDebugParam + ( + __PACKAGE__ . '->info', \@_, + {name => 'strFile', trace => true}, + {name => 'bIgnoreMissing', default => false, trace => true}, + ); + + # Stat the path/file + my $oInfo = lstat($strPathFile); + + # Check for errors + if (!defined($oInfo)) + { + if (!($OS_ERROR{ENOENT} && $bIgnoreMissing)) + { + logErrorResult($OS_ERROR{ENOENT} ? ERROR_FILE_MISSING : ERROR_FILE_OPEN, "unable to stat '${strPathFile}'", $OS_ERROR); + } + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oInfo', value => $oInfo, trace => true} + ); +} + +#################################################################################################################################### +# linkCreate +#################################################################################################################################### +sub linkCreate +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strSourcePathFile, + $strDestinationLink, + $bHard, + $bPathCreate, + $bIgnoreExists, + ) = + logDebugParam + ( + __PACKAGE__ . '->linkCreate', \@_, + {name => 'strSourcePathFile', trace => true}, + {name => 'strDestinationLink', trace => true}, + {name => 'bHard', optional=> true, default => false, trace => true}, + {name => 'bPathCreate', optional=> true, default => true, trace => true}, + {name => 'bIgnoreExists', optional => true, default => false, trace => true}, + ); + + if (!($bHard ? link($strSourcePathFile, $strDestinationLink) : symlink($strSourcePathFile, $strDestinationLink))) + { + my $strMessage = "unable to create link '${strDestinationLink}'"; + + # If parent path or source is missing + if ($OS_ERROR{ENOENT}) + { + # Check if source is missing + if (!$self->exists($strSourcePathFile)) + { + confess &log(ERROR, "${strMessage} because source '${strSourcePathFile}' does not exist", ERROR_FILE_MISSING); + } + + if (!$bPathCreate) + { + confess &log(ERROR, "${strMessage} because parent does not exist", ERROR_PATH_MISSING); + } + + # Create parent path + $self->pathCreate(dirname($strDestinationLink), {bIgnoreExists => true, bCreateParent => true}); + + # Create link + $self->linkCreate($strSourcePathFile, $strDestinationLink, {bHard => $bHard}); + } + # Else if link already exists + elsif ($OS_ERROR{EEXIST}) + { + if (!$bIgnoreExists) + { + confess &log(ERROR, "${strMessage} because it already exists", ERROR_PATH_EXISTS); + } + } + else + { + logErrorResult(ERROR_PATH_CREATE, ${strMessage}, $OS_ERROR); + } + } + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +#################################################################################################################################### +# linkDestination - get destination of symlink +#################################################################################################################################### +sub linkDestination +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strLink, + ) = + logDebugParam + ( + __PACKAGE__ . '->linkDestination', \@_, + {name => 'strLink', trace => true}, + ); + + # Get link destination + my $strLinkDestination = readlink($strLink); + + # Check for errors + if (!defined($strLinkDestination)) + { + logErrorResult( + $OS_ERROR{ENOENT} ? ERROR_FILE_MISSING : ERROR_FILE_OPEN, "unable to get destination for link ${strLink}", $OS_ERROR); + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'strLinkDestination', value => $strLinkDestination, trace => true} + ); +} + +#################################################################################################################################### +# list - list all files/paths in path +#################################################################################################################################### +sub list +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPath, + $bIgnoreMissing, + ) = + logDebugParam + ( + __PACKAGE__ . '->list', \@_, + {name => 'strPath', trace => true}, + {name => 'bIgnoreMissing', optional => true, default => false, trace => true}, + ); + + # Working variables + my @stryFileList; + my $hPath; + + # Attempt to open the path + if (opendir($hPath, $strPath)) + { + @stryFileList = grep(!/^(\.)|(\.\.)$/i, readdir($hPath)); + close($hPath); + } + # Else process errors + else + { + # Ignore the error if the file is missing and missing files should be ignored + if (!($OS_ERROR{ENOENT} && $bIgnoreMissing)) + { + logErrorResult($OS_ERROR{ENOENT} ? ERROR_FILE_MISSING : ERROR_FILE_OPEN, "unable to read path '${strPath}'", $OS_ERROR); + } + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'stryFileList', value => \@stryFileList, ref => true, trace => true} + ); +} + +#################################################################################################################################### +# manifest - build path/file/link manifest starting with base path and including all subpaths +#################################################################################################################################### +sub manifest +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPath, + ) = + logDebugParam + ( + __PACKAGE__ . '->manifest', \@_, + {name => 'strPath', trace => true}, + ); + + # Generate the manifest + my $hManifest = {}; + $self->manifestRecurse($strPath, undef, 0, $hManifest); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'hManifest', value => $hManifest, trace => true} + ); +} + +sub manifestRecurse +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPath, + $strSubPath, + $iDepth, + $hManifest, + ) = + logDebugParam + ( + __PACKAGE__ . '::manifestRecurse', \@_, + {name => 'strPath', trace => true}, + {name => 'strSubPath', required => false, trace => true}, + {name => 'iDepth', default => 0, trace => true}, + {name => 'hManifest', required => false, trace => true}, + ); + + # Set operation and debug strings + my $strPathRead = $strPath . (defined($strSubPath) ? "/${strSubPath}" : ''); + my $hPath; + my $strFilter; + + # If this is the top level stat the path to discover if it is actually a file + if ($iDepth == 0 && !S_ISDIR(($self->info($strPathRead))->mode)) + { + $strFilter = basename($strPathRead); + $strPathRead = dirname($strPathRead); + } + + # Get a list of all files in the path (including .) + my @stryFileList = @{$self->list($strPathRead, {bIgnoreMissing => $iDepth != 0})}; + unshift(@stryFileList, '.'); + my $hFileStat = $self->manifestList($strPathRead, \@stryFileList); + + # Loop through all subpaths/files in the path + foreach my $strFile (keys(%{$hFileStat})) + { + # Skip this file if it does not match the filter + if (defined($strFilter) && $strFile ne $strFilter) + { + next; + } + + my $strManifestFile = $iDepth == 0 ? $strFile : ($strSubPath . ($strFile eq qw(.) ? '' : "/${strFile}")); + $hManifest->{$strManifestFile} = $hFileStat->{$strFile}; + + # Recurse into directories + if ($hManifest->{$strManifestFile}{type} eq 'd' && $strFile ne qw(.)) + { + $self->manifestRecurse($strPath, $strManifestFile, $iDepth + 1, $hManifest); + } + } + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +sub manifestList +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPath, + $stryFile, + ) = + logDebugParam + ( + __PACKAGE__ . '->manifestList', \@_, + {name => 'strPath', trace => true}, + {name => 'stryFile', trace => true}, + ); + + my $hFileStat = {}; + + foreach my $strFile (@{$stryFile}) + { + $hFileStat->{$strFile} = $self->manifestStat("${strPath}" . ($strFile eq qw(.) ? '' : "/${strFile}")); + + if (!defined($hFileStat->{$strFile})) + { + delete($hFileStat->{$strFile}); + } + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'hFileStat', value => $hFileStat, trace => true} + ); +} + +sub manifestStat +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strFile, + ) = + logDebugParam + ( + __PACKAGE__ . '->manifestStat', \@_, + {name => 'strFile', trace => true}, + ); + + # Stat the path/file, ignoring any that are missing + my $oStat = $self->info($strFile, {bIgnoreMissing => true}); + + # Generate file data if stat succeeded (i.e. file exists) + my $hFile; + + if (defined($oStat)) + { + # Check for regular file + if (S_ISREG($oStat->mode)) + { + $hFile->{type} = 'f'; + + # Get size + $hFile->{size} = $oStat->size; + + # Get modification time + $hFile->{modification_time} = $oStat->mtime; + } + # Check for directory + elsif (S_ISDIR($oStat->mode)) + { + $hFile->{type} = 'd'; + } + # Check for link + elsif (S_ISLNK($oStat->mode)) + { + $hFile->{type} = 'l'; + $hFile->{link_destination} = $self->linkDestination($strFile); + } + # Not a recognized type + else + { + confess &log(ERROR, "${strFile} is not of type directory, file, or link", ERROR_FILE_INVALID); + } + + # Get user name + $hFile->{user} = getpwuid($oStat->uid); + + # Get group name + $hFile->{group} = getgrgid($oStat->gid); + + # Get mode + if ($hFile->{type} ne 'l') + { + $hFile->{mode} = sprintf('%04o', S_IMODE($oStat->mode)); + } + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'hFile', value => $hFile, trace => true} + ); +} + +#################################################################################################################################### +# move - move path/file +#################################################################################################################################### +sub move +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strSourceFile, + $strDestinationFile, + $bPathCreate, + ) = + logDebugParam + ( + __PACKAGE__ . '->move', \@_, + {name => 'strSourceFile', trace => true}, + {name => 'strDestinationFile', trace => true}, + {name => 'bPathCreate', default => false, trace => true}, + ); + + # Get source and destination paths + my $strSourcePathFile = dirname($strSourceFile); + my $strDestinationPathFile = dirname($strDestinationFile); + + # Move the file + if (!rename($strSourceFile, $strDestinationFile)) + { + my $strMessage = "unable to move '${strSourceFile}'"; + + # If something is missing determine if it is the source or destination + if ($OS_ERROR{ENOENT}) + { + if (!$self->exists($strSourceFile)) + { + logErrorResult(ERROR_FILE_MISSING, "${strMessage} because it is missing"); + } + + if ($bPathCreate) + { + # Attempt to create the path - ignore exists here in case another process creates it first + $self->pathCreate($strDestinationPathFile, {bCreateParent => true, bIgnoreExists => true}); + + # Try move again + $self->move($strSourceFile, $strDestinationFile); + } + else + { + logErrorResult(ERROR_PATH_MISSING, "${strMessage} to missing path '${strDestinationPathFile}'"); + } + } + # Else raise the error + else + { + logErrorResult(ERROR_FILE_MOVE, "${strMessage} to '${strDestinationFile}'", $OS_ERROR); + } + } + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +#################################################################################################################################### +# openRead - open file for reading +#################################################################################################################################### +sub openRead +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strFile, + $bIgnoreMissing, + ) = + logDebugParam + ( + __PACKAGE__ . '->openRead', \@_, + {name => 'strFile', trace => true}, + {name => 'bIgnoreMissing', optional => true, default => false, trace => true}, + ); + + my $oFileIO = new pgBackRest::Storage::Posix::FileRead($self, $strFile, {bIgnoreMissing => $bIgnoreMissing}); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oFileIO', value => $oFileIO, trace => true}, + ); +} + +#################################################################################################################################### +# openWrite - open file for writing +#################################################################################################################################### +sub openWrite +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strFile, + $strMode, + $strUser, + $strGroup, + $lTimestamp, + $bPathCreate, + $bAtomic, + ) = + logDebugParam + ( + __PACKAGE__ . '->openWrite', \@_, + {name => 'strFile', trace => true}, + {name => 'strMode', optional => true, trace => true}, + {name => 'strUser', optional => true, trace => true}, + {name => 'strGroup', optional => true, trace => true}, + {name => 'lTimestamp', optional => true, trace => true}, + {name => 'bPathCreate', optional => true, trace => true}, + {name => 'bAtomic', optional => true, trace => true}, + ); + + my $oFileIO = new pgBackRest::Storage::Posix::FileWrite( + $self, $strFile, + {strMode => $strMode, strUser => $strUser, strGroup => $strGroup, lTimestamp => $lTimestamp, bPathCreate => $bPathCreate, + bAtomic => $bAtomic, bSync => $self->{bFileSync}}); + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'oFileIO', value => $oFileIO, trace => true}, + ); +} + +#################################################################################################################################### +# owner - change ownership of path/file +#################################################################################################################################### +sub owner +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strFilePath, + $strUser, + $strGroup, + ) = + logDebugParam + ( + __PACKAGE__ . '->owner', \@_, + {name => 'strFilePath', trace => true}, + {name => 'strUser', optional => true, trace => true}, + {name => 'strGroup', optional => true, trace => true}, + ); + + # Only proceed if user or group was specified + if (defined($strUser) || defined($strGroup)) + { + my $strMessage = "unable to set ownership for '${strFilePath}'"; + my $iUserId; + my $iGroupId; + + # If the user or group is not defined then get it by stat'ing the file. This is because the chown function requires that + # both user and group be set. + if (!(defined($strUser) && defined($strGroup))) + { + my $oStat = $self->info($strFilePath); + + if (!defined($strUser)) + { + $iUserId = $oStat->uid; + } + + if (!defined($strGroup)) + { + $iGroupId = $oStat->gid; + } + } + + # Lookup user if specified + if (defined($strUser)) + { + $iUserId = getpwnam($strUser); + + if (!defined($iUserId)) + { + logErrorResult(ERROR_FILE_OWNER, "${strMessage} because user '${strUser}' does not exist"); + } + } + + # Lookup group if specified + if (defined($strGroup)) + { + $iGroupId = getgrnam($strGroup); + + if (!defined($iGroupId)) + { + logErrorResult(ERROR_FILE_OWNER, "${strMessage} because group '${strGroup}' does not exist"); + } + } + + # Set ownership on the file + if (!chown($iUserId, $iGroupId, $strFilePath)) + { + if ($OS_ERROR{ENOENT}) + { + logErrorResult(ERROR_FILE_OWNER, "${strMessage} because it is missing"); + } + + logErrorResult(ERROR_FILE_OWNER, "${strMessage}", $OS_ERROR); + } + } + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +#################################################################################################################################### +# pathCreate - create path +#################################################################################################################################### +sub pathCreate +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPath, + $strMode, + $bIgnoreExists, + $bCreateParent, + ) = + logDebugParam + ( + __PACKAGE__ . '->pathCreate', \@_, + {name => 'strPath', trace => true}, + {name => 'strMode', optional => true, default => '0750', trace => true}, + {name => 'bIgnoreExists', optional => true, default => false, trace => true}, + {name => 'bCreateParent', optional => true, default => false, trace => true}, + ); + + # Attempt to create the directory + if (!mkdir($strPath, oct($strMode))) + { + my $strMessage = "unable to create path '${strPath}'"; + + # If parent path is missing + if ($OS_ERROR{ENOENT}) + { + if (!$bCreateParent) + { + confess &log(ERROR, "${strMessage} because parent does not exist", ERROR_PATH_MISSING); + } + + # Create parent path + $self->pathCreate(dirname($strPath), {strMode => $strMode, bIgnoreExists => true, bCreateParent => $bCreateParent}); + + # Create path + $self->pathCreate($strPath, {strMode => $strMode, bIgnoreExists => true}); + } + # Else if path already exists + elsif ($OS_ERROR{EEXIST}) + { + if (!$bIgnoreExists) + { + confess &log(ERROR, "${strMessage} because it already exists", ERROR_PATH_EXISTS); + } + } + else + { + logErrorResult(ERROR_PATH_CREATE, ${strMessage}, $OS_ERROR); + } + } + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +#################################################################################################################################### +# pathExists - check if path exists +#################################################################################################################################### +sub pathExists +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPath, + ) = + logDebugParam + ( + __PACKAGE__ . '->pathExists', \@_, + {name => 'strPath', trace => true}, + ); + + # Does the path/file exist? + my $bExists = true; + my $oStat = lstat($strPath); + + # Use stat to test if path exists + if (defined($oStat)) + { + # Check that it is actually a path + $bExists = S_ISDIR($oStat->mode) ? true : false; + } + else + { + # If the error is not entry missing, then throw error + if (!$OS_ERROR{ENOENT}) + { + logErrorResult(ERROR_FILE_EXISTS, "unable to test if path '${strPath}' exists", $OS_ERROR); + } + + $bExists = false; + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'bExists', value => $bExists, trace => true} + ); +} + +#################################################################################################################################### +# pathSync - perform fsync on path +#################################################################################################################################### +sub pathSync +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $strPath, + $bRecurse, + ) = + logDebugParam + ( + __PACKAGE__ . '->pathSync', \@_, + {name => 'strPath', trace => true}, + {name => 'bRecurse', default => false, trace => true}, + ); + + if ($bRecurse) + { + my $oManifest = $self->manifest($strPath); + + # Iterate all files in the manifest + foreach my $strFile (sort(keys(%{$oManifest}))) + { + # Only sync if this is a directory + if ($oManifest->{$strFile}{type} eq 'd') + { + # If current directory + if ($strFile eq '.') + { + $self->pathSync($strPath); + } + # Else a subdirectory + else + { + $self->pathSync("${strPath}/${strFile}"); + } + } + } + } + else + { + open(my $hPath, "<", $strPath) + or confess &log(ERROR, "unable to open '${strPath}' for sync", ERROR_PATH_OPEN); + open(my $hPathDup, ">&", $hPath) + or confess &log(ERROR, "unable to duplicate '${strPath}' handle for sync", ERROR_PATH_OPEN); + + $hPathDup->sync() + or confess &log(ERROR, "unable to sync path '${strPath}'", ERROR_PATH_SYNC); + + close($hPathDup); + close($hPath); + } + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +#################################################################################################################################### +# remove - remove path/file +#################################################################################################################################### +sub remove +{ + my $self = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $xstryPathFile, + $bIgnoreMissing, + $bRecurse, + ) = + logDebugParam + ( + __PACKAGE__ . '->remove', \@_, + {name => 'xstryPathFile', trace => true}, + {name => 'bIgnoreMissing', optional => true, default => false, trace => true}, + {name => 'bRecurse', optional => true, default => false, trace => true}, + ); + + # Working variables + my $bRemoved = true; + + # Remove a tree + if ($bRecurse) + { + my $oManifest = $self->manifest($xstryPathFile); + + # Iterate all files in the manifest + foreach my $strFile (sort({$b cmp $a} keys(%{$oManifest}))) + { + # remove directory + if ($oManifest->{$strFile}{type} eq 'd') + { + my $xstryPathFileRemove = $strFile eq '.' ? $xstryPathFile : "${xstryPathFile}/${strFile}"; + + if (!rmdir($xstryPathFileRemove)) + { + # If any error but missing then raise the error + if (!$OS_ERROR{ENOENT}) + { + logErrorResult(ERROR_PATH_REMOVE, "unable to remove path '${strFile}'", $OS_ERROR); + } + } + } + # Remove file + else + { + $self->remove("${xstryPathFile}/${strFile}", {bIgnoreMissing => true}); + } + } + } + # Only remove the specified file + else + { + foreach my $strFile (ref($xstryPathFile) ? @{$xstryPathFile} : ($xstryPathFile)) + { + if (unlink($strFile) != 1) + { + $bRemoved = false; + + # If path exists then throw the error + if (!($OS_ERROR{ENOENT} && $bIgnoreMissing)) + { + logErrorResult( + $OS_ERROR{ENOENT} ? ERROR_FILE_MISSING : ERROR_FILE_OPEN, "unable to remove file '${strFile}'", $OS_ERROR); + } + } + } + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'bRemoved', value => $bRemoved, trace => true} + ); +} + +#################################################################################################################################### +# Getters/Setters +#################################################################################################################################### +sub capability {true} +sub className {STORAGE_POSIX_DRIVER} +sub tempExtension {shift->{strTempExtension}} +sub tempExtensionSet {my $self = shift; $self->{strTempExtension} = shift} + +1; diff --git a/lib/pgBackRest/Storage/Posix/FileRead.pm b/lib/pgBackRest/Storage/Posix/FileRead.pm new file mode 100644 index 000000000..5dce51b73 --- /dev/null +++ b/lib/pgBackRest/Storage/Posix/FileRead.pm @@ -0,0 +1,104 @@ +#################################################################################################################################### +# Posix File Read +#################################################################################################################################### +package pgBackRest::Storage::Posix::FileRead; +use parent 'pgBackRest::Common::Io::Handle'; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Fcntl qw(O_RDONLY); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; + +#################################################################################################################################### +# CONSTRUCTOR +#################################################################################################################################### +sub new +{ + my $class = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $oDriver, + $strName, + $bIgnoreMissing, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'oDriver', trace => true}, + {name => 'strName', trace => true}, + {name => 'bIgnoreMissing', optional => true, default => false, trace => true}, + ); + + # Open the file + my $fhFile; + + if (!sysopen($fhFile, $strName, O_RDONLY)) + { + if (!($OS_ERROR{ENOENT} && $bIgnoreMissing)) + { + logErrorResult($OS_ERROR{ENOENT} ? ERROR_FILE_MISSING : ERROR_FILE_OPEN, "unable to open '${strName}'", $OS_ERROR); + } + + undef($fhFile); + } + + # Create IO object if open succeeded + my $self; + + if (defined($fhFile)) + { + # Set file mode to binary + binmode($fhFile); + + # Create the class hash + $self = $class->SUPER::new("'${strName}'", $fhFile); + bless $self, $class; + + # Set variables + $self->{oDriver} = $oDriver; + $self->{strName} = $strName; + $self->{fhFile} = $fhFile; + } + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self, trace => true} + ); +} + +#################################################################################################################################### +# close - close the file +#################################################################################################################################### +sub close +{ + my $self = shift; + + if (defined($self->handle())) + { + # Close the file + close($self->handle()); + undef($self->{fhFile}); + + # Close parent + $self->SUPER::close(); + } + + return true; +} + +#################################################################################################################################### +# Getters +#################################################################################################################################### +sub handle {shift->{fhFile}} + +1; diff --git a/lib/pgBackRest/Storage/Posix/FileWrite.pm b/lib/pgBackRest/Storage/Posix/FileWrite.pm new file mode 100644 index 000000000..6e3e95496 --- /dev/null +++ b/lib/pgBackRest/Storage/Posix/FileWrite.pm @@ -0,0 +1,192 @@ +#################################################################################################################################### +# Posix File Write +#################################################################################################################################### +package pgBackRest::Storage::Posix::FileWrite; +use parent 'pgBackRest::Common::Io::Handle'; + +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Fcntl qw(O_RDONLY O_WRONLY O_CREAT O_TRUNC); +use File::Basename qw(dirname); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; + +use pgBackRest::Common::Io::Handle; +use pgBackRest::Storage::Base; + +#################################################################################################################################### +# CONSTRUCTOR +#################################################################################################################################### +sub new +{ + my $class = shift; + + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $oDriver, + $strName, + $strMode, + $strUser, + $strGroup, + $lTimestamp, + $bPathCreate, + $bAtomic, + $bSync, + ) = + logDebugParam + ( + __PACKAGE__ . '->new', \@_, + {name => 'oDriver', trace => true}, + {name => 'strName', trace => true}, + {name => 'strMode', optional => true, trace => true}, + {name => 'strUser', optional => true, trace => true}, + {name => 'strGroup', optional => true, trace => true}, + {name => 'lTimestamp', optional => true, trace => true}, + {name => 'bPathCreate', optional => true, default => false, trace => true}, + {name => 'bAtomic', optional => true, default => false, trace => true}, + {name => 'bSync', optional => true, default => true, trace => true}, + ); + + # Create the class hash + my $self = $class->SUPER::new("'${strName}'"); + bless $self, $class; + + # Set variables + $self->{oDriver} = $oDriver; + $self->{strName} = $strName; + $self->{strMode} = $strMode; + $self->{strUser} = $strUser; + $self->{strGroup} = $strGroup; + $self->{lTimestamp} = $lTimestamp; + $self->{bPathCreate} = $bPathCreate; + $self->{bAtomic} = $bAtomic; + $self->{bSync} = $bSync; + + # If atomic create temp filename + if ($self->{bAtomic}) + { + # Create temp file name + $self->{strNameTmp} = "$self->{strName}." . $self->{oDriver}->tempExtension(); + } + + # Open file on first write to avoid creating extraneous files on error + $self->{bOpened} = false; + + # Return from function and log return values if any + return logDebugReturn + ( + $strOperation, + {name => 'self', value => $self, trace => true} + ); +} + +#################################################################################################################################### +# open - open the file +#################################################################################################################################### +sub open +{ + my $self = shift; + + # Get the file name + my $strFile = $self->{bAtomic} ? $self->{strNameTmp} : $self->{strName}; + + # Open the file + if (!sysopen( + $self->{fhFile}, $strFile, O_WRONLY | O_CREAT | O_TRUNC, oct(defined($self->{strMode}) ? $self->{strMode} : '0666'))) + { + # If the path does not exist create it if requested + if ($OS_ERROR{ENOENT} && $self->{bPathCreate}) + { + $self->{oDriver}->pathCreate(dirname($strFile), {bIgnoreExists => true, bCreateParent => true}); + $self->{bPathCreate} = false; + return $self->open(); + } + } + + # Set file mode to binary + binmode($self->{fhFile}); + + # Set the owner + $self->{oDriver}->owner($strFile, {strUser => $self->{strUser}, strGroup => $self->{strGroup}}); + + # Set handle + $self->handleWriteSet($self->{fhFile}); + + # Mark file as opened + $self->{bOpened} = true; + + return true; +} + +#################################################################################################################################### +# write - write data to a file +#################################################################################################################################### +sub write +{ + my $self = shift; + my $rtBuffer = shift; + + # Open file if it is not open already + $self->open() if !$self->opened(); + + return $self->SUPER::write($rtBuffer); +} + +#################################################################################################################################### +# close - close the file +#################################################################################################################################### +sub close +{ + my $self = shift; + + if (defined($self->handle())) + { + # Sync the file + if ($self->{bSync}) + { + $self->handle()->sync(); + } + + # Close the file + close($self->handle()); + undef($self->{fhFile}); + + # Get current filename + my $strCurrentName = $self->{bAtomic} ? $self->{strNameTmp} : $self->{strName}; + + # Set the modification time + if (defined($self->{lTimestamp})) + { + utime(time(), $self->{lTimestamp}, $strCurrentName) + or logErrorResult(ERROR_FILE_WRITE, "unable to set time for '${strCurrentName}'", $OS_ERROR); + } + + # Move the file from temp to final if atomic + if ($self->{bAtomic}) + { + $self->{oDriver}->move($strCurrentName, $self->{strName}); + } + + # Set result + $self->resultSet(COMMON_IO_HANDLE, $self->{lSize}); + + # Close parent + $self->SUPER::close(); + } + + return true; +} + +#################################################################################################################################### +# Getters +#################################################################################################################################### +sub opened {shift->{bOpened}} +sub handle {shift->{fhFile}} + +1; diff --git a/test/Vagrantfile b/test/Vagrantfile index 2df2dba8e..4defe91ec 100644 --- a/test/Vagrantfile +++ b/test/Vagrantfile @@ -5,7 +5,10 @@ Vagrant.configure(2) do |config| end config.vm.box = "ubuntu/xenial64" - config.vm.box_version = "20170311.0.0" + config.vm.box_version = "20170603.0.0" + + # vagrant plugin install vagrant-disksize + # config.disksize.size = '64GB' config.vm.provider :virtualbox do |vb| vb.name = "pgbackrest-test" diff --git a/test/expect/archive-get-001.log b/test/expect/archive-get-001.log index 225bded4b..4d1607207 100644 --- a/test/expect/archive-get-001.log +++ b/test/expect/archive-get-001.log @@ -3,21 +3,19 @@ run 001 - rmt 0, cmp 0, exists 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info.copy +P00 ERROR: [055]: unable to open [TEST_PATH]/db-master/repo/archive/db/archive.info or [TEST_PATH]/db-master/repo/archive/db/archive.info.copy P00 ERROR: [055]: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? @@ -32,7 +30,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -85,7 +83,8 @@ db-version="9.4" stop all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo +P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -95,7 +94,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000090000000900000009 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG, strSourceArchive = 000000090000000900000009 P00 ERROR: [062]: stop file exists for all stanzas @@ -109,7 +108,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 62 start all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo +P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -119,28 +118,24 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000090000000900000009 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG, strSourceArchive = 000000090000000900000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000090000000900000009, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000090000000900000009, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000090000000900000009 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000090000000900000009-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000900000009, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000090000000900000009 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000090000000900000009-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000900000009, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = [undef], strArchiveId = 9.4-1 P00 INFO: unable to find 000000090000000900000009 in the archive diff --git a/test/expect/archive-get-002.log b/test/expect/archive-get-002.log index 77048d950..6ae699c79 100644 --- a/test/expect/archive-get-002.log +++ b/test/expect/archive-get-002.log @@ -3,21 +3,19 @@ run 002 - rmt 0, cmp 0, exists 1 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info.copy +P00 ERROR: [055]: unable to open [TEST_PATH]/db-master/repo/archive/db/archive.info or [TEST_PATH]/db-master/repo/archive/db/archive.info.copy P00 ERROR: [055]: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? @@ -32,7 +30,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -84,31 +82,30 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -119,31 +116,30 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000010000000100000002 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strSourceArchive = 000000010000000100000002 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000002, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000002, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000002 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000002-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000002 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000002-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -154,31 +150,30 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000010000000100000003 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strSourceArchive = 000000010000000100000003 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000003, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000003, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000003 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000003-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000003 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000003-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] diff --git a/test/expect/archive-get-003.log b/test/expect/archive-get-003.log index c73bec21a..be1ba6b82 100644 --- a/test/expect/archive-get-003.log +++ b/test/expect/archive-get-003.log @@ -3,21 +3,19 @@ run 003 - rmt 0, cmp 1, exists 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info.copy +P00 ERROR: [055]: unable to open [TEST_PATH]/db-master/repo/archive/db/archive.info or [TEST_PATH]/db-master/repo/archive/db/archive.info.copy P00 ERROR: [055]: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? @@ -32,7 +30,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -85,7 +83,8 @@ db-version="9.4" stop all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo +P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -95,7 +94,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000090000000900000009 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG, strSourceArchive = 000000090000000900000009 P00 ERROR: [062]: stop file exists for all stanzas @@ -109,7 +108,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 62 start all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo +P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -119,28 +118,24 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000090000000900000009 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG, strSourceArchive = 000000090000000900000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000090000000900000009, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000090000000900000009, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000090000000900000009 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000090000000900000009-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000900000009, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000090000000900000009 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000090000000900000009-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000900000009, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = [undef], strArchiveId = 9.4-1 P00 INFO: unable to find 000000090000000900000009 in the archive diff --git a/test/expect/archive-get-004.log b/test/expect/archive-get-004.log index 99bd3253b..3d1905c98 100644 --- a/test/expect/archive-get-004.log +++ b/test/expect/archive-get-004.log @@ -3,21 +3,19 @@ run 004 - rmt 0, cmp 1, exists 1 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info.copy +P00 ERROR: [055]: unable to open [TEST_PATH]/db-master/repo/archive/db/archive.info or [TEST_PATH]/db-master/repo/archive/db/archive.info.copy P00 ERROR: [055]: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? @@ -32,7 +30,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -84,31 +82,30 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = true, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = ({rxyParam => ({strCompressType => decompress}), strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -119,31 +116,30 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000010000000100000002 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strSourceArchive = 000000010000000100000002 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000002, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000002, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000002 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000002-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000002 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000002-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = true, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = ({rxyParam => ({strCompressType => decompress}), strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -154,31 +150,30 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: get WAL segment 000000010000000100000003 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strSourceArchive = 000000010000000100000003 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000003, ullDbSysId = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000003, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = true, strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000003 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000003-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000003 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000003-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = true, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = ({rxyParam => ({strCompressType => decompress}), strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] diff --git a/test/expect/archive-get-005.log b/test/expect/archive-get-005.log index 9b2b3ce72..c1f24e462 100644 --- a/test/expect/archive-get-005.log +++ b/test/expect/archive-get-005.log @@ -3,23 +3,22 @@ run 005 - rmt 1, cmp 0, exists 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 ERROR: [055]: raised on backup host: archive.info does not exist but is required to push/get WAL segments +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [055]: raised on 'backup remote' host: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? HINT: use --no-archive-check to disable archive checks during backup if you have an alternate archiving scheme. @@ -35,7 +34,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-2] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-2] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -88,7 +87,8 @@ db-version="9.4" stop all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo +P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -98,7 +98,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000090000000900000009 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG, strSourceArchive = 000000090000000900000009 P00 ERROR: [062]: stop file exists for all stanzas @@ -112,7 +112,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 62 start all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo +P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -122,22 +122,21 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000090000000900000009 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG, strSourceArchive = 000000090000000900000009 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000090000000900000009, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000090000000900000009, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = [undef], strArchiveId = 9.4-1 P00 INFO: unable to find 000000090000000900000009 in the archive P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 1 diff --git a/test/expect/archive-get-006.log b/test/expect/archive-get-006.log index 05ba2751e..08168bd30 100644 --- a/test/expect/archive-get-006.log +++ b/test/expect/archive-get-006.log @@ -3,23 +3,22 @@ run 006 - rmt 1, cmp 0, exists 1 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 ERROR: [055]: raised on backup host: archive.info does not exist but is required to push/get WAL segments +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [055]: raised on 'backup remote' host: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? HINT: use --no-archive-check to disable archive checks during backup if you have an alternate archiving scheme. @@ -35,7 +34,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-2] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-2] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -87,24 +86,26 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get --cmd-ssh=/usr/bin/ssh 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -117,24 +118,26 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000010000000100000002 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strSourceArchive = 000000010000000100000002 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000002, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000002, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -147,24 +150,26 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000010000000100000003 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strSourceArchive = 000000010000000100000003 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000003, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000003, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] diff --git a/test/expect/archive-get-007.log b/test/expect/archive-get-007.log index 1f8d91323..8ba65b9fb 100644 --- a/test/expect/archive-get-007.log +++ b/test/expect/archive-get-007.log @@ -3,23 +3,22 @@ run 007 - rmt 1, cmp 1, exists 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 ERROR: [055]: raised on backup host: archive.info does not exist but is required to push/get WAL segments +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [055]: raised on 'backup remote' host: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? HINT: use --no-archive-check to disable archive checks during backup if you have an alternate archiving scheme. @@ -35,7 +34,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-2] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-2] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -88,7 +87,8 @@ db-version="9.4" stop all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo +P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -98,7 +98,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000090000000900000009 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG, strSourceArchive = 000000090000000900000009 P00 ERROR: [062]: stop file exists for all stanzas @@ -112,7 +112,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 62 start all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo +P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -122,22 +122,21 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000090000000900000009 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/RECOVERYXLOG, strSourceArchive = 000000090000000900000009 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000090000000900000009, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000090000000900000009, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = [undef], strArchiveId = 9.4-1 P00 INFO: unable to find 000000090000000900000009 in the archive P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 1 diff --git a/test/expect/archive-get-008.log b/test/expect/archive-get-008.log index de86f5e3e..d2a203301 100644 --- a/test/expect/archive-get-008.log +++ b/test/expect/archive-get-008.log @@ -3,23 +3,22 @@ run 008 - rmt 1, cmp 1, exists 1 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 ERROR: [055]: raised on backup host: archive.info does not exist but is required to push/get WAL segments +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [055]: raised on 'backup remote' host: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? HINT: use --no-archive-check to disable archive checks during backup if you have an alternate archiving scheme. @@ -35,7 +34,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-2] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-2] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -87,24 +86,26 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get --cmd-ssh=/usr/bin/ssh 000000010000000100000001 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000010000000100000001 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourceArchive = 000000010000000100000001 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000001, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = true, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = ({rxyParam => ({strCompressType => decompress}), strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -117,24 +118,26 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000010000000100000002 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strSourceArchive = 000000010000000100000002 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000002, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000002, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = true, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = ({rxyParam => ({strCompressType => decompress}), strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -147,24 +150,26 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-get command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 INFO: get WAL segment 000000010000000100000003 P00 DEBUG: Archive::ArchiveGet->get(): strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strSourceArchive = 000000010000000100000003 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::Archive->getCheck(): oFile = [object], strDbVersion = [undef], strWalFile = 000000010000000100000003, ullDbSysId = [undef] +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-get --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Archive::Archive->getCheck(): strDbVersion = [undef], strWalFile = 000000010000000100000003, ullDbSysId = [undef] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::Archive->getCheck=>: strArchiveFile = 000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strArchiveId = 9.4-1 -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = false, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = true, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = 9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz, strSourcePathType = backup:archive, strUser = [undef] +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = ({rxyParam => ({strCompressType => decompress}), strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchiveGet->get=>: iResult = 0 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] diff --git a/test/expect/archive-push-001.log b/test/expect/archive-push-001.log index 51985ec85..1f4fe070d 100644 --- a/test/expect/archive-push-001.log +++ b/test/expect/archive-push-001.log @@ -3,17 +3,18 @@ run 001 - rmt 0, cmp 0, arc_async 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 --archive-max-mb=24 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-max-mb=24 --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-max-mb=24 --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 WARN: 'archive-max-mb' is no longer not longer valid, use 'archive-queue-max' instead P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info.copy +P00 ERROR: [055]: unable to open [TEST_PATH]/db-master/repo/archive/db/archive.info or [TEST_PATH]/db-master/repo/archive/db/archive.info.copy P00 ERROR: [055]: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? @@ -28,7 +29,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -65,26 +66,31 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000001, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000001 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -96,16 +102,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? @@ -118,16 +123,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? @@ -141,7 +145,8 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 stop db stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -151,7 +156,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 ERROR: [062]: stop file exists for stanza db P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] @@ -164,7 +169,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 62 start db stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -174,27 +179,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000001 already exists in the archive with the same checksum @@ -211,27 +216,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000001 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -240,28 +245,33 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000001.partial, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000001.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -273,27 +283,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum @@ -310,27 +320,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000001.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -341,26 +351,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000002, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000002, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000002, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000002, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000002 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000002-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000002 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000002-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000002, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000002 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -372,26 +387,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000003, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000003, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000003, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000003, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000003 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000003-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000003 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000003-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000003, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000003 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -403,26 +423,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000004, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000004, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000004, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000004, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000004 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000004-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000004 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000004-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000004, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000004-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000004 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -434,26 +459,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000005, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000005 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -465,16 +495,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? @@ -487,16 +516,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? @@ -509,27 +537,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000005 already exists in the archive with the same checksum @@ -546,27 +574,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000005 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -575,28 +603,33 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000005.partial, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000005.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -608,27 +641,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum @@ -645,27 +678,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000005.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -676,26 +709,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000006, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000006, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000006, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000006, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000006 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000006-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000006 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000006-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000006, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000006-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000006 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -707,26 +745,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000007, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000007, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000007, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000007, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000007 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000007-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000007 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000007-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000007, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000007-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000007 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -738,26 +781,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000008, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000008, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000008, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000008, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000008 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000008-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000008 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000008-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000008, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000008-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000008 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -769,26 +817,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000009, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000009 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -800,16 +853,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? @@ -822,16 +874,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? @@ -844,27 +895,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000009 already exists in the archive with the same checksum @@ -881,27 +932,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000009 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -910,28 +961,33 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000009.partial, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000009.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -943,27 +999,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum @@ -980,27 +1036,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000009.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] diff --git a/test/expect/archive-push-002.log b/test/expect/archive-push-002.log index c3d44356c..fc5c418ff 100644 --- a/test/expect/archive-push-002.log +++ b/test/expect/archive-push-002.log @@ -3,9 +3,9 @@ run 002 - rmt 0, cmp 0, arc_async 1 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 --archive-max-mb=24 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --archive-max-mb=24 --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --archive-max-mb=24 --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: 'archive-max-mb' is no longer not longer valid, use 'archive-queue-max' instead -P00 ERROR: [055]: raised on local-1 host: archive.info does not exist but is required to push/get WAL segments +P00 ERROR: [055]: raised on 'local-1' host: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? HINT: use --no-archive-check to disable archive checks during backup if you have an alternate archiving scheme. @@ -14,7 +14,7 @@ P00 INFO: archive-push command end: aborted with exception [055] stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -51,28 +51,29 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000001 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] stop all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --force stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo +P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 INFO: sent term signal to process [PROCESS-ID] P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -83,21 +84,21 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --test --test-delay=5 --test-point=archive-push-async-start=y 000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db --test --test-delay=5 --test-point=archive-push-async-start=y +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db --test --test-delay=5 --test-point=archive-push-async-start=y P00 TEST: PgBaCkReStTeSt-ARCHIVE-PUSH-ASYNC-START-PgBaCkReStTeSt P00 ERROR: [063]: terminated on signal [SIGTERM] P00 INFO: archive-push command end: terminated on signal [SIGTERM] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 ERROR: [062]: stop file exists for all stanzas P00 INFO: archive-push command end: aborted with exception [062] start all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo +P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -107,7 +108,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000001 asynchronously @@ -115,19 +116,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000001 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000001 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000001.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000001.partial asynchronously @@ -135,51 +136,51 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000001.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000001.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000002 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000003 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000004 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000005 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000005 asynchronously @@ -187,19 +188,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000005 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000005 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000005.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000005.partial asynchronously @@ -207,51 +208,51 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000005.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000005.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000006 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000007 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000008 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000009 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000009 asynchronously @@ -259,19 +260,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000009 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000009 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000009.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000009.partial asynchronously @@ -279,8 +280,8 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000009.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000009.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] + supplemental file: [TEST_PATH]/db-master/repo/archive/db/archive.info diff --git a/test/expect/archive-push-003.log b/test/expect/archive-push-003.log index 0c28830e8..40f34bbf1 100644 --- a/test/expect/archive-push-003.log +++ b/test/expect/archive-push-003.log @@ -3,17 +3,18 @@ run 003 - rmt 0, cmp 1, arc_async 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 --archive-max-mb=24 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-max-mb=24 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-max-mb=24 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 WARN: 'archive-max-mb' is no longer not longer valid, use 'archive-queue-max' instead P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info.copy +P00 ERROR: [055]: unable to open [TEST_PATH]/db-master/repo/archive/db/archive.info or [TEST_PATH]/db-master/repo/archive/db/archive.info.copy P00 ERROR: [055]: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? @@ -28,7 +29,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -65,26 +66,31 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000001.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000001 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -96,16 +102,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? @@ -118,16 +123,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? @@ -140,27 +144,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000001 already exists in the archive with the same checksum @@ -177,27 +181,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000001 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -206,28 +210,33 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000001.partial.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000001.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -239,27 +248,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum @@ -276,27 +285,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000001.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -307,26 +316,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000002, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000002, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000002, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000002, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000002 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000002-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000002 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000002-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000002.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000002 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -338,26 +352,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000003, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000003, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000003, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000003, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000003 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000003-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000003 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000003-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000003.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000003 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -369,26 +388,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000004, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000004, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000004, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000004, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000004 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000004-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000004 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000004-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000004.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000004-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000004 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -400,26 +424,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000005.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000005 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -431,16 +460,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? @@ -453,16 +481,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? @@ -475,27 +502,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000005 already exists in the archive with the same checksum @@ -512,27 +539,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000005 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -541,28 +568,33 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000005.partial.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000005.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -574,27 +606,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum @@ -611,27 +643,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000005.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000005\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000005.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -642,26 +674,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000006, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000006, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000006, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000006, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000006 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000006-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000006 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000006-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000006.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000006-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000006 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -673,26 +710,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000007, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000007, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000007, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000007, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000007 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000007-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000007 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000007-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000007.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000007-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000007 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -704,26 +746,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000008, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000008, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000008, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000008, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000008 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000008-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000008 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000008-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000008.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000008-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000008 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -735,26 +782,31 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000009.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000009 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -766,16 +818,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? @@ -788,16 +839,15 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 ERROR: [044]: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? @@ -810,27 +860,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000009 already exists in the archive with the same checksum @@ -847,27 +897,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000009 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -876,28 +926,33 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000009.partial.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000009.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -909,27 +964,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum @@ -946,27 +1001,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = (000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000009.partial +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000009\.partial-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = (000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz) P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = 000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000009.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] diff --git a/test/expect/archive-push-004.log b/test/expect/archive-push-004.log index 156cedd6d..8b9622227 100644 --- a/test/expect/archive-push-004.log +++ b/test/expect/archive-push-004.log @@ -3,9 +3,9 @@ run 004 - rmt 0, cmp 1, arc_async 1 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 --archive-max-mb=24 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --archive-max-mb=24 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --archive-max-mb=24 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: 'archive-max-mb' is no longer not longer valid, use 'archive-queue-max' instead -P00 ERROR: [055]: raised on local-1 host: archive.info does not exist but is required to push/get WAL segments +P00 ERROR: [055]: raised on 'local-1' host: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? HINT: use --no-archive-check to disable archive checks during backup if you have an alternate archiving scheme. @@ -14,7 +14,7 @@ P00 INFO: archive-push command end: aborted with exception [055] stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -51,27 +51,27 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000001 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000001 asynchronously @@ -79,19 +79,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000001 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000001 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000001.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000001.partial asynchronously @@ -99,51 +99,51 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000001.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000001.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000002 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000003 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000004 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000005 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000005 asynchronously @@ -151,19 +151,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000005 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000005 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000005.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000005.partial asynchronously @@ -171,51 +171,51 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000005.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000005.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000006 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000007 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000008 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000009 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [044]: raised on local-1 host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000009 asynchronously @@ -223,19 +223,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000009 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000009 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000009.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000009.partial asynchronously @@ -243,8 +243,8 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000009.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000009.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] + supplemental file: [TEST_PATH]/db-master/repo/archive/db/archive.info diff --git a/test/expect/archive-push-005.log b/test/expect/archive-push-005.log index 4424f7235..1d273fde0 100644 --- a/test/expect/archive-push-005.log +++ b/test/expect/archive-push-005.log @@ -3,19 +3,21 @@ run 005 - rmt 1, cmp 0, arc_async 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 --archive-max-mb=24 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-max-mb=24 --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-max-mb=24 --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 WARN: 'archive-max-mb' is no longer not longer valid, use 'archive-queue-max' instead P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 ERROR: [055]: raised on backup host: archive.info does not exist but is required to push/get WAL segments +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [055]: raised on 'backup remote' host: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? HINT: use --no-archive-check to disable archive checks during backup if you have an alternate archiving scheme. @@ -31,7 +33,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-2] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-2] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -68,19 +70,27 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000001, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000001 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -94,18 +104,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -118,18 +130,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -143,7 +157,8 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 stop db stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --stanza=db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -153,7 +168,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 ERROR: [062]: stop file exists for stanza db P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] @@ -166,7 +181,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 62 start db stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --stanza=db P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -176,20 +191,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000001 already exists in the archive with the same checksum @@ -208,20 +226,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000001 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -232,21 +253,29 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000001.partial, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000001.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -260,20 +289,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum @@ -292,20 +324,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000001.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -318,19 +353,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000002, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000002, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000002, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000002, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000002, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000002 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -344,19 +387,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000003, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000003, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000003, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000003, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000003, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000003 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -370,19 +421,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000004, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000004, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000004, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000004, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000004, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000004-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000004 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -396,19 +455,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000005, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000005 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -422,18 +489,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -446,18 +515,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -470,20 +541,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000005 already exists in the archive with the same checksum @@ -502,20 +576,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000005 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -526,21 +603,29 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000005.partial, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000005.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -554,20 +639,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum @@ -586,20 +674,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000005.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -612,19 +703,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000006, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000006, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000006, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000006, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000006, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000006-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000006 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -638,19 +737,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000007, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000007, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000007, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000007, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000007, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000007-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000007 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -664,19 +771,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000008, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000008, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000008, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000008, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000008, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000008-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000008 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -690,19 +805,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000009, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000009 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -716,18 +839,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -740,18 +865,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -764,20 +891,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000009 already exists in the archive with the same checksum @@ -796,20 +926,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000009 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -820,21 +953,29 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = false, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000009.partial, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000009.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -848,20 +989,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum @@ -880,20 +1024,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = false, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000009.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] diff --git a/test/expect/archive-push-006.log b/test/expect/archive-push-006.log index 2f1a3d0ce..a4e2d36d8 100644 --- a/test/expect/archive-push-006.log +++ b/test/expect/archive-push-006.log @@ -3,9 +3,9 @@ run 006 - rmt 1, cmp 0, arc_async 1 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 --archive-max-mb=24 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --archive-max-mb=24 --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --archive-max-mb=24 --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: 'archive-max-mb' is no longer not longer valid, use 'archive-queue-max' instead -P00 ERROR: [055]: raised on local-1 host: raised on backup host: archive.info does not exist but is required to push/get WAL segments +P00 ERROR: [055]: raised on 'local-1' host: raised on 'backup remote' host: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? HINT: use --no-archive-check to disable archive checks during backup if you have an alternate archiving scheme. @@ -14,7 +14,7 @@ P00 INFO: archive-push command end: aborted with exception [055] stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-2] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-2] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -51,28 +51,29 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000001 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] stop all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --force stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo +P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 INFO: sent term signal to process [PROCESS-ID] P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -83,21 +84,21 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --test --test-delay=5 --test-point=archive-push-async-start=y 000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db --test --test-delay=5 --test-point=archive-push-async-start=y +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db --test --test-delay=5 --test-point=archive-push-async-start=y P00 TEST: PgBaCkReStTeSt-ARCHIVE-PUSH-ASYNC-START-PgBaCkReStTeSt P00 ERROR: [063]: terminated on signal [SIGTERM] P00 INFO: archive-push command end: terminated on signal [SIGTERM] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 ERROR: [062]: stop file exists for all stanzas P00 INFO: archive-push command end: aborted with exception [062] start all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo +P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -107,7 +108,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000001 asynchronously @@ -115,19 +116,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000001 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000001 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000001.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000001.partial asynchronously @@ -135,51 +136,51 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000001.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000001.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000002 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000003 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000004 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000005 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000005 asynchronously @@ -187,19 +188,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000005 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000005 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000005.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000005.partial asynchronously @@ -207,51 +208,51 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000005.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000005.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000006 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000007 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000008 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000009 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000009 asynchronously @@ -259,19 +260,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000009 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000009 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000009.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000009.partial asynchronously @@ -279,8 +280,8 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000009.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000009.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] + supplemental file: [TEST_PATH]/backup/repo/archive/db/archive.info diff --git a/test/expect/archive-push-007.log b/test/expect/archive-push-007.log index 21f0aac7e..fdc56e8b2 100644 --- a/test/expect/archive-push-007.log +++ b/test/expect/archive-push-007.log @@ -3,19 +3,21 @@ run 007 - rmt 1, cmp 1, arc_async 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 --archive-max-mb=24 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-max-mb=24 --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-max-mb=24 --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 WARN: 'archive-max-mb' is no longer not longer valid, use 'archive-queue-max' instead P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 ERROR: [055]: raised on backup host: archive.info does not exist but is required to push/get WAL segments +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [055]: raised on 'backup remote' host: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? HINT: use --no-archive-check to disable archive checks during backup if you have an alternate archiving scheme. @@ -31,7 +33,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 55 stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-2] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-2] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -68,19 +70,27 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000001.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000001 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -94,18 +104,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -118,18 +130,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -142,20 +156,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000001 already exists in the archive with the same checksum @@ -174,20 +191,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000001 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -198,21 +218,29 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000001.partial.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000001.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000001.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -226,20 +254,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum @@ -258,20 +289,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000001.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -284,19 +318,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000002, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000002, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000002, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000002, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000002.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000002-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000002 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -310,19 +352,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000003, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000003, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000003, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000003, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000003.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000003-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000003 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -336,19 +386,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000004, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000004, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000004, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000004, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000004.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000004-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000004 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -362,19 +420,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000005.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000005 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -388,18 +454,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -412,18 +480,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -436,20 +506,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000005 already exists in the archive with the same checksum @@ -468,20 +541,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000005 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -492,21 +568,29 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000005.partial.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000005.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000005.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -520,20 +604,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum @@ -552,20 +639,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000005.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000005.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000005.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -578,19 +668,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000006, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000006, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000006, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000006, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000006.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000006-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000006 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -604,19 +702,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000007, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000007, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000007, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000007, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000007.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000007-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000007 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -630,19 +736,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000008, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000008, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000008, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000008, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000008.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000008-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000008 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -656,19 +770,27 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000009.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000009-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000009 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -682,18 +804,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -706,18 +830,20 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 ERROR: [044]: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -730,20 +856,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 44 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000009 already exists in the archive with the same checksum @@ -762,20 +891,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000009 already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -786,21 +918,29 @@ P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: archive-push command end: aborted with exception [045] P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 45 -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = false, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = false, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000009.partial.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000009.partial-72b9da071c13957fb4ca31f05dbd5c644297c2f7.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000009.partial P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -814,20 +954,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 72b9da071c13957fb4ca31f05dbd5c644297c2f7 P00 WARN: WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = 72b9da071c13957fb4ca31f05dbd5c644297c2f7, strWarning = WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum @@ -846,20 +989,23 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000009.partial, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 -P00 DEBUG: File->hash(): bCompressed = [undef], strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = [undef], strPathType = db:absolute -P00 DEBUG: File->hashSize(): bCompressed = , strFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, strHashType = , strPathType = db:absolute -P00 DEBUG: File->hashSize=>: iSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000009.partial, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P00 ERROR: [045]: WAL segment 000000010000000100000009.partial already exists in the archive P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] diff --git a/test/expect/archive-push-008.log b/test/expect/archive-push-008.log index 24e2dc604..c306b45a9 100644 --- a/test/expect/archive-push-008.log +++ b/test/expect/archive-push-008.log @@ -3,9 +3,9 @@ run 008 - rmt 1, cmp 1, arc_async 1 > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 --archive-max-mb=24 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --archive-max-mb=24 --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --archive-max-mb=24 --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: 'archive-max-mb' is no longer not longer valid, use 'archive-queue-max' instead -P00 ERROR: [055]: raised on local-1 host: raised on backup host: archive.info does not exist but is required to push/get WAL segments +P00 ERROR: [055]: raised on 'local-1' host: raised on 'backup remote' host: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? HINT: use --no-archive-check to disable archive checks during backup if you have an alternate archiving scheme. @@ -14,7 +14,7 @@ P00 INFO: archive-push command end: aborted with exception [055] stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-2] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-2] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -51,27 +51,27 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000001 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000001 asynchronously @@ -79,19 +79,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000001 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000001 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000001.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000001.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000001.partial asynchronously @@ -99,51 +99,51 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000001.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000001.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000002 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000003 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000004 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000005 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000005 asynchronously @@ -151,19 +151,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000005 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000005 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000005.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000005.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000005.partial asynchronously @@ -171,51 +171,51 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000005.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000005.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000005.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000006 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000006 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000007 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000007 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000008 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000008 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --cmd-ssh=/usr/bin/ssh [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000009 asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment system-id 6353949018581704918 does not match archive system-id 5000900090001855000 HINT: are you archiving to the correct stanza? P00 INFO: archive-push command end: aborted with exception [044] > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000009 asynchronously @@ -223,19 +223,19 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000009 already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000009 already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push --no-repo-sync [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 INFO: pushed WAL segment 000000010000000100000009.partial asynchronously P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db P00 WARN: WAL segment 000000010000000100000009.partial already exists in the archive with the same checksum HINT: this is valid in some recovery scenarios but may also indicate a problem. P00 INFO: pushed WAL segment 000000010000000100000009.partial asynchronously @@ -243,8 +243,8 @@ P00 INFO: archive-push command end: completed successfully > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000009.partial ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --spool-path=[TEST_PATH]/db-master/spool --stanza=db -P00 ERROR: [045]: raised on local-1 host: WAL segment 000000010000000100000009.partial already exists in the archive +P00 INFO: archive-push command begin [BACKREST-VERSION]: --archive-async --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-1] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --spool-path=[TEST_PATH]/db-master/spool --stanza=db +P00 ERROR: [045]: raised on 'local-1' host: WAL segment 000000010000000100000009.partial already exists in the archive P00 INFO: archive-push command end: aborted with exception [045] + supplemental file: [TEST_PATH]/backup/repo/archive/db/archive.info diff --git a/test/expect/archive-stop-001.log b/test/expect/archive-stop-001.log index a9acc7b30..6efceff49 100644 --- a/test/expect/archive-stop-001.log +++ b/test/expect/archive-stop-001.log @@ -4,7 +4,7 @@ run 001 - rmt 0, cmp 0, error version stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -44,12 +44,12 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [044]: raised on local-1 host: WAL segment version 9.4 does not match archive version 8.0 +P00 ERROR: [044]: raised on 'local-1' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [044]: raised on local-1 host: WAL segment version 9.4 does not match archive version 8.0 +P00 ERROR: [044]: raised on 'local-1' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 diff --git a/test/expect/archive-stop-002.log b/test/expect/archive-stop-002.log index 83366e2d9..855c125dd 100644 --- a/test/expect/archive-stop-002.log +++ b/test/expect/archive-stop-002.log @@ -4,7 +4,7 @@ run 002 - rmt 0, cmp 1, error version stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -44,12 +44,12 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [044]: raised on local-1 host: WAL segment version 9.4 does not match archive version 8.0 +P00 ERROR: [044]: raised on 'local-1' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [044]: raised on local-1 host: WAL segment version 9.4 does not match archive version 8.0 +P00 ERROR: [044]: raised on 'local-1' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 diff --git a/test/expect/archive-stop-003.log b/test/expect/archive-stop-003.log index 5747ac6bc..21678fdd0 100644 --- a/test/expect/archive-stop-003.log +++ b/test/expect/archive-stop-003.log @@ -4,7 +4,7 @@ run 003 - rmt 1, cmp 0, error version stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -44,12 +44,12 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 diff --git a/test/expect/archive-stop-004.log b/test/expect/archive-stop-004.log index 5b936fd85..88917534a 100644 --- a/test/expect/archive-stop-004.log +++ b/test/expect/archive-stop-004.log @@ -4,7 +4,7 @@ run 004 - rmt 1, cmp 0, error connect stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -44,11 +44,11 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db --backup-host=bogus archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [049]: remote process terminated on bogus host (exit status 255): [REMOTE-PROCESS-TERMINATED-MESSAGE] +P00 ERROR: [042]: process 'bogus remote' terminated unexpectedly: ssh: Could not resolve hostname bogus: Name or service not known > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db --backup-host=bogus archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [049]: remote process terminated on bogus host (exit status 255): [REMOTE-PROCESS-TERMINATED-MESSAGE] +P00 ERROR: [042]: process 'bogus remote' terminated unexpectedly: ssh: Could not resolve hostname bogus: Name or service not known > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 ------------------------------------------------------------------------------------------------------------------------------------ diff --git a/test/expect/archive-stop-005.log b/test/expect/archive-stop-005.log index 6691cccca..06e7f8a6d 100644 --- a/test/expect/archive-stop-005.log +++ b/test/expect/archive-stop-005.log @@ -4,7 +4,7 @@ run 005 - rmt 1, cmp 1, error version stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -44,12 +44,12 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [044]: raised on local-1 host: raised on backup host: WAL segment version 9.4 does not match archive version 8.0 +P00 ERROR: [044]: raised on 'local-1' host: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 8.0 HINT: are you archiving to the correct stanza? > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 diff --git a/test/expect/archive-stop-006.log b/test/expect/archive-stop-006.log index 7c7e3c89b..9974fbdf1 100644 --- a/test/expect/archive-stop-006.log +++ b/test/expect/archive-stop-006.log @@ -4,7 +4,7 @@ run 006 - rmt 1, cmp 1, error connect stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -44,11 +44,11 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db --backup-host=bogus archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000002 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [049]: remote process terminated on bogus host (exit status 255): [REMOTE-PROCESS-TERMINATED-MESSAGE] +P00 ERROR: [042]: process 'bogus remote' terminated unexpectedly: ssh: Could not resolve hostname bogus: Name or service not known > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db --backup-host=bogus archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000003 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [049]: remote process terminated on bogus host (exit status 255): [REMOTE-PROCESS-TERMINATED-MESSAGE] +P00 ERROR: [042]: process 'bogus remote' terminated unexpectedly: ssh: Could not resolve hostname bogus: Name or service not known > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000004 ------------------------------------------------------------------------------------------------------------------------------------ diff --git a/test/expect/expire-expire-001.log b/test/expect/expire-expire-001.log index df1cc6370..a0ba9d3a0 100644 --- a/test/expect/expire-expire-001.log +++ b/test/expect/expire-expire-001.log @@ -34,10 +34,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -299,7 +297,7 @@ db-version="9.2" Nothing to expire > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=1 --retention-diff=1 --retention-archive-type=full --retention-archive=1 expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=full --retention-diff=1 --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=full --retention-diff=1 --retention-full=1 --stanza=db P00 DETAIL: archive retention on backup [BACKUP-FULL-1], archiveId = 9.2-1, start = 000000010000000000000000 P00 DETAIL: no archive to remove, archiveId = 9.2-1 P00 INFO: expire command end: completed successfully @@ -333,10 +331,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -629,11 +625,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000000 -0000000100000001 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -903,7 +896,7 @@ db-version="9.2" Expire oldest full backup, archive expire falls on segment major boundary > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=1 --retention-diff=1 --retention-archive-type=full --retention-archive=1 expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=full --retention-diff=1 --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=full --retention-diff=1 --retention-full=1 --stanza=db P00 INFO: expire full backup set: [BACKUP-FULL-1], [BACKUP-INCR-1] P00 INFO: remove expired backup [BACKUP-INCR-1] P00 INFO: remove expired backup [BACKUP-FULL-1] @@ -938,10 +931,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000001 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000001: 000000010000000100000000-0000000000000000000000000000000000000000.gz @@ -986,11 +977,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000001 -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000001: 000000010000000100000000-0000000000000000000000000000000000000000.gz @@ -1270,7 +1258,7 @@ db-version="9.2" Expire oldest full backup > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=1 --retention-diff=1 --retention-archive-type=full --retention-archive=1 expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=full --retention-diff=1 --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=full --retention-diff=1 --retention-full=1 --stanza=db P00 INFO: expire diff backup [BACKUP-DIFF-1] P00 INFO: remove expired backup [BACKUP-DIFF-1] P00 DETAIL: archive retention on backup [BACKUP-FULL-2], archiveId = 9.2-1, start = 000000010000000100000000 @@ -1306,11 +1294,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000001 -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000001: 000000010000000100000000-0000000000000000000000000000000000000000.gz @@ -1627,11 +1612,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000001 -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000001: 000000010000000100000000-0000000000000000000000000000000000000000.gz @@ -1925,7 +1907,7 @@ db-version="9.2" Expire oldest diff backup, archive expire does not fall on major segment boundary > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=1 --retention-diff=1 --retention-archive-type=diff --retention-archive=1 expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=diff --retention-diff=1 --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=diff --retention-diff=1 --retention-full=1 --stanza=db P00 INFO: expire full backup set: [BACKUP-FULL-2], [BACKUP-DIFF-2] P00 INFO: remove expired backup [BACKUP-DIFF-2] P00 INFO: remove expired backup [BACKUP-FULL-2] @@ -1966,10 +1948,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 000000010000000200000010-0000000000000000000000000000000000000000.gz @@ -2020,10 +2000,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 000000010000000200000010-0000000000000000000000000000000000000000.gz @@ -2047,7 +2025,7 @@ db-version="9.2" Expire oldest diff backup (cascade to incr) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=1 --retention-diff=1 --retention-archive-type=diff --retention-archive=1 expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=diff --retention-diff=1 --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=diff --retention-diff=1 --retention-full=1 --stanza=db P00 INFO: expire diff backup set: [BACKUP-DIFF-3], [BACKUP-INCR-2] P00 INFO: remove expired backup [BACKUP-INCR-2] P00 INFO: remove expired backup [BACKUP-DIFF-3] @@ -2085,10 +2063,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 000000010000000200000010-0000000000000000000000000000000000000000.gz @@ -2135,10 +2111,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 000000010000000200000010-0000000000000000000000000000000000000000.gz @@ -2160,7 +2134,7 @@ db-version="9.2" Expire archive based on newest incr backup > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=1 --retention-diff=1 --retention-archive-type=incr --retention-archive=1 expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=incr --retention-diff=1 --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=incr --retention-diff=1 --retention-full=1 --stanza=db P00 DETAIL: archive retention on backup [BACKUP-FULL-3], archiveId = 9.2-1, start = 000000010000000200000010, stop = 000000010000000200000012 P00 DETAIL: archive retention on backup [BACKUP-DIFF-4], archiveId = 9.2-1, start = 00000001000000020000001E, stop = 000000010000000200000020 P00 DETAIL: archive retention on backup [BACKUP-INCR-3], archiveId = 9.2-1, start = 000000010000000200000024 @@ -2198,10 +2172,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 000000010000000200000010-0000000000000000000000000000000000000000.gz @@ -2259,10 +2231,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 000000010000000200000010-0000000000000000000000000000000000000000.gz @@ -2299,7 +2269,7 @@ db-version="9.2" Expire diff treating full as diff > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=2 --retention-diff=1 --retention-archive-type=diff --retention-archive=1 expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=diff --retention-diff=1 --retention-full=2 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=diff --retention-diff=1 --retention-full=2 --stanza=db P00 INFO: expire full backup set: [BACKUP-FULL-3], [BACKUP-DIFF-4], [BACKUP-INCR-3] P00 INFO: expire diff backup [BACKUP-DIFF-5] P00 INFO: remove expired backup [BACKUP-DIFF-5] @@ -2341,10 +2311,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 00000001000000020000002A-0000000000000000000000000000000000000000.gz @@ -2397,10 +2365,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 00000001000000020000002A-0000000000000000000000000000000000000000.gz @@ -2434,7 +2400,7 @@ db-version="9.2" Expire diff with retention-archive with warning retention-diff not set > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-archive-type=diff --retention-archive=1 expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=diff --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=diff --stanza=db P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 WARN: option 'retention-diff' is not set for 'retention-archive-type=diff' @@ -2484,10 +2450,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 00000001000000020000002A-0000000000000000000000000000000000000000.gz @@ -2552,10 +2516,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 00000001000000020000002A-0000000000000000000000000000000000000000.gz @@ -2592,7 +2554,7 @@ db-version="9.2" Expire full with retention-archive with warning retention-full not set > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-archive-type=full --retention-archive=1 expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=full --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=full --stanza=db P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 DETAIL: archive retention on backup [BACKUP-FULL-4], archiveId = 9.2-1, start = 00000001000000020000002A, stop = 00000001000000020000002C @@ -2645,10 +2607,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 00000001000000020000002A-0000000000000000000000000000000000000000.gz @@ -2720,10 +2680,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 00000001000000020000002A-0000000000000000000000000000000000000000.gz @@ -2760,7 +2718,7 @@ db-version="9.2" Expire no archive with warning since retention-archive not set for INCR > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=1 --retention-diff=1 --retention-archive-type=incr expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=incr --retention-diff=1 --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=incr --retention-diff=1 --retention-full=1 --stanza=db P00 WARN: WAL segments will not be expired: option 'retention-archive-type=incr' but option 'retention-archive' is not set P00 INFO: expire full backup [BACKUP-FULL-4] P00 INFO: expire full backup [BACKUP-FULL-5] @@ -2804,10 +2762,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 00000001000000020000002A-0000000000000000000000000000000000000000.gz @@ -2881,10 +2837,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 00000001000000020000002A-0000000000000000000000000000000000000000.gz @@ -2939,7 +2893,7 @@ db-version="9.2" Expire no archive with warning since neither retention-archive nor retention-diff is set > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-archive-type=diff expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=diff --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=diff --stanza=db P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 WARN: WAL segments will not be expired: option 'retention-archive-type=diff' but neither option 'retention-archive' nor option 'retention-diff' is set @@ -2981,10 +2935,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 00000001000000020000002A-0000000000000000000000000000000000000000.gz @@ -3071,10 +3023,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 00000001000000020000002A-0000000000000000000000000000000000000000.gz @@ -3129,7 +3079,7 @@ db-version="9.2" Use oldest full backup for archive retention > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=10 --retention-diff=10 --retention-archive-type=full --retention-archive=10 expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=10 --retention-archive-type=full --retention-diff=10 --retention-full=10 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=10 --retention-archive-type=full --retention-diff=10 --retention-full=10 --stanza=db P00 INFO: full backup total < 10 - using oldest full backup for 9.2-1 archive retention P00 DETAIL: archive retention on backup [BACKUP-FULL-8], archiveId = 9.2-1, start = 000000010000000200000054 P00 DETAIL: remove archive: archiveId = 9.2-1, start = 00000001000000020000002A, stop = 000000010000000200000050 @@ -3170,10 +3120,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000002 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000002: 000000010000000200000054-0000000000000000000000000000000000000000.gz diff --git a/test/expect/expire-expire-002.log b/test/expect/expire-expire-002.log index a16b203fc..2987477d8 100644 --- a/test/expect/expire-expire-002.log +++ b/test/expect/expire-expire-002.log @@ -37,10 +37,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -65,7 +63,7 @@ db-version="9.2" Create backups in current db version > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-archive-type=diff expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=diff --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=diff --stanza=db P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 WARN: WAL segments will not be expired: option 'retention-archive-type=diff' but neither option 'retention-archive' nor option 'retention-diff' is set @@ -103,10 +101,8 @@ db-version="9.2" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -174,11 +170,8 @@ db-version="9.3" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 -9.3-2 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -201,8 +194,6 @@ db-version="9.3" 000000010000000000000011-0000000000000000000000000000000000000000.gz [TEST_PATH]/db-master/repo/archive/db/9.3-2: -0000000100000000 -0000000100000001 [TEST_PATH]/db-master/repo/archive/db/9.3-2/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -478,7 +469,7 @@ db-version="9.3" Upgrade stanza and expire only earliest db backup and archive > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=3 --retention-archive-type=full expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=full --retention-full=3 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=full --retention-full=3 --stanza=db P00 INFO: expire full backup set: [BACKUP-FULL-1], [BACKUP-INCR-1] P00 INFO: remove expired backup [BACKUP-INCR-1] P00 INFO: remove expired backup [BACKUP-FULL-1] @@ -523,11 +514,8 @@ db-version="9.3" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 -9.3-2 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000000: 00000001000000000000000C-0000000000000000000000000000000000000000.gz @@ -538,8 +526,6 @@ db-version="9.3" 000000010000000000000011-0000000000000000000000000000000000000000.gz [TEST_PATH]/db-master/repo/archive/db/9.3-2: -0000000100000000 -0000000100000001 [TEST_PATH]/db-master/repo/archive/db/9.3-2/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -854,12 +840,8 @@ db-version="9.5" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.2-1 -9.3-2 -9.5-3 [TEST_PATH]/db-master/repo/archive/db/9.2-1: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.2-1/0000000100000000: 00000001000000000000000C-0000000000000000000000000000000000000000.gz @@ -870,8 +852,6 @@ db-version="9.5" 000000010000000000000011-0000000000000000000000000000000000000000.gz [TEST_PATH]/db-master/repo/archive/db/9.3-2: -0000000100000000 -0000000100000001 [TEST_PATH]/db-master/repo/archive/db/9.3-2/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -1145,7 +1125,6 @@ db-version="9.5" 00000001000000010000000A-0000000000000000000000000000000000000000.gz [TEST_PATH]/db-master/repo/archive/db/9.5-3: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.5-3/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -1158,7 +1137,7 @@ db-version="9.5" Upgrade the stanza, create full back - earliest db orphaned archive removed and earliest full backup and archive in previous db version removed > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=2 --retention-archive-type=full expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=full --retention-full=2 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=full --retention-full=2 --stanza=db P00 INFO: expire full backup [BACKUP-FULL-2] P00 INFO: expire full backup set: [BACKUP-FULL-3], [BACKUP-INCR-2] P00 INFO: remove expired backup [BACKUP-INCR-2] @@ -1203,12 +1182,8 @@ db-version="9.5" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.3-2 -9.5-3 [TEST_PATH]/db-master/repo/archive/db/9.3-2: -0000000100000000 -0000000100000001 [TEST_PATH]/db-master/repo/archive/db/9.3-2/0000000100000000: 0000000100000000000000FF-0000000000000000000000000000000000000000.gz @@ -1227,7 +1202,6 @@ db-version="9.5" 00000001000000010000000A-0000000000000000000000000000000000000000.gz [TEST_PATH]/db-master/repo/archive/db/9.5-3: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.5-3/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -1275,12 +1249,8 @@ db-version="9.5" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.3-2 -9.5-3 [TEST_PATH]/db-master/repo/archive/db/9.3-2: -0000000100000000 -0000000100000001 [TEST_PATH]/db-master/repo/archive/db/9.3-2/0000000100000000: 0000000100000000000000FF-0000000000000000000000000000000000000000.gz @@ -1299,7 +1269,6 @@ db-version="9.5" 00000001000000010000000A-0000000000000000000000000000000000000000.gz [TEST_PATH]/db-master/repo/archive/db/9.5-3: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.5-3/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -1318,7 +1287,7 @@ db-version="9.5" Expire all archive last full backup through pitr > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=3 --retention-diff=1 --retention-archive-type=diff --retention-archive=1 expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=diff --retention-diff=1 --retention-full=3 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=1 --retention-archive-type=diff --retention-diff=1 --retention-full=3 --stanza=db P00 INFO: expire diff backup [BACKUP-DIFF-1] P00 INFO: remove expired backup [BACKUP-DIFF-1] P00 DETAIL: archive retention on backup [BACKUP-FULL-4], archiveId = 9.3-2, start = 0000000100000000000000FF @@ -1361,12 +1330,8 @@ db-version="9.5" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.3-2 -9.5-3 [TEST_PATH]/db-master/repo/archive/db/9.3-2: -0000000100000000 -0000000100000001 [TEST_PATH]/db-master/repo/archive/db/9.3-2/0000000100000000: 0000000100000000000000FF-0000000000000000000000000000000000000000.gz @@ -1385,7 +1350,6 @@ db-version="9.5" 00000001000000010000000A-0000000000000000000000000000000000000000.gz [TEST_PATH]/db-master/repo/archive/db/9.5-3: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.5-3/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -1431,12 +1395,8 @@ db-version="9.5" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.3-2 -9.5-3 [TEST_PATH]/db-master/repo/archive/db/9.3-2: -0000000100000000 -0000000100000001 [TEST_PATH]/db-master/repo/archive/db/9.3-2/0000000100000000: 0000000100000000000000FF-0000000000000000000000000000000000000000.gz @@ -1455,7 +1415,6 @@ db-version="9.5" 00000001000000010000000A-0000000000000000000000000000000000000000.gz [TEST_PATH]/db-master/repo/archive/db/9.5-3: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.5-3/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz @@ -1471,7 +1430,7 @@ db-version="9.5" Expire all archive except for the current database > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config="[TEST_PATH]/db-master/pgbackrest.conf" --stanza=db --log-level-console=detail --retention-full=2 --retention-archive-type=full expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=full --retention-full=2 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive-type=full --retention-full=2 --stanza=db P00 INFO: expire full backup [BACKUP-FULL-4] P00 INFO: remove expired backup [BACKUP-FULL-4] P00 INFO: remove archive path: [TEST_PATH]/db-master/repo/archive/db/9.3-2 @@ -1510,10 +1469,8 @@ db-version="9.5" > ls -R [TEST_PATH]/db-master/repo/archive/db | grep -v "archive.info" ------------------------------------------------------------------------------------------------------------------------------------ [TEST_PATH]/db-master/repo/archive/db: -9.5-3 [TEST_PATH]/db-master/repo/archive/db/9.5-3: -0000000100000000 [TEST_PATH]/db-master/repo/archive/db/9.5-3/0000000100000000: 000000010000000000000000-0000000000000000000000000000000000000000.gz diff --git a/test/expect/full-real-001.log b/test/expect/full-real-001.log index f962f9668..efaec7f72 100644 --- a/test/expect/full-real-001.log +++ b/test/expect/full-real-001.log @@ -90,11 +90,13 @@ db-socket-path=[TEST_PATH]/db-master/db [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -122,7 +124,7 @@ incr backup - fail on backup already running (db-master host) ------------------------------------------------------------------------------------------------------------------------------------ incr backup - update during backup (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=24576 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=32768 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ + supplemental file: [TEST_PATH]/db-master/pgbackrest.conf @@ -134,11 +136,13 @@ db-socket-path=[TEST_PATH]/db-master/db [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -246,11 +250,13 @@ recovery-option=standby-mode=on [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] diff --git a/test/expect/full-real-002.log b/test/expect/full-real-002.log index 4ad5e1a4b..29cce7597 100644 --- a/test/expect/full-real-002.log +++ b/test/expect/full-real-002.log @@ -17,11 +17,13 @@ db-port=[PORT-1] db-socket-path=[TEST_PATH]/db-master/db [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -29,7 +31,7 @@ archive-copy=y start-fast=y incr backup - update during backup (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=24576 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=32768 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ + supplemental file: [TEST_PATH]/db-master/pgbackrest.conf @@ -40,11 +42,13 @@ db-port=[PORT-1] db-socket-path=[TEST_PATH]/db-master/db [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] diff --git a/test/expect/full-real-003.log b/test/expect/full-real-003.log index 7ed3290af..28bc9efec 100644 --- a/test/expect/full-real-003.log +++ b/test/expect/full-real-003.log @@ -18,13 +18,15 @@ db-socket-path=[TEST_PATH]/db-master/db [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo -spool-path=[TEST_PATH]/db-master/repo +spool-path=[TEST_PATH]/db-master/spool [global:archive-push] archive-async=y @@ -34,7 +36,7 @@ archive-copy=y start-fast=y incr backup - update during backup (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=24576 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=32768 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ + supplemental file: [TEST_PATH]/db-master/pgbackrest.conf @@ -46,13 +48,15 @@ db-socket-path=[TEST_PATH]/db-master/db [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo -spool-path=[TEST_PATH]/db-master/repo +spool-path=[TEST_PATH]/db-master/spool [global:archive-push] archive-async=y diff --git a/test/expect/full-real-004.log b/test/expect/full-real-004.log index e262b782a..7b0acfd86 100644 --- a/test/expect/full-real-004.log +++ b/test/expect/full-real-004.log @@ -17,13 +17,15 @@ db-port=[PORT-1] db-socket-path=[TEST_PATH]/db-master/db [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo -spool-path=[TEST_PATH]/db-master/repo +spool-path=[TEST_PATH]/db-master/spool [global:archive-push] archive-async=y @@ -33,7 +35,7 @@ archive-copy=y start-fast=y incr backup - update during backup (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=24576 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=32768 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ + supplemental file: [TEST_PATH]/db-master/pgbackrest.conf @@ -44,13 +46,15 @@ db-port=[PORT-1] db-socket-path=[TEST_PATH]/db-master/db [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo -spool-path=[TEST_PATH]/db-master/repo +spool-path=[TEST_PATH]/db-master/spool [global:archive-push] archive-async=y diff --git a/test/expect/full-real-005.log b/test/expect/full-real-005.log index fbba05004..a94fee8a0 100644 --- a/test/expect/full-real-005.log +++ b/test/expect/full-real-005.log @@ -23,11 +23,13 @@ db2-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -47,12 +49,13 @@ backup-config=[TEST_PATH]/db-master/pgbackrest.conf backup-host=db-master backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-standby/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-standby/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-standby/spool/log -repo-path=[TEST_PATH]/db-master/repo +log-path=[TEST_PATH]/db-standby/log +protocol-timeout=60 restore, type 'default', remap - restore backup on replica (db-standby host) > [CONTAINER-EXEC] db-standby [BACKREST-BIN] --config=[TEST_PATH]/db-standby/pgbackrest.conf --recovery-option=standby_mode=on --recovery-option="primary_conninfo=host=db-master port=6543 user=replicator" --link-map="pg_xlog=[TEST_PATH]/db-standby/db/pg_xlog" --link-all --stanza=db restore @@ -82,11 +85,13 @@ db2-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -108,19 +113,20 @@ backup-config=[TEST_PATH]/db-master/pgbackrest.conf backup-host=db-master backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-standby/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-standby/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-standby/spool/log -repo-path=[TEST_PATH]/db-master/repo +log-path=[TEST_PATH]/db-standby/log +protocol-timeout=60 check db - verify check command on standby (db-standby host) > [CONTAINER-EXEC] db-standby [BACKREST-BIN] --config=[TEST_PATH]/db-standby/pgbackrest.conf --log-level-console=detail --stanza=db check ------------------------------------------------------------------------------------------------------------------------------------ incr backup - update during backup (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=24576 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=32768 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ + supplemental file: [TEST_PATH]/db-master/pgbackrest.conf @@ -137,11 +143,13 @@ db2-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -163,12 +171,13 @@ backup-config=[TEST_PATH]/db-master/pgbackrest.conf backup-host=db-master backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-standby/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-standby/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-standby/spool/log -repo-path=[TEST_PATH]/db-master/repo +log-path=[TEST_PATH]/db-standby/log +protocol-timeout=60 restore, type 'default' (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=test1 --link-all --stanza=db restore diff --git a/test/expect/full-real-006.log b/test/expect/full-real-006.log index 464f5585a..adce4ed91 100644 --- a/test/expect/full-real-006.log +++ b/test/expect/full-real-006.log @@ -22,12 +22,13 @@ backup-config=[TEST_PATH]/db-standby/pgbackrest.conf backup-host=db-standby backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/db-standby/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/db-standby/pgbackrest.conf ----------------------------------------------------------- @@ -43,11 +44,13 @@ db2-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/db-standby/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-standby/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-standby/repo/log +log-path=[TEST_PATH]/db-standby/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-standby/repo [global:backup] @@ -81,12 +84,13 @@ backup-config=[TEST_PATH]/db-standby/pgbackrest.conf backup-host=db-standby backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/db-standby/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/db-standby/pgbackrest.conf ----------------------------------------------------------- @@ -104,11 +108,13 @@ db2-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/db-standby/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-standby/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-standby/repo/log +log-path=[TEST_PATH]/db-standby/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-standby/repo [global:backup] @@ -120,7 +126,7 @@ check db - verify check command on standby (db-standby host) ------------------------------------------------------------------------------------------------------------------------------------ incr backup - update during backup (db-standby host) -> [CONTAINER-EXEC] db-standby [BACKREST-BIN] --config=[TEST_PATH]/db-standby/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=24576 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y +> [CONTAINER-EXEC] db-standby [BACKREST-BIN] --config=[TEST_PATH]/db-standby/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=32768 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ + supplemental file: [TEST_PATH]/db-master/pgbackrest.conf @@ -136,12 +142,13 @@ backup-config=[TEST_PATH]/db-standby/pgbackrest.conf backup-host=db-standby backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/db-standby/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/db-standby/pgbackrest.conf ----------------------------------------------------------- @@ -159,11 +166,13 @@ db2-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/db-standby/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-standby/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-standby/repo/log +log-path=[TEST_PATH]/db-standby/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-standby/repo [global:backup] diff --git a/test/expect/full-real-007.log b/test/expect/full-real-007.log index 80636124a..3501da158 100644 --- a/test/expect/full-real-007.log +++ b/test/expect/full-real-007.log @@ -65,53 +65,6 @@ check db - fail on archive timeout (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --log-level-console=detail --archive-timeout=0.1 --stanza=db check ------------------------------------------------------------------------------------------------------------------------------------ -full backup - run a successful backup (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------- - -+ supplemental file: [TEST_PATH]/db-master/pgbackrest.conf ----------------------------------------------------------- -[db] -db-path=[TEST_PATH]/db-master/db/base -db-port=[PORT-1] -db-socket-path=[TEST_PATH]/db-master/db - -[global] -backup-cmd=[BACKREST-BIN] -backup-config=[TEST_PATH]/backup/pgbackrest.conf -backup-host=backup -backup-user=[USER-1] -compress=n -lock-path=[TEST_PATH]/db-master/spool/lock -log-level-console=debug -log-level-file=trace -log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo - -+ supplemental file: [TEST_PATH]/backup/pgbackrest.conf -------------------------------------------------------- -[db] -db-cmd=[BACKREST-BIN] -db-config=[TEST_PATH]/db-master/pgbackrest.conf -db-host=db-master -db-path=[TEST_PATH]/db-master/db/base -db-port=[PORT-1] -db-user=[USER-2] - -[global] -compress=n -lock-path=[TEST_PATH]/backup/repo/lock -log-level-console=debug -log-level-file=trace -log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log -repo-path=[TEST_PATH]/backup/repo - -[global:backup] -archive-copy=y -start-fast=y - check db - fail on backup info mismatch (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --archive-timeout=5 --stanza=db check ------------------------------------------------------------------------------------------------------------------------------------ @@ -169,12 +122,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -188,11 +142,13 @@ db-user=[USER-2] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -220,7 +176,7 @@ incr backup - fail on backup already running (backup host) ------------------------------------------------------------------------------------------------------------------------------------ incr backup - update during backup (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=24576 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=32768 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ + supplemental file: [TEST_PATH]/db-master/pgbackrest.conf @@ -236,12 +192,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -255,11 +212,13 @@ db-user=[USER-2] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -371,12 +330,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -390,11 +350,13 @@ db-user=[USER-2] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] diff --git a/test/expect/full-real-008.log b/test/expect/full-real-008.log index fb1ce504d..5821a137f 100644 --- a/test/expect/full-real-008.log +++ b/test/expect/full-real-008.log @@ -21,12 +21,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -39,11 +40,13 @@ db-port=[PORT-1] db-user=[USER-2] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -51,7 +54,7 @@ archive-copy=y start-fast=y incr backup - update during backup (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=24576 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=32768 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ + supplemental file: [TEST_PATH]/db-master/pgbackrest.conf @@ -66,12 +69,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -84,11 +88,13 @@ db-port=[PORT-1] db-user=[USER-2] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] diff --git a/test/expect/full-real-009.log b/test/expect/full-real-009.log index 4e84feba8..2530ab424 100644 --- a/test/expect/full-real-009.log +++ b/test/expect/full-real-009.log @@ -22,12 +22,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 spool-path=[TEST_PATH]/db-master/spool [global:archive-push] @@ -45,11 +46,13 @@ db-user=[USER-2] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -57,7 +60,7 @@ archive-copy=y start-fast=y incr backup - update during backup (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=24576 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=32768 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ + supplemental file: [TEST_PATH]/db-master/pgbackrest.conf @@ -73,12 +76,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 spool-path=[TEST_PATH]/db-master/spool [global:archive-push] @@ -96,11 +100,13 @@ db-user=[USER-2] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] diff --git a/test/expect/full-real-010.log b/test/expect/full-real-010.log index 2fc4768f4..e78fa16e8 100644 --- a/test/expect/full-real-010.log +++ b/test/expect/full-real-010.log @@ -21,12 +21,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 spool-path=[TEST_PATH]/db-master/spool [global:archive-push] @@ -43,11 +44,13 @@ db-port=[PORT-1] db-user=[USER-2] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -55,7 +58,7 @@ archive-copy=y start-fast=y incr backup - update during backup (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=24576 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=32768 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ + supplemental file: [TEST_PATH]/db-master/pgbackrest.conf @@ -70,12 +73,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 spool-path=[TEST_PATH]/db-master/spool [global:archive-push] @@ -92,11 +96,13 @@ db-port=[PORT-1] db-user=[USER-2] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] diff --git a/test/expect/full-real-011.log b/test/expect/full-real-011.log index 4d425bb51..bdd3a318d 100644 --- a/test/expect/full-real-011.log +++ b/test/expect/full-real-011.log @@ -22,12 +22,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/db-standby/pgbackrest.conf ----------------------------------------------------------- @@ -42,12 +43,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-standby/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-standby/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-standby/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-standby/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -67,11 +69,13 @@ db2-user=[USER-2] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -105,12 +109,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/db-standby/pgbackrest.conf ----------------------------------------------------------- @@ -127,12 +132,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-standby/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-standby/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-standby/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-standby/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -152,11 +158,13 @@ db2-user=[USER-2] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -168,7 +176,7 @@ check db - verify check command on standby (db-standby host) ------------------------------------------------------------------------------------------------------------------------------------ incr backup - update during backup (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=24576 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stop-auto --no-archive-check --buffer-size=32768 --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ + supplemental file: [TEST_PATH]/db-master/pgbackrest.conf @@ -184,12 +192,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/db-standby/pgbackrest.conf ----------------------------------------------------------- @@ -206,12 +215,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-1] compress=n -lock-path=[TEST_PATH]/db-standby/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-standby/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-standby/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-standby/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -231,11 +241,13 @@ db2-user=[USER-2] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] diff --git a/test/expect/full-synthetic-001.log b/test/expect/full-synthetic-001.log index 3260c36b1..8a1ad7feb 100644 --- a/test/expect/full-synthetic-001.log +++ b/test/expect/full-synthetic-001.log @@ -14,7 +14,7 @@ info all stanzas - no stanzas exist (db-master host) stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -52,7 +52,7 @@ db-version="9.4" full backup - error on identical link destinations (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link [TEST_PATH]/db-master/db/base/postgresql.conf (../pg_config) references a subdirectory of or the same directory as link [TEST_PATH]/db-master/db/base/pg_config_bad (../../db/pg_config) @@ -61,171 +61,228 @@ P00 INFO: backup command end: aborted with exception [070] full backup - error on link to a link (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link '[TEST_PATH]/db-master/db/base/postgresql.conf.bad' -> '../pg_config/postgresql.conf.link' cannot reference another link P00 INFO: backup command end: aborted with exception [070] full backup - create pg_stat link, pg_clog dir (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --manifest-save-threshold=3 --no-repo-sync --buffer-size=16384 --checksum-page --type=full --stanza=db backup +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --manifest-save-threshold=3 --buffer-size=16384 --checksum-page --repo-type=cifs --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --manifest-save-threshold=3 --no-online --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --manifest-save-threshold=3 --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[BACKUP-FULL-1], strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^[BACKUP-FULL-1], strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_dynshmem, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_notify, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_replslot, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_serial, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_snapshots, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat_tmp, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_subtrans, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_dynshmem +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_notify +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_replslot +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_serial +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_snapshots +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_stat_tmp +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_subtrans +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33001, strQueueIdx = 0 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bAlign => 1, bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000.32767, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33001 (64KB, 39%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P00 WARN: invalid page checksums found in file [TEST_PATH]/db-master/db/base/base/32768/33001 at pages 0, 3-5, 7 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 65536, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bValid => 1}), strKey = pg_data/base/32768/33000.32767 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000.32767 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bValid => 1}), strKey = pg_data/base/32768/33000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/17000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bAlign => 1, bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/global/pg_control, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 WARN: invalid page checksum found in file [TEST_PATH]/db-master/db/base/base/16384/17000 at page 1 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 16384, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 89373d9f2973502940de06bc5212489df3f8a912, [undef]), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/global/pg_control (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, {bValid => 1}), strKey = pg_data/base/1/12000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, {bAlign => 1, bValid => 1}), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 21, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, [undef]), strKey = pg_data/postgresql.conf P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/pg_stat/global.stat, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 21, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 5, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, [undef]), strKey = pg_data/pg_stat/global.stat P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 5, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/32768/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/16384/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/1/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: no jobs found, stop local: iHostConfigIdx = [undef], iHostIdx = 0, iProcessId = 1, strHostType = [undef] P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: all jobs complete P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 P00 INFO: full backup size = 160KB P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] P00 INFO: new backup label = [BACKUP-FULL-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = false, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = false -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1], strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -244,11 +301,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -371,7 +430,8 @@ HINT: does this stanza exist? stop all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --force stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo +P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 INFO: sent term signal to process [PROCESS-ID] P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -383,46 +443,64 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 full backup - abort backup - local (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --type=full --stanza=db backup --test --test-delay=5 --test-point=backup-start=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=5 --test-point=backup-start=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=5 --test-point=backup-start=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[BACKUP-FULL-2], strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^[BACKUP-FULL-2], strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 TEST: PgBaCkReStTeSt-BACKUP-START-PgBaCkReStTeSt P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 63, oException = [undef], strSignal = TERM P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -435,9 +513,12 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 63 full backup - global stop (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup P00 ERROR: [062]: stop file exists for all stanzas P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] @@ -450,7 +531,8 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 62 stop db stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -461,7 +543,8 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 stop db stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 WARN: stop file already exists for stanza db P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -473,9 +556,12 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 full backup - stanza stop (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup P00 ERROR: [062]: stop file exists for stanza db P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] @@ -488,7 +574,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 62 start db stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -499,7 +585,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 start all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo +P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -510,7 +596,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 start all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo +P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo-path=[TEST_PATH]/db-master/repo P00 WARN: stop file does not exist P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -522,87 +608,105 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 full backup - resume (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --force --checksum-page --type=full --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-FULL-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-FULL-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 WARN: --no-online passed and postmaster.pid exists but --force was passed so backup will continue though it looks like the postmaster is running and the backup will probably not be consistent -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (file.tmp, pg_data/PG_VERSION) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/PG_VERSION -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/file.tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file file.tmp +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-FULL-2]/file.tmp, /[BACKUP-FULL-2]/pg_data/PG_VERSION) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_dynshmem, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_notify, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_replslot, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_serial, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_snapshots, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat_tmp, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_subtrans, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_dynshmem +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_notify +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_replslot +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_serial +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_snapshots +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_stat_tmp +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_subtrans +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -649,49 +753,43 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 P00 INFO: full backup size = 160KB P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_dynshmem, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_notify, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_replslot, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_serial, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_snapshots, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat_tmp, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_subtrans, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] P00 INFO: new backup label = [BACKUP-FULL-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -710,11 +808,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -830,7 +930,7 @@ db-version="9.4" full backup - invalid repo (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --repo-path=/bogus_path --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=/bogus_path --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=/bogus_path --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [073]: repo-path '/bogus_path' does not exist @@ -839,125 +939,160 @@ P00 INFO: backup command end: aborted with exception [073] restore delta, backup '[BACKUP-FULL-2]' - add and delete files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = restore +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/PG_VERSION, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.info, strSourcePathType = backup:cluster, strUser = [undef] -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = false, strBackupClusterPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.info, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/PG_VERSION +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /backup.info +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = false, oStorage = [object], strBackupClusterPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: restore backup set [BACKUP-FULL-2] -P00 DEBUG: File->exists(): strPath = [BACKUP-FULL-2], strPathType = backup:cluster -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [BACKUP-FULL-2]/backup.manifest, strSourcePathType = backup:cluster, strUser = [undef] +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest P00 DEBUG: Restore->manifestOwnershipCheck(): oManifest = [object] P00 WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to [GROUP-1] P00 WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to [USER-1] -P00 DEBUG: File->remove(): bIgnoreMissing = true, bPathSync = , bTemp = true, strPath = [TEST_PATH]/db-master/db/base/global/pg_control, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/global/pg_control +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Restore->clean(): oManifest = [object] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/postmaster.opts +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/postmaster.opts +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/postgresql.auto.conf.tmp +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/postgresql.auto.conf.tmp +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/pg_subtrans/anything.tmp +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/pg_subtrans/anything.tmp +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/pg_stat_tmp/anything.tmp +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/pg_stat_tmp/anything.tmp +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/pg_replslot/anything.tmp +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/pg_replslot/anything.tmp +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/base/pgsql_tmp/pgsql_tmp.1 +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/base/pgsql_tmp/pgsql_tmp.1 +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove path [TEST_PATH]/db-master/db/base/base/pgsql_tmp P00 DETAIL: set ownership [USER-1]:[GROUP-1] on [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION -P00 DEBUG: File->owner(): strFile = [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, strGroup = [GROUP-1], strPathType = db:absolute, strUser = [USER-1] +P00 DEBUG: Storage::Local->owner(): strGroup = [GROUP-1], strPathFileExp = [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, strUser = [USER-1] P00 DETAIL: set ownership [USER-1]:[GROUP-1] on [TEST_PATH]/db-master/db/base/base/1/PG_VERSION -P00 DEBUG: File->owner(): strFile = [TEST_PATH]/db-master/db/base/base/1/PG_VERSION, strGroup = [GROUP-1], strPathType = db:absolute, strUser = [USER-1] +P00 DEBUG: Storage::Local->owner(): strGroup = [GROUP-1], strPathFileExp = [TEST_PATH]/db-master/db/base/base/1/PG_VERSION, strUser = [USER-1] P00 DETAIL: set mode 0660 on [TEST_PATH]/db-master/db/base/base/1/PG_VERSION P00 DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: cleanup removed 9 files, 2 paths P00 DEBUG: Restore->build(): oManifest = [object] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 1 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = , strMode = 0700, strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->owner(): strFile = [TEST_PATH]/db-master/db/base/pg_clog, strGroup = [GROUP-1], strPathType = db:absolute, strUser = [USER-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_dynshmem, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_notify, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_replslot, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_serial, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_snapshots, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat_tmp, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_subtrans, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = 0700, strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->owner(): strGroup = [GROUP-1], strPathFileExp = [TEST_PATH]/db-master/db/base/pg_clog, strUser = [USER-1] +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_dynshmem +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_notify +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_replslot +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_serial +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_snapshots +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_stat_tmp +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_subtrans +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: build level 2 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 3 paths/links -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, 65536, [MODIFICATION-TIME-1], 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 0, 0, pg_data/base/32768/33001, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33001, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, 32768, [MODIFICATION-TIME-1], 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 0, 0, pg_data/base/32768/33000.32767, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33000.32767, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, 32768, [MODIFICATION-TIME-1], 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 0, 0, pg_data/base/32768/33000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, 16384, [MODIFICATION-TIME-1], e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 0, 0, pg_data/base/16384/17000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/16384/17000, strOp = restoreFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, 8192, [MODIFICATION-TIME-1], 22c98d248ff548311eda88559e4a8405ed77c003, 0, 0, pg_data/base/1/12000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/1/12000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, 21, [MODIFICATION-TIME-2], 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, pg_data/postgresql.conf, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/postgresql.conf, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, 5, [MODIFICATION-TIME-2], e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, pg_data/pg_stat/global.stat, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/pg_stat/global.stat, strOp = restoreFile, strQueue = pg_data @@ -966,8 +1101,8 @@ P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/base/1/PG_VERSION, [undef], 0660, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/1/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/PG_VERSION, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = backup -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -990,8 +1125,8 @@ P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 -P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (0), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 8192, lSizeCurrent = 155648, lSizeTotal = 163878, strChecksum = 22c98d248ff548311eda88559e4a8405ed77c003, strDbFile = [TEST_PATH]/db-master/db/base/base/1/12000 @@ -1022,32 +1157,18 @@ P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 3, lSizeCurrent = 163875, lSizeTotal = 163878, strChecksum = 184473f470864e067ee3a22e64b47b0a1c356f29, strDbFile = [TEST_PATH]/db-master/db/base/PG_VERSION P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 DEBUG: Protocol::Local::Process->process: all jobs complete -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_dynshmem, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_notify, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_replslot, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_serial, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_snapshots, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_stat_tmp, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_subtrans, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = true, strDestinationFile = [TEST_PATH]/db-master/db/base/global/pg_control, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, strSourcePathType = db:absolute -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.manifest, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = [TEST_PATH]/db-master/db/base +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) +P00 DEBUG: Storage::Local->move(): bPathCreate = , strDestinationPathExp = [TEST_PATH]/db-master/db/base/global/pg_control, strSourcePathExp = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -1062,7 +1183,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to [GROUP-1] P00 WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to [USER-1] @@ -1078,7 +1199,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -1087,7 +1208,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -1097,7 +1218,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-FULL-2]' - restore all links by mapping (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --log-level-console=detail --link-map=pg_stat=../pg_stat --link-map=postgresql.conf=../pg_config/postgresql.conf --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-map=pg_stat=../pg_stat --link-map=postgresql.conf=../pg_config/postgresql.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-map=pg_stat=../pg_stat --link-map=postgresql.conf=../pg_config/postgresql.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to [GROUP-1] P00 WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to [USER-1] @@ -1114,7 +1235,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -1123,7 +1244,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -1161,7 +1282,7 @@ P00 ERROR: [038]: unable to restore while PostgreSQL is running restore delta, backup '[BACKUP-FULL-2]' - restore all links --link-all and mapping (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --log-level-console=detail --link-map=pg_stat=../pg_stat --link-all --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --link-map=pg_stat=../pg_stat --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --link-map=pg_stat=../pg_stat --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to [GROUP-1] P00 WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to [USER-1] @@ -1174,7 +1295,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 (64KB, 3 P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -1183,7 +1304,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION (3B P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 INFO: restore file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -1193,7 +1314,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, force, backup '[BACKUP-FULL-2]', expect exit 40 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 WARN: --delta or --force specified but unable to find 'PG_VERSION' or 'backup.manifest' in '[TEST_PATH]/db-master/db/base' to confirm that this is a valid $PGDATA directory. --delta and --force have been disabled and if any files exist in the destination directories the restore will be aborted. P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to [GROUP-1] @@ -1207,7 +1328,7 @@ P00 INFO: restore command end: aborted with exception [040] restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.manifest file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to [GROUP-1] P00 WARN: group bogus in manifest cannot be used for restore, set to [USER-1] @@ -1225,7 +1346,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches size 16384 and modification time [MODIFICATION-TIME-1] (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches size 8192 and modification time [MODIFICATION-TIME-1] (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -1234,7 +1355,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches size 3 and modification time [MODIFICATION-TIME-1] (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 INFO: restore file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -1244,7 +1365,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - invalid database version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 8.0, system-id = 6353949018581704918 @@ -1254,7 +1375,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid system id (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 9.4, system-id = 6999999999999999999 @@ -1264,7 +1385,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid control version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 842, catalog-version = 201409291 @@ -1274,7 +1395,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid catalog version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 942, catalog-version = 197208141 @@ -1284,7 +1405,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid path in pg_tblspc (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1295,7 +1416,7 @@ P00 INFO: backup command end: aborted with exception [069] incr backup - invalid relative tablespace is ../ (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1306,7 +1427,7 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - invalid relative tablespace is .. (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1317,7 +1438,7 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - invalid relative tablespace is ../../$PGDATA (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1328,7 +1449,7 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - invalid relative tablespace is ../../$PGDATA (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1339,7 +1460,7 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - tablespace link references a link (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1350,7 +1471,7 @@ P00 INFO: backup command end: aborted with exception [070] incr backup - invalid relative tablespace in $PGDATA (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1361,18 +1482,18 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - $PGDATA is a substring of valid tblspc excluding / (file missing err expected) (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 ERROR: [055]: unable to stat [TEST_PATH]/db-master/db/base_tbs: No such file or directory +P00 ERROR: [055]: unable to stat '[TEST_PATH]/db-master/db/base_tbs': No such file or directory P00 INFO: backup command end: aborted with exception [055] incr backup - invalid tablespace in $PGDATA (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1383,30 +1504,34 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - add tablespace 1 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --test --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1418,23 +1543,36 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = [BACKUP-EXPR](D|I)$, strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = [BACKUP-EXPR](D|I)\.manifest\.gz$, strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33001 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] @@ -1443,16 +1581,16 @@ P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/17 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/global/pg_control to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/12000 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, [BACKUP-INCR-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, [BACKUP-INCR-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 1 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1470,40 +1608,49 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 18 P00 INFO: incr backup size = 18B P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] P00 INFO: new backup label = [BACKUP-INCR-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1524,11 +1671,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1650,32 +1799,42 @@ db-version="9.4" incr backup - resume and add tablespace 2 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-INCR-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-INCR-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1687,32 +1846,43 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode P00 DEBUG: Manifest->build: found tablespace 11 in offline mode P00 DEBUG: Manifest->build: found tablespace 2 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/11, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts11 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts11, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts2, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/11, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts11 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts11 +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 WARN: aborted backup [BACKUP-INCR-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = () -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-INCR-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33001 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] @@ -1721,18 +1891,18 @@ P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/17 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/global/pg_control to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/12000 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 2 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1757,43 +1927,49 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 29 P00 INFO: incr backup size = 29B P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] P00 INFO: new backup label = [BACKUP-INCR-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1814,11 +1990,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1951,14 +2129,14 @@ db-version="9.4" diff backup - cannot resume - new diff (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-INCR-2] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-INCR-2] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (new backup-type 'diff' does not match aborted backup-type 'incr') - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-INCR-2] cannot be resumed: new backup-type 'diff' does not match aborted backup-type 'incr' P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file [TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1968,7 +2146,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/1/ P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-1] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1979,11 +2157,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2110,16 +2290,16 @@ db-version="9.4" 1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} diff backup - cannot resume - disabled / no repo link (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --no-resume --log-level-console=detail --no-repo-link --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --no-resume --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --no-repo-link --repo-path=[TEST_PATH]/db-master/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-DIFF-1] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-DIFF-1] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-DIFF-1] cannot be resumed: resume is disabled P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file [TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -2129,7 +2309,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/1/ P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-2] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2140,11 +2320,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2273,7 +2455,7 @@ db-version="9.4" restore, backup '[BACKUP-DIFF-2]', expect exit 40 - fail on used path (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db P00 INFO: restore backup set [BACKUP-DIFF-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 ERROR: [040]: cannot restore to path '[TEST_PATH]/db-master/db/base' that contains files - try using --delta if this is what you intended @@ -2282,7 +2464,7 @@ P00 INFO: restore command end: aborted with exception [040] restore, backup '[BACKUP-DIFF-2]', remap - remap all paths (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -2294,7 +2476,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -2307,7 +2489,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2317,7 +2499,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-DIFF-2]', remap - ensure file in tblspc root remains after --delta (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -2333,7 +2515,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 - exis P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -2346,7 +2528,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init - exists and matches backup (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt - exists and matches backup (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2356,7 +2538,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - add files and remove tablespace 2 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] @@ -2368,7 +2550,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base-2/base/base2 P00 INFO: incr backup size = 13B P00 INFO: new backup label = [BACKUP-INCR-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2383,11 +2565,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2513,20 +2697,21 @@ db-version="9.4" incr backup - update files - fail on missing backup.info (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 ERROR: [055]: unable to open [TEST_PATH]/db-master/repo/backup/db/backup.info or [TEST_PATH]/db-master/repo/backup/db/backup.info.copy P00 ERROR: [055]: [TEST_PATH]/db-master/repo/backup/db/backup.info does not exist and is required to perform a backup. HINT: has a stanza-create been performed? P00 INFO: backup command end: aborted with exception [055] -stanza-create db - fail on backup directory not empty and missing backup.info (db-master host) +stanza-create db - fail on backup directory missing backup.info (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [040]: backup directory and/or archive directory not empty - HINT: Use --force to force the stanza data to be created. -P00 INFO: stanza-create command end: aborted with exception [040] +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 ERROR: [055]: backup information missing + HINT: use stanza-create --force to force the stanza data to be created. +P00 INFO: stanza-create command end: aborted with exception [055] + supplemental file: [TEST_PATH]/db-master/repo/archive/db/archive.info ----------------------------------------------------------------------- @@ -2546,7 +2731,7 @@ db-version="9.4" stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -2589,7 +2774,7 @@ db-version="9.4" incr backup - update files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-INCR-3], version = [VERSION-1] @@ -2599,7 +2784,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base-2/base/16384 P00 INFO: incr backup size = 8B P00 INFO: new backup label = [BACKUP-INCR-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2614,11 +2799,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2745,7 +2932,7 @@ db-version="9.4" diff backup - updates since last full (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2763,7 +2950,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: diff backup size = 43B P00 INFO: new backup label = [BACKUP-DIFF-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2778,11 +2965,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2910,7 +3099,7 @@ db-version="9.4" incr backup - remove files - but won't affect manifest (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] @@ -2919,7 +3108,7 @@ P00 TEST: PgBaCkReStTeSt-MANIFEST-BUILD-PgBaCkReStTeSt P00 INFO: incr backup size = 0B P00 INFO: new backup label = [BACKUP-INCR-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2934,11 +3123,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -3067,7 +3258,7 @@ db-version="9.4" diff backup - remove files during backup (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -3083,7 +3274,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: diff backup size = 35B P00 INFO: new backup label = [BACKUP-DIFF-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3098,11 +3289,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -3230,7 +3423,7 @@ db-version="9.4" full backup - update file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b @@ -3252,7 +3445,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: full backup size = 144KB P00 INFO: new backup label = [BACKUP-FULL-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3267,11 +3460,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -3735,7 +3930,7 @@ info db stanza - normal output (db-master host) expire full=1 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --retention-full=1 --stanza=db expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-full=1 --stanza=db P00 INFO: expire full backup set: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3], [BACKUP-INCR-4], [BACKUP-DIFF-3], [BACKUP-INCR-5], [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-INCR-5] @@ -3749,7 +3944,7 @@ P00 INFO: expire command end: completed successfully diff backup - add file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --checksum-page --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] @@ -3757,7 +3952,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/base/base2.txt (9B, 100% P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3772,11 +3967,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -3901,7 +4098,7 @@ db-version="9.4" restore delta, remap - selective restore 16384 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=16384 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3914,7 +4111,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/32768\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3929,7 +4126,7 @@ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3939,7 +4136,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, remap - selective restore 32768 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=32768 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3952,7 +4149,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/16384\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3967,7 +4164,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3987,7 +4184,7 @@ P00 ERROR: [081]: system databases (template0, postgres, etc.) are included by restore, remap, expect exit 73 - no tablespace remap - error when tablespace dir does not exist (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --tablespace-map-all=../../tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3999,7 +4196,7 @@ P00 INFO: restore command end: aborted with exception [073] restore - no tablespace remap (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --tablespace-map-all=../../tablespace --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -4008,7 +4205,7 @@ P00 DETAIL: check [TEST_PATH]/db-master/db/base-2/tablespace exists P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -4023,7 +4220,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PA P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/base/recovery.conf @@ -4199,7 +4396,7 @@ diff backup - config file warning on local (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail 2>&1 --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ WARN: [TEST_PATH]/db-master/pgbackrest.conf file contains invalid option 'bogus' -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] @@ -4207,7 +4404,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/base/base/base2.txt (9B, P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-6] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -4220,11 +4417,13 @@ db-path=[TEST_PATH]/db-master/db/base-2/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -4351,7 +4550,7 @@ db-version="9.4" diff backup - option backup-standby reset - backup performed from master (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --backup-standby --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --backup-standby --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --backup-standby --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 WARN: option backup-standby is enabled but standby is not properly configured - backups will be performed from the master @@ -4360,7 +4559,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/base/base/base2.txt (9B, P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-7] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -4373,11 +4572,13 @@ db-path=[TEST_PATH]/db-master/db/base-2/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] diff --git a/test/expect/full-synthetic-002.log b/test/expect/full-synthetic-002.log index fea1c4415..74c55fa7d 100644 --- a/test/expect/full-synthetic-002.log +++ b/test/expect/full-synthetic-002.log @@ -14,7 +14,7 @@ info all stanzas - no stanzas exist (db-master host) stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -52,7 +52,7 @@ db-version="9.4" full backup - error on identical link destinations (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link [TEST_PATH]/db-master/db/base/postgresql.conf (../pg_config) references a subdirectory of or the same directory as link [TEST_PATH]/db-master/db/base/pg_config_bad (../../db/pg_config) @@ -61,164 +61,221 @@ P00 INFO: backup command end: aborted with exception [070] full backup - error on link to a link (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link '[TEST_PATH]/db-master/db/base/postgresql.conf.bad' -> '../pg_config/postgresql.conf.link' cannot reference another link P00 INFO: backup command end: aborted with exception [070] full backup - create pg_stat link, pg_clog dir (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --manifest-save-threshold=3 --no-repo-sync --buffer-size=16384 --checksum-page --type=full --stanza=db backup +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --manifest-save-threshold=3 --buffer-size=16384 --checksum-page --repo-type=cifs --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --manifest-save-threshold=3 --no-online --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --manifest-save-threshold=3 --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[BACKUP-FULL-1], strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^[BACKUP-FULL-1], strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33001, strQueueIdx = 0 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bAlign => 1, bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000.32767, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33001 (64KB, 39%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P00 WARN: invalid page checksums found in file [TEST_PATH]/db-master/db/base/base/32768/33001 at pages 0, 3-5, 7 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 65536, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bValid => 1}), strKey = pg_data/base/32768/33000.32767 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000.32767 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bValid => 1}), strKey = pg_data/base/32768/33000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/17000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bAlign => 1, bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/global/pg_control, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 WARN: invalid page checksum found in file [TEST_PATH]/db-master/db/base/base/16384/17000 at page 1 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 16384, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 89373d9f2973502940de06bc5212489df3f8a912, [undef]), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/global/pg_control (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, {bValid => 1}), strKey = pg_data/base/1/12000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, {bAlign => 1, bValid => 1}), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 21, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, [undef]), strKey = pg_data/postgresql.conf P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/pg_stat/global.stat, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 21, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 5, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, [undef]), strKey = pg_data/pg_stat/global.stat P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 5, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/32768/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/16384/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/1/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: no jobs found, stop local: iHostConfigIdx = [undef], iHostIdx = 0, iProcessId = 1, strHostType = [undef] P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: all jobs complete P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 P00 INFO: full backup size = 160KB P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] P00 INFO: new backup label = [BACKUP-FULL-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = false, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = false -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1], strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -237,11 +294,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -351,80 +410,98 @@ db-version="9.4" full backup - resume (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --force --checksum-page --type=full --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-FULL-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-FULL-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 WARN: --no-online passed and postmaster.pid exists but --force was passed so backup will continue though it looks like the postmaster is running and the backup will probably not be consistent -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (file.tmp, pg_data/PG_VERSION) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/PG_VERSION -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/file.tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file file.tmp +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-FULL-2]/file.tmp, /[BACKUP-FULL-2]/pg_data/PG_VERSION) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -471,42 +548,43 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 P00 INFO: full backup size = 160KB P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] P00 INFO: new backup label = [BACKUP-FULL-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -525,11 +603,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -639,96 +719,119 @@ db-version="9.4" restore delta, backup '[BACKUP-FULL-2]' - add and delete files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = restore +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/PG_VERSION, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.info, strSourcePathType = backup:cluster, strUser = [undef] -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = false, strBackupClusterPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.info, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/PG_VERSION +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /backup.info +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = false, oStorage = [object], strBackupClusterPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: restore backup set [BACKUP-FULL-2] -P00 DEBUG: File->exists(): strPath = [BACKUP-FULL-2], strPathType = backup:cluster -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [BACKUP-FULL-2]/backup.manifest, strSourcePathType = backup:cluster, strUser = [undef] +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest P00 DEBUG: Restore->manifestOwnershipCheck(): oManifest = [object] -P00 DEBUG: File->remove(): bIgnoreMissing = true, bPathSync = , bTemp = true, strPath = [TEST_PATH]/db-master/db/base/global/pg_control, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/global/pg_control +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Restore->clean(): oManifest = [object] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme P00 DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: cleanup removed 3 files, 1 path P00 DEBUG: Restore->build(): oManifest = [object] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 1 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = , strMode = 0700, strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = 0700, strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: build level 2 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 3 paths/links -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, 65536, [MODIFICATION-TIME-1], 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 0, 0, pg_data/base/32768/33001, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33001, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, 32768, [MODIFICATION-TIME-1], 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 0, 0, pg_data/base/32768/33000.32767, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33000.32767, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, 32768, [MODIFICATION-TIME-1], 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 0, 0, pg_data/base/32768/33000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, 16384, [MODIFICATION-TIME-1], e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 0, 0, pg_data/base/16384/17000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/16384/17000, strOp = restoreFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, 8192, [MODIFICATION-TIME-1], 22c98d248ff548311eda88559e4a8405ed77c003, 0, 0, pg_data/base/1/12000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/1/12000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, 21, [MODIFICATION-TIME-2], 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, pg_data/postgresql.conf, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/postgresql.conf, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, 5, [MODIFICATION-TIME-2], e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, pg_data/pg_stat/global.stat, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/pg_stat/global.stat, strOp = restoreFile, strQueue = pg_data @@ -737,8 +840,8 @@ P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/base/1/PG_VERSION, [undef], 0660, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/1/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/PG_VERSION, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = backup -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -761,8 +864,8 @@ P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 -P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (0), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 8192, lSizeCurrent = 155648, lSizeTotal = 163878, strChecksum = 22c98d248ff548311eda88559e4a8405ed77c003, strDbFile = [TEST_PATH]/db-master/db/base/base/1/12000 @@ -793,25 +896,18 @@ P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 3, lSizeCurrent = 163875, lSizeTotal = 163878, strChecksum = 184473f470864e067ee3a22e64b47b0a1c356f29, strDbFile = [TEST_PATH]/db-master/db/base/PG_VERSION P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 DEBUG: Protocol::Local::Process->process: all jobs complete -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = true, strDestinationFile = [TEST_PATH]/db-master/db/base/global/pg_control, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, strSourcePathType = db:absolute -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.manifest, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = [TEST_PATH]/db-master/db/base +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) +P00 DEBUG: Storage::Local->move(): bPathCreate = , strDestinationPathExp = [TEST_PATH]/db-master/db/base/global/pg_control, strSourcePathExp = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -826,7 +922,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists @@ -840,7 +936,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -849,7 +945,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -859,7 +955,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, force, backup '[BACKUP-FULL-2]', expect exit 40 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 WARN: --delta or --force specified but unable to find 'PG_VERSION' or 'backup.manifest' in '[TEST_PATH]/db-master/db/base' to confirm that this is a valid $PGDATA directory. --delta and --force have been disabled and if any files exist in the destination directories the restore will be aborted. P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: contents of directory link pg_stat will be restored in a directory at the same location @@ -871,7 +967,7 @@ P00 INFO: restore command end: aborted with exception [040] restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.manifest file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: group bogus in manifest cannot be used for restore, set to [USER-1] P00 WARN: user bogus in manifest cannot be used for restore, set to [USER-1] @@ -887,7 +983,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches size 16384 and modification time [MODIFICATION-TIME-1] (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches size 8192 and modification time [MODIFICATION-TIME-1] (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -896,7 +992,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches size 3 and modification time [MODIFICATION-TIME-1] (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 INFO: restore file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -906,7 +1002,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - invalid database version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 8.0, system-id = 6353949018581704918 @@ -916,7 +1012,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid system id (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 9.4, system-id = 6999999999999999999 @@ -926,7 +1022,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid control version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 842, catalog-version = 201409291 @@ -936,7 +1032,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid catalog version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 942, catalog-version = 197208141 @@ -946,7 +1042,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid path in pg_tblspc (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -957,7 +1053,7 @@ P00 INFO: backup command end: aborted with exception [069] incr backup - invalid relative tablespace in $PGDATA (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -968,7 +1064,7 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - invalid tablespace in $PGDATA (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -979,30 +1075,34 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - add tablespace 1 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --test --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1014,67 +1114,80 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = [BACKUP-EXPR](D|I)$, strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = [BACKUP-EXPR](D|I)\.manifest\.gz$, strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/1, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/1, strSourcePathType = backup:tmp +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/pg_tblspc/1, strSourcePathFileExp = /[BACKUP-INCR-1]/pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33001 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33001, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33001, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33001, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33001 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000.32767, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000.32767, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33000.32767, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.32767 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/17000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/17000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/17000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/16384/17000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/17000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/global/pg_control to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/global/pg_control, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/global/pg_control, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/global/pg_control, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/global/pg_control P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/12000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/12000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/12000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/1/12000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/12000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/postgresql.conf, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/postgresql.conf, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/postgresql.conf, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/postgresql.conf +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, [BACKUP-INCR-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, [BACKUP-INCR-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/pg_stat/global.stat, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/pg_stat/global.stat, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/pg_stat/global.stat, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/pg_stat/global.stat P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/16384/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/1/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 1 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1092,48 +1205,49 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 18 P00 INFO: incr backup size = 18B P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] P00 INFO: new backup label = [BACKUP-INCR-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1154,11 +1268,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1274,32 +1390,42 @@ db-version="9.4" incr backup - resume and add tablespace 2 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-INCR-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-INCR-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1311,92 +1437,105 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode P00 DEBUG: Manifest->build: found tablespace 2 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts2, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 WARN: aborted backup [BACKUP-INCR-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (pg_data/PG_VERSION, pg_data/base/1/12000, pg_data/base/1/PG_VERSION, pg_data/base/16384/17000, pg_data/base/16384/PG_VERSION, pg_data/base/32768/33000, pg_data/base/32768/33000.32767, pg_data/base/32768/33001, pg_data/base/32768/PG_VERSION, pg_data/global/pg_control, pg_data/pg_stat/global.stat, pg_data/pg_tblspc/1, pg_data/postgresql.conf) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/postgresql.conf -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/pg_tblspc/1 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/pg_stat/global.stat -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/global/pg_control -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/32768/PG_VERSION -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/32768/33001 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/32768/33000.32767 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/32768/33000 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/16384/PG_VERSION -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/16384/17000 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/1/PG_VERSION -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/1/12000 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/PG_VERSION -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-INCR-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/1/12000 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/1/PG_VERSION +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/16384/17000 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/16384/PG_VERSION +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33000 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33000.32767 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33001 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/PG_VERSION +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/global/pg_control +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/pg_stat/global.stat +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/pg_tblspc/1 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/postgresql.conf +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-INCR-2]/pg_data/PG_VERSION, /[BACKUP-INCR-2]/pg_data/base/1/12000, /[BACKUP-INCR-2]/pg_data/base/1/PG_VERSION, /[BACKUP-INCR-2]/pg_data/base/16384/17000, /[BACKUP-INCR-2]/pg_data/base/16384/PG_VERSION, /[BACKUP-INCR-2]/pg_data/base/32768/33000, /[BACKUP-INCR-2]/pg_data/base/32768/33000.32767, /[BACKUP-INCR-2]/pg_data/base/32768/33001, /[BACKUP-INCR-2]/pg_data/base/32768/PG_VERSION, /[BACKUP-INCR-2]/pg_data/global/pg_control, /[BACKUP-INCR-2]/pg_data/pg_stat/global.stat, /[BACKUP-INCR-2]/pg_data/pg_tblspc/1, /[BACKUP-INCR-2]/pg_data/postgresql.conf) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/1, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/1, strSourcePathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/2, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/2, strSourcePathType = backup:tmp +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1]/32768 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc/1, strSourcePathFileExp = /[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc/2, strSourcePathFileExp = /[BACKUP-INCR-2]/pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33001 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33001, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33001, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33001, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33001 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000.32767, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000.32767, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33000.32767, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.32767 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/17000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/17000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/17000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/16384/17000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/17000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/global/pg_control to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/global/pg_control, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/global/pg_control, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/global/pg_control, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/global/pg_control P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/12000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/12000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/12000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/1/12000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/12000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/postgresql.conf, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/postgresql.conf, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/postgresql.conf, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/postgresql.conf +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/pg_stat/global.stat, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/pg_stat/global.stat, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_stat/global.stat, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/pg_stat/global.stat +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/16384/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/1/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 2 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1421,51 +1560,49 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 29 P00 INFO: incr backup size = 29B P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] P00 INFO: new backup label = [BACKUP-INCR-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1486,11 +1623,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1613,14 +1752,14 @@ db-version="9.4" diff backup - cannot resume - new diff (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-INCR-2] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-INCR-2] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (new backup-type 'diff' does not match aborted backup-type 'incr') - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-INCR-2] cannot be resumed: new backup-type 'diff' does not match aborted backup-type 'incr' P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file [TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1630,7 +1769,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/1/ P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-1] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1641,11 +1780,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1766,16 +1907,16 @@ db-version="9.4" 1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} diff backup - cannot resume - disabled / no repo link (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --no-resume --log-level-console=detail --no-repo-link --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --no-resume --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --no-repo-link --repo-path=[TEST_PATH]/db-master/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-DIFF-1] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-DIFF-1] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-DIFF-1] cannot be resumed: resume is disabled P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file [TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1785,7 +1926,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/1/ P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-2] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1796,11 +1937,13 @@ db-path=[TEST_PATH]/db-master/db/base [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1923,7 +2066,7 @@ db-version="9.4" restore, backup '[BACKUP-DIFF-2]', expect exit 40 - fail on used path (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db P00 INFO: restore backup set [BACKUP-DIFF-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 ERROR: [040]: cannot restore to path '[TEST_PATH]/db-master/db/base' that contains files - try using --delta if this is what you intended @@ -1932,7 +2075,7 @@ P00 INFO: restore command end: aborted with exception [040] restore, backup '[BACKUP-DIFF-2]', remap - remap all paths (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -1944,7 +2087,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -1957,7 +2100,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -1967,7 +2110,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-DIFF-2]', remap - ensure file in tblspc root remains after --delta (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -1983,7 +2126,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 - exis P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -1996,7 +2139,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init - exists and matches backup (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt - exists and matches backup (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2006,7 +2149,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - add files and remove tablespace 2 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] @@ -2018,7 +2161,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base-2/base/base2 P00 INFO: incr backup size = 13B P00 INFO: new backup label = [BACKUP-INCR-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2033,11 +2176,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2157,7 +2302,7 @@ db-version="9.4" stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -2200,7 +2345,7 @@ db-version="9.4" incr backup - update files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-INCR-3], version = [VERSION-1] @@ -2210,7 +2355,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base-2/base/16384 P00 INFO: incr backup size = 8B P00 INFO: new backup label = [BACKUP-INCR-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2225,11 +2370,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2350,7 +2497,7 @@ db-version="9.4" diff backup - updates since last full (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2368,7 +2515,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: diff backup size = 43B P00 INFO: new backup label = [BACKUP-DIFF-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2383,11 +2530,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2509,7 +2658,7 @@ db-version="9.4" incr backup - remove files - but won't affect manifest (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] @@ -2518,7 +2667,7 @@ P00 TEST: PgBaCkReStTeSt-MANIFEST-BUILD-PgBaCkReStTeSt P00 INFO: incr backup size = 0B P00 INFO: new backup label = [BACKUP-INCR-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2533,11 +2682,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2660,7 +2811,7 @@ db-version="9.4" diff backup - remove files during backup (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2676,7 +2827,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: diff backup size = 35B P00 INFO: new backup label = [BACKUP-DIFF-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2691,11 +2842,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2817,7 +2970,7 @@ db-version="9.4" full backup - update file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b @@ -2839,7 +2992,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: full backup size = 144KB P00 INFO: new backup label = [BACKUP-FULL-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2854,11 +3007,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -3316,7 +3471,7 @@ info db stanza - normal output (db-master host) expire full=1 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --retention-full=1 --stanza=db expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-full=1 --stanza=db P00 INFO: expire full backup set: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3], [BACKUP-INCR-4], [BACKUP-DIFF-3], [BACKUP-INCR-5], [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-INCR-5] @@ -3330,7 +3485,7 @@ P00 INFO: expire command end: completed successfully diff backup - add file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --checksum-page --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] @@ -3338,7 +3493,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/base/base2.txt (9B, 100% P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3353,11 +3508,13 @@ tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] compress=n -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -3476,7 +3633,7 @@ db-version="9.4" restore delta, remap - selective restore 16384 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=16384 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3489,7 +3646,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/32768\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3504,7 +3661,7 @@ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3514,7 +3671,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, remap - selective restore 32768 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=32768 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3527,7 +3684,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/16384\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3542,7 +3699,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3562,7 +3719,7 @@ P00 ERROR: [081]: system databases (template0, postgres, etc.) are included by restore, remap, expect exit 73 - no tablespace remap - error when tablespace dir does not exist (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --tablespace-map-all=../../tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3574,7 +3731,7 @@ P00 INFO: restore command end: aborted with exception [073] restore - no tablespace remap (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --tablespace-map-all=../../tablespace --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3583,7 +3740,7 @@ P00 DETAIL: check [TEST_PATH]/db-master/db/base-2/tablespace exists P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3598,7 +3755,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PA P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/base/recovery.conf diff --git a/test/expect/full-synthetic-003.log b/test/expect/full-synthetic-003.log index 40238d2e0..826a77c3e 100644 --- a/test/expect/full-synthetic-003.log +++ b/test/expect/full-synthetic-003.log @@ -14,7 +14,7 @@ info all stanzas - no stanzas exist (db-master host) stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -52,7 +52,7 @@ db-version="9.4" full backup - error on identical link destinations (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link [TEST_PATH]/db-master/db/base/postgresql.conf (../pg_config) references a subdirectory of or the same directory as link [TEST_PATH]/db-master/db/base/pg_config_bad (../../db/pg_config) @@ -61,164 +61,221 @@ P00 INFO: backup command end: aborted with exception [070] full backup - error on link to a link (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link '[TEST_PATH]/db-master/db/base/postgresql.conf.bad' -> '../pg_config/postgresql.conf.link' cannot reference another link P00 INFO: backup command end: aborted with exception [070] full backup - create pg_stat link, pg_clog dir (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --manifest-save-threshold=3 --no-repo-sync --buffer-size=16384 --checksum-page --type=full --stanza=db backup +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --manifest-save-threshold=3 --buffer-size=16384 --checksum-page --repo-type=cifs --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --manifest-save-threshold=3 --no-online --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --manifest-save-threshold=3 --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[BACKUP-FULL-1], strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^[BACKUP-FULL-1], strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33001, strQueueIdx = 0 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 325, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 325, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bAlign => 1, bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000.32767, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33001 (64KB, 39%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P00 WARN: invalid page checksums found in file [TEST_PATH]/db-master/db/base/base/32768/33001 at pages 0, 3-5, 7 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 65536, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 263, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bValid => 1}), strKey = pg_data/base/32768/33000.32767 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 263, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000.32767 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 272, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bValid => 1}), strKey = pg_data/base/32768/33000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 272, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/17000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 217, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 217, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bAlign => 1, bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/global/pg_control, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 WARN: invalid page checksum found in file [TEST_PATH]/db-master/db/base/base/16384/17000 at page 1 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 16384, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 165, 89373d9f2973502940de06bc5212489df3f8a912, [undef]), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/global/pg_control (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 192, 22c98d248ff548311eda88559e4a8405ed77c003, {bValid => 1}), strKey = pg_data/base/1/12000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 192, 22c98d248ff548311eda88559e4a8405ed77c003, {bAlign => 1, bValid => 1}), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 21, 41, 6721d92c9fcdf4248acff1f9a1377127d9064807, [undef]), strKey = pg_data/postgresql.conf P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/pg_stat/global.stat, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 21, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 5, 25, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, [undef]), strKey = pg_data/pg_stat/global.stat P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 5, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/32768/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/16384/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/1/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: no jobs found, stop local: iHostConfigIdx = [undef], iHostIdx = 0, iProcessId = 1, strHostType = [undef] P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: all jobs complete P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 P00 INFO: full backup size = 160KB P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] P00 INFO: new backup label = [BACKUP-FULL-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = false, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = false -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1], strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -236,11 +293,13 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -349,80 +408,98 @@ db-version="9.4" full backup - resume (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --force --checksum-page --type=full --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-FULL-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-FULL-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 WARN: --no-online passed and postmaster.pid exists but --force was passed so backup will continue though it looks like the postmaster is running and the backup will probably not be consistent -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (file.tmp.gz, pg_data/PG_VERSION.gz) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/PG_VERSION.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/file.tmp.gz -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file file.tmp.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION.gz +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-FULL-2]/file.tmp.gz, /[BACKUP-FULL-2]/pg_data/PG_VERSION.gz) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -469,42 +546,43 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 P00 INFO: full backup size = 160KB P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] P00 INFO: new backup label = [BACKUP-FULL-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -522,11 +600,13 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -635,96 +715,119 @@ db-version="9.4" restore delta, backup '[BACKUP-FULL-2]' - add and delete files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = restore +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/PG_VERSION, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.info, strSourcePathType = backup:cluster, strUser = [undef] -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = false, strBackupClusterPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.info, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/PG_VERSION +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /backup.info +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = false, oStorage = [object], strBackupClusterPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: restore backup set [BACKUP-FULL-2] -P00 DEBUG: File->exists(): strPath = [BACKUP-FULL-2], strPathType = backup:cluster -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [BACKUP-FULL-2]/backup.manifest, strSourcePathType = backup:cluster, strUser = [undef] +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest P00 DEBUG: Restore->manifestOwnershipCheck(): oManifest = [object] -P00 DEBUG: File->remove(): bIgnoreMissing = true, bPathSync = , bTemp = true, strPath = [TEST_PATH]/db-master/db/base/global/pg_control, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/global/pg_control +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Restore->clean(): oManifest = [object] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme P00 DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: cleanup removed 3 files, 1 path P00 DEBUG: Restore->build(): oManifest = [object] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 1 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = , strMode = 0700, strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = 0700, strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: build level 2 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 3 paths/links -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, 65536, [MODIFICATION-TIME-1], 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 0, 0, pg_data/base/32768/33001, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33001, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, 32768, [MODIFICATION-TIME-1], 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 0, 0, pg_data/base/32768/33000.32767, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33000.32767, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, 32768, [MODIFICATION-TIME-1], 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 0, 0, pg_data/base/32768/33000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, 16384, [MODIFICATION-TIME-1], e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 0, 0, pg_data/base/16384/17000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/16384/17000, strOp = restoreFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, 8192, [MODIFICATION-TIME-1], 22c98d248ff548311eda88559e4a8405ed77c003, 0, 0, pg_data/base/1/12000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/1/12000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, 21, [MODIFICATION-TIME-2], 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, pg_data/postgresql.conf, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/postgresql.conf, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, 5, [MODIFICATION-TIME-2], e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, pg_data/pg_stat/global.stat, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/pg_stat/global.stat, strOp = restoreFile, strQueue = pg_data @@ -733,8 +836,8 @@ P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/base/1/PG_VERSION, [undef], 0660, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/1/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/PG_VERSION, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = backup -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -757,8 +860,8 @@ P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 -P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (0), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 8192, lSizeCurrent = 155648, lSizeTotal = 163878, strChecksum = 22c98d248ff548311eda88559e4a8405ed77c003, strDbFile = [TEST_PATH]/db-master/db/base/base/1/12000 @@ -789,25 +892,18 @@ P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 3, lSizeCurrent = 163875, lSizeTotal = 163878, strChecksum = 184473f470864e067ee3a22e64b47b0a1c356f29, strDbFile = [TEST_PATH]/db-master/db/base/PG_VERSION P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 DEBUG: Protocol::Local::Process->process: all jobs complete -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = true, strDestinationFile = [TEST_PATH]/db-master/db/base/global/pg_control, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, strSourcePathType = db:absolute -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.manifest, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = [TEST_PATH]/db-master/db/base +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) +P00 DEBUG: Storage::Local->move(): bPathCreate = , strDestinationPathExp = [TEST_PATH]/db-master/db/base/global/pg_control, strSourcePathExp = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -822,7 +918,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists @@ -836,7 +932,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -845,7 +941,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -855,7 +951,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, force, backup '[BACKUP-FULL-2]', expect exit 40 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 WARN: --delta or --force specified but unable to find 'PG_VERSION' or 'backup.manifest' in '[TEST_PATH]/db-master/db/base' to confirm that this is a valid $PGDATA directory. --delta and --force have been disabled and if any files exist in the destination directories the restore will be aborted. P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: contents of directory link pg_stat will be restored in a directory at the same location @@ -867,7 +963,7 @@ P00 INFO: restore command end: aborted with exception [040] restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.manifest file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: group bogus in manifest cannot be used for restore, set to [USER-1] P00 WARN: user bogus in manifest cannot be used for restore, set to [USER-1] @@ -883,7 +979,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches size 16384 and modification time [MODIFICATION-TIME-1] (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches size 8192 and modification time [MODIFICATION-TIME-1] (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -892,7 +988,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches size 3 and modification time [MODIFICATION-TIME-1] (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 INFO: restore file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -902,7 +998,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - invalid database version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 8.0, system-id = 6353949018581704918 @@ -912,7 +1008,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid system id (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 9.4, system-id = 6999999999999999999 @@ -922,7 +1018,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid control version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 842, catalog-version = 201409291 @@ -932,7 +1028,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid catalog version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 942, catalog-version = 197208141 @@ -942,7 +1038,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid path in pg_tblspc (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -953,7 +1049,7 @@ P00 INFO: backup command end: aborted with exception [069] incr backup - invalid relative tablespace in $PGDATA (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -964,7 +1060,7 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - invalid tablespace in $PGDATA (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -975,30 +1071,34 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - add tablespace 1 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --test --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1010,23 +1110,36 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = [BACKUP-EXPR](D|I)$, strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = [BACKUP-EXPR](D|I)\.manifest\.gz$, strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33001 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] @@ -1035,16 +1148,16 @@ P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/17 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/global/pg_control to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/12000 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, [BACKUP-INCR-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, [BACKUP-INCR-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 1 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1062,40 +1175,49 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 18 P00 INFO: incr backup size = 18B P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] P00 INFO: new backup label = [BACKUP-INCR-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1115,11 +1237,13 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1234,32 +1358,42 @@ db-version="9.4" incr backup - resume and add tablespace 2 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-INCR-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-INCR-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1271,29 +1405,40 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode P00 DEBUG: Manifest->build: found tablespace 2 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts2, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 WARN: aborted backup [BACKUP-INCR-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = () -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-INCR-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33001 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] @@ -1302,18 +1447,18 @@ P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/17 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/global/pg_control to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/12000 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 2 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1338,43 +1483,49 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 29 P00 INFO: incr backup size = 29B P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] P00 INFO: new backup label = [BACKUP-INCR-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1394,11 +1545,13 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1520,14 +1673,14 @@ db-version="9.4" diff backup - cannot resume - new diff (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-INCR-2] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-INCR-2] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (new backup-type 'diff' does not match aborted backup-type 'incr') - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-INCR-2] cannot be resumed: new backup-type 'diff' does not match aborted backup-type 'incr' P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file [TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1537,7 +1690,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/1/ P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-1] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1547,11 +1700,13 @@ P00 INFO: expire command end: completed successfully db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1671,16 +1826,16 @@ db-version="9.4" 1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} diff backup - cannot resume - disabled / no repo link (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --no-resume --log-level-console=detail --no-repo-link --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --no-resume --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --no-repo-link --repo-path=[TEST_PATH]/db-master/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-DIFF-1] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-DIFF-1] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-DIFF-1] cannot be resumed: resume is disabled P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file [TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1690,7 +1845,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/1/ P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-2] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1700,11 +1855,13 @@ P00 INFO: expire command end: completed successfully db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1826,7 +1983,7 @@ db-version="9.4" restore, backup '[BACKUP-DIFF-2]', expect exit 40 - fail on used path (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db P00 INFO: restore backup set [BACKUP-DIFF-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 ERROR: [040]: cannot restore to path '[TEST_PATH]/db-master/db/base' that contains files - try using --delta if this is what you intended @@ -1835,7 +1992,7 @@ P00 INFO: restore command end: aborted with exception [040] restore, backup '[BACKUP-DIFF-2]', remap - remap all paths (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -1847,7 +2004,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -1860,7 +2017,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -1870,7 +2027,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-DIFF-2]', remap - ensure file in tblspc root remains after --delta (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -1886,7 +2043,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 - exis P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -1899,7 +2056,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init - exists and matches backup (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt - exists and matches backup (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -1909,7 +2066,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - add files and remove tablespace 2 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] @@ -1921,7 +2078,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base-2/base/base2 P00 INFO: incr backup size = 13B P00 INFO: new backup label = [BACKUP-INCR-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1935,11 +2092,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2058,7 +2217,7 @@ db-version="9.4" stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -2101,7 +2260,7 @@ db-version="9.4" incr backup - update files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-INCR-3], version = [VERSION-1] @@ -2111,7 +2270,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base-2/base/16384 P00 INFO: incr backup size = 8B P00 INFO: new backup label = [BACKUP-INCR-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2125,11 +2284,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2249,7 +2410,7 @@ db-version="9.4" diff backup - updates since last full (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2267,7 +2428,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: diff backup size = 43B P00 INFO: new backup label = [BACKUP-DIFF-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2281,11 +2442,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2406,7 +2569,7 @@ db-version="9.4" incr backup - remove files - but won't affect manifest (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] @@ -2415,7 +2578,7 @@ P00 TEST: PgBaCkReStTeSt-MANIFEST-BUILD-PgBaCkReStTeSt P00 INFO: incr backup size = 0B P00 INFO: new backup label = [BACKUP-INCR-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2429,11 +2592,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2555,7 +2720,7 @@ db-version="9.4" diff backup - remove files during backup (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2571,7 +2736,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: diff backup size = 35B P00 INFO: new backup label = [BACKUP-DIFF-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2585,11 +2750,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2710,7 +2877,7 @@ db-version="9.4" full backup - update file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b @@ -2732,7 +2899,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: full backup size = 144KB P00 INFO: new backup label = [BACKUP-FULL-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2746,11 +2913,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -3207,7 +3376,7 @@ info db stanza - normal output (db-master host) expire full=1 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --retention-full=1 --stanza=db expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-full=1 --stanza=db P00 INFO: expire full backup set: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3], [BACKUP-INCR-4], [BACKUP-DIFF-3], [BACKUP-INCR-5], [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-INCR-5] @@ -3221,7 +3390,7 @@ P00 INFO: expire command end: completed successfully diff backup - add file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --checksum-page --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] @@ -3229,7 +3398,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/base/base2.txt (9B, 100% P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3243,11 +3412,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -3365,7 +3536,7 @@ db-version="9.4" restore delta, remap - selective restore 16384 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=16384 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3378,7 +3549,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/32768\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3393,7 +3564,7 @@ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3403,7 +3574,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, remap - selective restore 32768 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=32768 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3416,7 +3587,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/16384\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3431,7 +3602,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3451,7 +3622,7 @@ P00 ERROR: [081]: system databases (template0, postgres, etc.) are included by restore, remap, expect exit 73 - no tablespace remap - error when tablespace dir does not exist (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --tablespace-map-all=../../tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3463,7 +3634,7 @@ P00 INFO: restore command end: aborted with exception [073] restore - no tablespace remap (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --tablespace-map-all=../../tablespace --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3472,7 +3643,7 @@ P00 DETAIL: check [TEST_PATH]/db-master/db/base-2/tablespace exists P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3487,7 +3658,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PA P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/base/recovery.conf diff --git a/test/expect/full-synthetic-004.log b/test/expect/full-synthetic-004.log index a6e62482b..08d41b45b 100644 --- a/test/expect/full-synthetic-004.log +++ b/test/expect/full-synthetic-004.log @@ -14,7 +14,7 @@ info all stanzas - no stanzas exist (db-master host) stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -52,7 +52,7 @@ db-version="9.4" full backup - error on identical link destinations (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link [TEST_PATH]/db-master/db/base/postgresql.conf (../pg_config) references a subdirectory of or the same directory as link [TEST_PATH]/db-master/db/base/pg_config_bad (../../db/pg_config) @@ -61,164 +61,221 @@ P00 INFO: backup command end: aborted with exception [070] full backup - error on link to a link (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link '[TEST_PATH]/db-master/db/base/postgresql.conf.bad' -> '../pg_config/postgresql.conf.link' cannot reference another link P00 INFO: backup command end: aborted with exception [070] full backup - create pg_stat link, pg_clog dir (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --manifest-save-threshold=3 --no-repo-sync --buffer-size=16384 --checksum-page --type=full --stanza=db backup +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --manifest-save-threshold=3 --buffer-size=16384 --checksum-page --repo-type=cifs --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --manifest-save-threshold=3 --no-online --repo-path=[TEST_PATH]/db-master/repo --no-repo-sync --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --manifest-save-threshold=3 --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[BACKUP-FULL-1], strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^[BACKUP-FULL-1], strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33001, strQueueIdx = 0 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 325, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 325, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bAlign => 1, bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000.32767, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33001 (64KB, 39%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P00 WARN: invalid page checksums found in file [TEST_PATH]/db-master/db/base/base/32768/33001 at pages 0, 3-5, 7 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 65536, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 263, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bValid => 1}), strKey = pg_data/base/32768/33000.32767 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 263, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000.32767 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 272, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bValid => 1}), strKey = pg_data/base/32768/33000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 272, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/17000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 217, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 217, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bAlign => 1, bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/global/pg_control, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 WARN: invalid page checksum found in file [TEST_PATH]/db-master/db/base/base/16384/17000 at page 1 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 16384, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 165, 89373d9f2973502940de06bc5212489df3f8a912, [undef]), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/global/pg_control (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 192, 22c98d248ff548311eda88559e4a8405ed77c003, {bValid => 1}), strKey = pg_data/base/1/12000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 192, 22c98d248ff548311eda88559e4a8405ed77c003, {bAlign => 1, bValid => 1}), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 21, 41, 6721d92c9fcdf4248acff1f9a1377127d9064807, [undef]), strKey = pg_data/postgresql.conf P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/pg_stat/global.stat, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 21, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 5, 25, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, [undef]), strKey = pg_data/pg_stat/global.stat P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 5, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/32768/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/16384/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/1/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: no jobs found, stop local: iHostConfigIdx = [undef], iHostIdx = 0, iProcessId = 1, strHostType = [undef] P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P01 INFO: backup file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: all jobs complete P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 P00 INFO: full backup size = 160KB P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] P00 INFO: new backup label = [BACKUP-FULL-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = false, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = false -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1], strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --repo-type=cifs --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -236,11 +293,13 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -350,80 +409,98 @@ db-version="9.4" full backup - resume (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --force --checksum-page --type=full --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-FULL-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-FULL-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 WARN: --no-online passed and postmaster.pid exists but --force was passed so backup will continue though it looks like the postmaster is running and the backup will probably not be consistent -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (file.tmp.gz, pg_data/PG_VERSION.gz) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/PG_VERSION.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/file.tmp.gz -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file file.tmp.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION.gz +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-FULL-2]/file.tmp.gz, /[BACKUP-FULL-2]/pg_data/PG_VERSION.gz) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -470,42 +547,43 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 P00 INFO: full backup size = 160KB P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] P00 INFO: new backup label = [BACKUP-FULL-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -523,11 +601,13 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -637,96 +717,119 @@ db-version="9.4" restore delta, backup '[BACKUP-FULL-2]' - add and delete files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = restore +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/PG_VERSION, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.info, strSourcePathType = backup:cluster, strUser = [undef] -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = false, strBackupClusterPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.info, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/PG_VERSION +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /backup.info +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = false, oStorage = [object], strBackupClusterPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: restore backup set [BACKUP-FULL-2] -P00 DEBUG: File->exists(): strPath = [BACKUP-FULL-2], strPathType = backup:cluster -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [BACKUP-FULL-2]/backup.manifest, strSourcePathType = backup:cluster, strUser = [undef] +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest P00 DEBUG: Restore->manifestOwnershipCheck(): oManifest = [object] -P00 DEBUG: File->remove(): bIgnoreMissing = true, bPathSync = , bTemp = true, strPath = [TEST_PATH]/db-master/db/base/global/pg_control, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/global/pg_control +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Restore->clean(): oManifest = [object] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme P00 DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: cleanup removed 3 files, 1 path P00 DEBUG: Restore->build(): oManifest = [object] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 1 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = , strMode = 0700, strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = 0700, strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: build level 2 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 3 paths/links -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, 65536, [MODIFICATION-TIME-1], 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 0, 0, pg_data/base/32768/33001, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33001, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, 32768, [MODIFICATION-TIME-1], 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 0, 0, pg_data/base/32768/33000.32767, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33000.32767, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, 32768, [MODIFICATION-TIME-1], 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 0, 0, pg_data/base/32768/33000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, 16384, [MODIFICATION-TIME-1], e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 0, 0, pg_data/base/16384/17000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/16384/17000, strOp = restoreFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, 8192, [MODIFICATION-TIME-1], 22c98d248ff548311eda88559e4a8405ed77c003, 0, 0, pg_data/base/1/12000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/1/12000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, 21, [MODIFICATION-TIME-2], 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, pg_data/postgresql.conf, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/postgresql.conf, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, 5, [MODIFICATION-TIME-2], e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, pg_data/pg_stat/global.stat, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/pg_stat/global.stat, strOp = restoreFile, strQueue = pg_data @@ -735,8 +838,8 @@ P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/base/1/PG_VERSION, [undef], 0660, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/1/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/PG_VERSION, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = backup -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=backup local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -759,8 +862,8 @@ P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 -P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (0), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 8192, lSizeCurrent = 155648, lSizeTotal = 163878, strChecksum = 22c98d248ff548311eda88559e4a8405ed77c003, strDbFile = [TEST_PATH]/db-master/db/base/base/1/12000 @@ -791,25 +894,18 @@ P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 3, lSizeCurrent = 163875, lSizeTotal = 163878, strChecksum = 184473f470864e067ee3a22e64b47b0a1c356f29, strDbFile = [TEST_PATH]/db-master/db/base/PG_VERSION P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 DEBUG: Protocol::Local::Process->process: all jobs complete -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = true, strDestinationFile = [TEST_PATH]/db-master/db/base/global/pg_control, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, strSourcePathType = db:absolute -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.manifest, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = [TEST_PATH]/db-master/db/base +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) +P00 DEBUG: Storage::Local->move(): bPathCreate = , strDestinationPathExp = [TEST_PATH]/db-master/db/base/global/pg_control, strSourcePathExp = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -824,7 +920,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists @@ -838,7 +934,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -847,7 +943,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -857,7 +953,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, force, backup '[BACKUP-FULL-2]', expect exit 40 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 WARN: --delta or --force specified but unable to find 'PG_VERSION' or 'backup.manifest' in '[TEST_PATH]/db-master/db/base' to confirm that this is a valid $PGDATA directory. --delta and --force have been disabled and if any files exist in the destination directories the restore will be aborted. P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: contents of directory link pg_stat will be restored in a directory at the same location @@ -869,7 +965,7 @@ P00 INFO: restore command end: aborted with exception [040] restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.manifest file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: group bogus in manifest cannot be used for restore, set to [USER-1] P00 WARN: user bogus in manifest cannot be used for restore, set to [USER-1] @@ -885,7 +981,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches size 16384 and modification time [MODIFICATION-TIME-1] (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches size 8192 and modification time [MODIFICATION-TIME-1] (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -894,7 +990,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches size 3 and modification time [MODIFICATION-TIME-1] (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 INFO: restore file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -904,7 +1000,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - invalid database version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 8.0, system-id = 6353949018581704918 @@ -914,7 +1010,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid system id (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 9.4, system-id = 6999999999999999999 @@ -924,7 +1020,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid control version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 842, catalog-version = 201409291 @@ -934,7 +1030,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid catalog version (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 942, catalog-version = 197208141 @@ -944,7 +1040,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid path in pg_tblspc (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -955,7 +1051,7 @@ P00 INFO: backup command end: aborted with exception [069] incr backup - invalid relative tablespace in $PGDATA (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -966,7 +1062,7 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - invalid tablespace in $PGDATA (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -977,30 +1073,34 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - add tablespace 1 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --test --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1012,67 +1112,80 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = [BACKUP-EXPR](D|I)$, strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = [BACKUP-EXPR](D|I)\.manifest\.gz$, strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/1, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/1, strSourcePathType = backup:tmp +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/pg_tblspc/1, strSourcePathFileExp = /[BACKUP-INCR-1]/pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33001 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33001, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33001, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33001.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33001.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000.32767, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000.32767, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33000.32767.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.32767.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/17000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/17000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/17000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/16384/17000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/17000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/global/pg_control to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/global/pg_control, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/global/pg_control, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/global/pg_control.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/global/pg_control.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/12000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/12000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/12000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/1/12000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/12000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/postgresql.conf, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/postgresql.conf, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/postgresql.conf.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/postgresql.conf.gz +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, [BACKUP-INCR-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, [BACKUP-INCR-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/pg_stat/global.stat, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/pg_stat/global.stat, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/pg_stat/global.stat.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/pg_stat/global.stat.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/16384/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/1/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/PG_VERSION.gz P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 1 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1090,48 +1203,49 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 18 P00 INFO: incr backup size = 18B P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] P00 INFO: new backup label = [BACKUP-INCR-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1151,11 +1265,13 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1271,32 +1387,42 @@ db-version="9.4" incr backup - resume and add tablespace 2 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-INCR-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-INCR-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1308,92 +1434,105 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode P00 DEBUG: Manifest->build: found tablespace 2 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts2, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 WARN: aborted backup [BACKUP-INCR-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/db-master/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (pg_data/PG_VERSION.gz, pg_data/base/1/12000.gz, pg_data/base/1/PG_VERSION.gz, pg_data/base/16384/17000.gz, pg_data/base/16384/PG_VERSION.gz, pg_data/base/32768/33000.32767.gz, pg_data/base/32768/33000.gz, pg_data/base/32768/33001.gz, pg_data/base/32768/PG_VERSION.gz, pg_data/global/pg_control.gz, pg_data/pg_stat/global.stat.gz, pg_data/pg_tblspc/1, pg_data/postgresql.conf.gz) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/postgresql.conf.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/pg_tblspc/1 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/pg_stat/global.stat.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/global/pg_control.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/32768/PG_VERSION.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/32768/33001.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/32768/33000.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/32768/33000.32767.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/16384/PG_VERSION.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/16384/17000.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/1/PG_VERSION.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/base/1/12000.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/db-master/repo/temp/db.tmp/pg_data/PG_VERSION.gz -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-INCR-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/1/12000.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/1/PG_VERSION.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/16384/17000.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/16384/PG_VERSION.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33000.32767.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33000.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33001.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/PG_VERSION.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/global/pg_control.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/pg_stat/global.stat.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/pg_tblspc/1 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/postgresql.conf.gz +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-INCR-2]/pg_data/PG_VERSION.gz, /[BACKUP-INCR-2]/pg_data/base/1/12000.gz, /[BACKUP-INCR-2]/pg_data/base/1/PG_VERSION.gz, /[BACKUP-INCR-2]/pg_data/base/16384/17000.gz, /[BACKUP-INCR-2]/pg_data/base/16384/PG_VERSION.gz, /[BACKUP-INCR-2]/pg_data/base/32768/33000.32767.gz, /[BACKUP-INCR-2]/pg_data/base/32768/33000.gz, /[BACKUP-INCR-2]/pg_data/base/32768/33001.gz, /[BACKUP-INCR-2]/pg_data/base/32768/PG_VERSION.gz, /[BACKUP-INCR-2]/pg_data/global/pg_control.gz, /[BACKUP-INCR-2]/pg_data/pg_stat/global.stat.gz, /[BACKUP-INCR-2]/pg_data/pg_tblspc/1, /[BACKUP-INCR-2]/pg_data/postgresql.conf.gz) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/1, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/1, strSourcePathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/2, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/2, strSourcePathType = backup:tmp +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1]/32768 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc/1, strSourcePathFileExp = /[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc/2, strSourcePathFileExp = /[BACKUP-INCR-2]/pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33001 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33001, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33001, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33001.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33001.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000.32767, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000.32767, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33000.32767.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.32767.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/17000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/17000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/17000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/16384/17000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/17000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/global/pg_control to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/global/pg_control, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/global/pg_control, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/global/pg_control.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/global/pg_control.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/12000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/12000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/12000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/1/12000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/12000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/postgresql.conf, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/postgresql.conf, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/postgresql.conf.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/postgresql.conf.gz +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/pg_stat/global.stat, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/pg_stat/global.stat, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_stat/global.stat.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/pg_stat/global.stat.gz +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/16384/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/1/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/PG_VERSION.gz P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/repo/lock --log-path=[TEST_PATH]/db-master/repo/log --process=1 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 2 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1418,51 +1557,49 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 29 P00 INFO: incr backup size = 29B P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] P00 INFO: new backup label = [BACKUP-INCR-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/db-master/repo/temp/db.tmp to [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/db-master/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1482,11 +1619,13 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1609,14 +1748,14 @@ db-version="9.4" diff backup - cannot resume - new diff (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-INCR-2] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-INCR-2] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (new backup-type 'diff' does not match aborted backup-type 'incr') - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-INCR-2] cannot be resumed: new backup-type 'diff' does not match aborted backup-type 'incr' P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file [TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1626,7 +1765,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/1/ P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-1] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1636,11 +1775,13 @@ P00 INFO: expire command end: completed successfully db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1761,16 +1902,16 @@ db-version="9.4" 1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} diff backup - cannot resume - disabled / no repo link (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --no-resume --log-level-console=detail --no-repo-link --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --no-resume --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --no-repo-link --repo-path=[TEST_PATH]/db-master/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-DIFF-1] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-DIFF-1] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-DIFF-1] cannot be resumed: resume is disabled P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file [TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1780,7 +1921,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base/pg_tblspc/1/ P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-2] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1790,11 +1931,13 @@ P00 INFO: expire command end: completed successfully db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -1917,7 +2060,7 @@ db-version="9.4" restore, backup '[BACKUP-DIFF-2]', expect exit 40 - fail on used path (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db P00 INFO: restore backup set [BACKUP-DIFF-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 ERROR: [040]: cannot restore to path '[TEST_PATH]/db-master/db/base' that contains files - try using --delta if this is what you intended @@ -1926,7 +2069,7 @@ P00 INFO: restore command end: aborted with exception [040] restore, backup '[BACKUP-DIFF-2]', remap - remap all paths (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -1938,7 +2081,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -1951,7 +2094,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -1961,7 +2104,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-DIFF-2]', remap - ensure file in tblspc root remains after --delta (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -1977,7 +2120,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 - exis P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -1990,7 +2133,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init - exists and matches backup (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt - exists and matches backup (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2000,7 +2143,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - add files and remove tablespace 2 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] @@ -2012,7 +2155,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base-2/base/base2 P00 INFO: incr backup size = 13B P00 INFO: new backup label = [BACKUP-INCR-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2026,11 +2169,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2150,7 +2295,7 @@ db-version="9.4" stanza-create db - create required data for stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -2193,7 +2338,7 @@ db-version="9.4" incr backup - update files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-INCR-3], version = [VERSION-1] @@ -2203,7 +2348,7 @@ P00 WARN: page misalignment in file [TEST_PATH]/db-master/db/base-2/base/16384 P00 INFO: incr backup size = 8B P00 INFO: new backup label = [BACKUP-INCR-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2217,11 +2362,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2342,7 +2489,7 @@ db-version="9.4" diff backup - updates since last full (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2360,7 +2507,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: diff backup size = 43B P00 INFO: new backup label = [BACKUP-DIFF-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2374,11 +2521,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2500,7 +2649,7 @@ db-version="9.4" incr backup - remove files - but won't affect manifest (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] @@ -2509,7 +2658,7 @@ P00 TEST: PgBaCkReStTeSt-MANIFEST-BUILD-PgBaCkReStTeSt P00 INFO: incr backup size = 0B P00 INFO: new backup label = [BACKUP-INCR-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2523,11 +2672,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2650,7 +2801,7 @@ db-version="9.4" diff backup - remove files during backup (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2666,7 +2817,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: diff backup size = 35B P00 INFO: new backup label = [BACKUP-DIFF-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2680,11 +2831,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -2806,7 +2959,7 @@ db-version="9.4" full backup - update file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b @@ -2828,7 +2981,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/ P00 INFO: full backup size = 144KB P00 INFO: new backup label = [BACKUP-FULL-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2842,11 +2995,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -3304,7 +3459,7 @@ info db stanza - normal output (db-master host) expire full=1 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --retention-full=1 --stanza=db expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-full=1 --stanza=db P00 INFO: expire full backup set: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3], [BACKUP-INCR-4], [BACKUP-DIFF-3], [BACKUP-INCR-5], [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-INCR-5] @@ -3318,7 +3473,7 @@ P00 INFO: expire command end: completed successfully diff backup - add file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --no-online --log-level-console=detail --checksum-page --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --hardlink --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --hardlink --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] @@ -3326,7 +3481,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base-2/base/base2.txt (9B, 100% P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3340,11 +3495,13 @@ tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -3463,7 +3620,7 @@ db-version="9.4" restore delta, remap - selective restore 16384 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=16384 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3476,7 +3633,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/32768\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3491,7 +3648,7 @@ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3501,7 +3658,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, remap - selective restore 32768 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=32768 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3514,7 +3671,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/16384\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3529,7 +3686,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3549,7 +3706,7 @@ P00 ERROR: [081]: system databases (template0, postgres, etc.) are included by restore, remap, expect exit 73 - no tablespace remap - error when tablespace dir does not exist (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --tablespace-map-all=../../tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3561,7 +3718,7 @@ P00 INFO: restore command end: aborted with exception [073] restore - no tablespace remap (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --tablespace-map-all=../../tablespace --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3570,7 +3727,7 @@ P00 DETAIL: check [TEST_PATH]/db-master/db/base-2/tablespace exists P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3585,7 +3742,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PA P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/base/recovery.conf diff --git a/test/expect/full-synthetic-005.log b/test/expect/full-synthetic-005.log index cd6465997..83fe6c8d2 100644 --- a/test/expect/full-synthetic-005.log +++ b/test/expect/full-synthetic-005.log @@ -14,7 +14,7 @@ info all stanzas - no stanzas exist (db-master host) stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -52,7 +52,7 @@ db-version="9.4" full backup - error on identical link destinations (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link [TEST_PATH]/db-master/db/base/postgresql.conf (../pg_config) references a subdirectory of or the same directory as link [TEST_PATH]/db-master/db/base/pg_config_bad (../../db/pg_config) @@ -61,137 +61,187 @@ P00 INFO: backup command end: aborted with exception [070] full backup - error on link to a link (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link '[TEST_PATH]/db-master/db/base/postgresql.conf.bad' -> '../pg_config/postgresql.conf.link' cannot reference another link P00 INFO: backup command end: aborted with exception [070] full backup - create pg_stat link, pg_clog dir (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --manifest-save-threshold=3 --protocol-timeout=2 --db-timeout=1 --cmd-ssh=/usr/bin/ssh --no-repo-sync --buffer-size=16384 --checksum-page --type=full --stanza=db backup +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --manifest-save-threshold=3 --protocol-timeout=2 --db-timeout=1 --cmd-ssh=/usr/bin/ssh --buffer-size=16384 --checksum-page --repo-type=cifs --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=1 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --manifest-save-threshold=3 --no-online --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=1 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --manifest-save-threshold=3 --no-online --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 2, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=1 --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = /usr/bin/ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 2, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=1 --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 2, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=1 --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db remote, strCommandSSH = /usr/bin/ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 2, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=1 --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[BACKUP-FULL-1], strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^[BACKUP-FULL-1], strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <1>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=1 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 2, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=1 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=1 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 2, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=1 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33001, strQueueIdx = 0 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bAlign => 1, bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000.32767, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33001 (64KB, 39%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P00 WARN: invalid page checksums found in file db-master:[TEST_PATH]/db-master/db/base/base/32768/33001 at pages 0, 3-5, 7 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 65536, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bValid => 1}), strKey = pg_data/base/32768/33000.32767 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000.32767 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bValid => 1}), strKey = pg_data/base/32768/33000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/17000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bAlign => 1, bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/global/pg_control, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 WARN: invalid page checksum found in file db-master:[TEST_PATH]/db-master/db/base/base/16384/17000 at page 1 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 16384, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 89373d9f2973502940de06bc5212489df3f8a912, [undef]), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/global/pg_control (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, {bValid => 1}), strKey = pg_data/base/1/12000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, {bAlign => 1, bValid => 1}), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 21, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, [undef]), strKey = pg_data/postgresql.conf P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/pg_stat/global.stat, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 21, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 5, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, [undef]), strKey = pg_data/pg_stat/global.stat P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 5, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/32768/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/16384/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/16384/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/1/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/1/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: no jobs found, stop local: iHostConfigIdx = [undef], iHostIdx = 0, iProcessId = 1, strHostType = [undef] P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: all jobs complete P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 @@ -200,29 +250,42 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] P00 INFO: new backup label = [BACKUP-FULL-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = false, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = false -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1], strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=1 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=2 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -245,12 +308,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -263,11 +327,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -376,64 +442,88 @@ db-version="9.4" full backup - protocol timeout (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --protocol-timeout=1 --db-timeout=.1 --type=full --stanza=db backup --test --test-delay=1 --test-point=backup-start=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=.1 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --protocol-timeout=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=backup-start=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=.1 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=backup-start=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=.1 --protocol-timeout=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=.1 --protocol-timeout=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=.1 --protocol-timeout=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=.1 --protocol-timeout=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[BACKUP-FULL-2], strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^[BACKUP-FULL-2], strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 TEST: PgBaCkReStTeSt-BACKUP-START-PgBaCkReStTeSt P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 ERROR: [066]: remote process terminated on db-master host: unable to read line after 1 second(s) +P00 ERROR: [042]: process 'db-master remote' terminated unexpectedly [042]: unable to read line after 1 second(s) from stdio + P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false -P00 INFO: backup command end: aborted with exception [066] -P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 66 +P00 INFO: backup command end: aborted with exception [042] +P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 42 stop all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --force stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo +P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 INFO: sent term signal to process [PROCESS-ID] P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -445,52 +535,79 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 full backup - abort backup - local (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --type=full --stanza=db backup --test --test-delay=5 --test-point=backup-start=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=5 --test-point=backup-start=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=5 --test-point=backup-start=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 TEST: PgBaCkReStTeSt-BACKUP-START-PgBaCkReStTeSt P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 ERROR: [063]: remote process terminated on db-master host: terminated on signal [SIGTERM] +P00 ERROR: [063]: process 'db-master remote' terminated unexpectedly [063]: terminated on signal [SIGTERM] + P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db @@ -502,36 +619,43 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 63 full backup - global stop (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db -P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 ERROR: [062]: remote process terminated on db-master host: stop file exists for all stanzas +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote +P00 ERROR: [062]: process 'db-master remote' terminated unexpectedly [062]: stop file exists for all stanzas + P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] -P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: backup command end: aborted with exception [062] @@ -540,7 +664,8 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 62 stop db stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --stanza=db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -551,7 +676,8 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 stop db stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stop command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --stanza=db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 WARN: stop file already exists for stanza db P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -563,36 +689,43 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 full backup - stanza stop (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db -P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db -P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 ERROR: [062]: remote process terminated on db-master host: stop file exists for stanza db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote +P00 ERROR: [062]: process 'db-master remote' terminated unexpectedly [062]: stop file exists for stanza db + P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] -P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 P00 DEBUG: Common::Lock::lockRelease(): bFailOnNoLock = false P00 INFO: backup command end: aborted with exception [062] @@ -601,7 +734,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 62 start db stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --stanza=db P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -612,7 +745,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 start all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo +P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -623,7 +756,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 start all stanzas (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo +P00 INFO: start command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log P00 WARN: stop file does not exist P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -635,7 +768,8 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 stop all stanzas (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --force stop ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo +P00 INFO: stop command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --repo-path=[TEST_PATH]/backup/repo +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 INFO: sent term signal to process [PROCESS-ID] P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] @@ -647,50 +781,74 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 full backup - abort backup - remote (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --type=full --stanza=db backup --test --test-delay=5 --test-point=backup-start=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=5 --test-point=backup-start=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=5 --test-point=backup-start=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed -P00 DETAIL: clean backup temp path: [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = () -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 TEST: PgBaCkReStTeSt-BACKUP-START-PgBaCkReStTeSt P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 63, oException = [undef], strSignal = TERM P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = false, iRemoteIdx = [undef], strRemoteType = [undef] @@ -705,9 +863,12 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 63 full backup - global stop (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup P00 ERROR: [062]: stop file exists for all stanzas P00 DEBUG: Common::Exit::exitSafe(): iExitCode = [undef], oException = [object], strSignal = [undef] @@ -720,7 +881,7 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 62 start all stanzas (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf start ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo +P00 INFO: start command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --repo-path=[TEST_PATH]/backup/repo P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 @@ -731,82 +892,106 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 full backup - resume (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --force --checksum-page --type=full --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-FULL-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-FULL-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = true P00 WARN: --no-online passed and postmaster.pid exists but --force was passed so backup will continue though it looks like the postmaster is running and the backup will probably not be consistent -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (file.tmp, pg_data/PG_VERSION) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/PG_VERSION -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/file.tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file file.tmp +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-FULL-2]/file.tmp, /[BACKUP-FULL-2]/pg_data/PG_VERSION) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -855,42 +1040,43 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] P00 INFO: new backup label = [BACKUP-FULL-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -913,12 +1099,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -931,11 +1118,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1044,7 +1233,7 @@ db-version="9.4" full backup - invalid repo (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --repo-path=/bogus_path --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=/bogus_path --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=/bogus_path --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [073]: repo-path '/bogus_path' does not exist @@ -1053,98 +1242,123 @@ P00 INFO: backup command end: aborted with exception [073] restore delta, backup '[BACKUP-FULL-2]' - add and delete files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --cmd-ssh=/usr/bin/ssh --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = restore +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-2] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/PG_VERSION, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.info, strSourcePathType = backup:cluster, strUser = [undef] -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = false, strBackupClusterPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.info, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-2] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/PG_VERSION +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /backup.info +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = false, oStorage = [object], strBackupClusterPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: restore backup set [BACKUP-FULL-2] -P00 DEBUG: File->exists(): strPath = [BACKUP-FULL-2], strPathType = backup:cluster -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [BACKUP-FULL-2]/backup.manifest, strSourcePathType = backup:cluster, strUser = [undef] +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = true +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest P00 DEBUG: Restore->manifestOwnershipCheck(): oManifest = [object] -P00 DEBUG: File->remove(): bIgnoreMissing = true, bPathSync = , bTemp = true, strPath = [TEST_PATH]/db-master/db/base/global/pg_control, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/global/pg_control +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Restore->clean(): oManifest = [object] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme P00 DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: cleanup removed 3 files, 1 path P00 DEBUG: Restore->build(): oManifest = [object] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 1 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = , strMode = 0700, strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = 0700, strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: build level 2 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 3 paths/links -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, 65536, [MODIFICATION-TIME-1], 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 0, 0, pg_data/base/32768/33001, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33001, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, 32768, [MODIFICATION-TIME-1], 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 0, 0, pg_data/base/32768/33000.32767, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33000.32767, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, 32768, [MODIFICATION-TIME-1], 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 0, 0, pg_data/base/32768/33000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, 16384, [MODIFICATION-TIME-1], e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 0, 0, pg_data/base/16384/17000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/16384/17000, strOp = restoreFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, 8192, [MODIFICATION-TIME-1], 22c98d248ff548311eda88559e4a8405ed77c003, 0, 0, pg_data/base/1/12000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/1/12000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, 21, [MODIFICATION-TIME-2], 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, pg_data/postgresql.conf, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/postgresql.conf, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, 5, [MODIFICATION-TIME-2], e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, pg_data/pg_stat/global.stat, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/pg_stat/global.stat, strOp = restoreFile, strQueue = pg_data @@ -1153,8 +1367,8 @@ P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/base/1/PG_VERSION, [undef], 0660, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/1/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/PG_VERSION, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = backup -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/spool/lock --log-path=[TEST_PATH]/db-master/spool/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/spool/lock --log-path=[TEST_PATH]/db-master/spool/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --stanza=db --type=backup local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --stanza=db --type=backup local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1177,8 +1391,8 @@ P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 -P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (0), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 8192, lSizeCurrent = 155648, lSizeTotal = 163878, strChecksum = 22c98d248ff548311eda88559e4a8405ed77c003, strDbFile = [TEST_PATH]/db-master/db/base/base/1/12000 @@ -1209,25 +1423,18 @@ P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 3, lSizeCurrent = 163875, lSizeTotal = 163878, strChecksum = 184473f470864e067ee3a22e64b47b0a1c356f29, strDbFile = [TEST_PATH]/db-master/db/base/PG_VERSION P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 DEBUG: Protocol::Local::Process->process: all jobs complete -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = true, strDestinationFile = [TEST_PATH]/db-master/db/base/global/pg_control, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, strSourcePathType = db:absolute -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.manifest, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = [TEST_PATH]/db-master/db/base +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) +P00 DEBUG: Storage::Local->move(): bPathCreate = , strDestinationPathExp = [TEST_PATH]/db-master/db/base/global/pg_control, strSourcePathExp = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = backup @@ -1244,7 +1451,7 @@ restore_command = '[BACKREST-BIN] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists @@ -1258,7 +1465,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -1267,7 +1474,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -1277,7 +1484,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, force, backup '[BACKUP-FULL-2]', expect exit 40 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 WARN: --delta or --force specified but unable to find 'PG_VERSION' or 'backup.manifest' in '[TEST_PATH]/db-master/db/base' to confirm that this is a valid $PGDATA directory. --delta and --force have been disabled and if any files exist in the destination directories the restore will be aborted. P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: contents of directory link pg_stat will be restored in a directory at the same location @@ -1289,7 +1496,7 @@ P00 INFO: restore command end: aborted with exception [040] restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.manifest file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: group bogus in manifest cannot be used for restore, set to [USER-1] P00 WARN: user bogus in manifest cannot be used for restore, set to [USER-1] @@ -1305,7 +1512,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches size 16384 and modification time [MODIFICATION-TIME-1] (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches size 8192 and modification time [MODIFICATION-TIME-1] (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -1314,7 +1521,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches size 3 and modification time [MODIFICATION-TIME-1] (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 INFO: restore file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -1324,7 +1531,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - invalid database version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 8.0, system-id = 6353949018581704918 @@ -1334,7 +1541,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid system id (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 9.4, system-id = 6999999999999999999 @@ -1344,7 +1551,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid control version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 842, catalog-version = 201409291 @@ -1354,7 +1561,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid catalog version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 942, catalog-version = 197208141 @@ -1364,7 +1571,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid path in pg_tblspc (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1375,7 +1582,7 @@ P00 INFO: backup command end: aborted with exception [069] incr backup - invalid relative tablespace in $PGDATA (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1386,7 +1593,7 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - invalid tablespace in $PGDATA (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1397,32 +1604,40 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - add tablespace 1 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --test --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1434,23 +1649,38 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = [BACKUP-EXPR](D|I)$, strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = [BACKUP-EXPR](D|I)\.manifest\.gz$, strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33001 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] @@ -1459,16 +1689,16 @@ P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/17 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/global/pg_control to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/12000 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, [BACKUP-INCR-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, [BACKUP-INCR-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 1 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1488,40 +1718,49 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] P00 INFO: new backup label = [BACKUP-INCR-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1546,12 +1785,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1564,11 +1804,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1683,34 +1925,48 @@ db-version="9.4" incr backup - resume and add tablespace 2 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-INCR-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-INCR-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1722,32 +1978,45 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode P00 DEBUG: Manifest->build: found tablespace 11 in offline mode P00 DEBUG: Manifest->build: found tablespace 2 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/11, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts11 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts11, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts2, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/11, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts11 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts11 +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 WARN: aborted backup [BACKUP-INCR-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = () -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-INCR-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33001 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] @@ -1756,18 +2025,18 @@ P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/17 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/global/pg_control to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/12000 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 2 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1794,43 +2063,49 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] P00 INFO: new backup label = [BACKUP-INCR-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1855,12 +2130,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1873,11 +2149,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2003,14 +2281,14 @@ db-version="9.4" diff backup - cannot resume - new diff (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-INCR-2] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-INCR-2] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (new backup-type 'diff' does not match aborted backup-type 'incr') - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-INCR-2] cannot be resumed: new backup-type 'diff' does not match aborted backup-type 'incr' P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -2020,7 +2298,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-1] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2035,12 +2313,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2053,11 +2332,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2177,16 +2458,16 @@ db-version="9.4" 1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} diff backup - cannot resume - disabled / no repo link (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --no-resume --log-level-console=detail --no-repo-link --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --no-resume --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --no-repo-link --repo-path=[TEST_PATH]/backup/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-DIFF-1] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-DIFF-1] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-DIFF-1] cannot be resumed: resume is disabled P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -2196,7 +2477,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-2] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2211,12 +2492,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2229,11 +2511,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2355,7 +2639,7 @@ db-version="9.4" restore, backup '[BACKUP-DIFF-2]', expect exit 40 - fail on used path (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db P00 INFO: restore backup set [BACKUP-DIFF-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 ERROR: [040]: cannot restore to path '[TEST_PATH]/db-master/db/base' that contains files - try using --delta if this is what you intended @@ -2364,7 +2648,7 @@ P00 INFO: restore command end: aborted with exception [040] restore, backup '[BACKUP-DIFF-2]', remap - remap all paths (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -2376,7 +2660,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -2389,7 +2673,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2399,7 +2683,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-DIFF-2]', remap - ensure file in tblspc root remains after --delta (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -2415,7 +2699,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 - exis P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -2428,7 +2712,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init - exists and matches backup (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt - exists and matches backup (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2438,7 +2722,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - add files and remove tablespace 2 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] @@ -2450,7 +2734,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base-2/ P00 INFO: incr backup size = 13B P00 INFO: new backup label = [BACKUP-INCR-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2469,12 +2753,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2487,11 +2772,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2610,20 +2897,21 @@ db-version="9.4" incr backup - update files - fail on missing backup.info (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 ERROR: [055]: unable to open [TEST_PATH]/backup/repo/backup/db/backup.info or [TEST_PATH]/backup/repo/backup/db/backup.info.copy P00 ERROR: [055]: [TEST_PATH]/backup/repo/backup/db/backup.info does not exist and is required to perform a backup. HINT: has a stanza-create been performed? P00 INFO: backup command end: aborted with exception [055] -stanza-create db - fail on backup directory not empty and missing backup.info (backup host) +stanza-create db - fail on backup directory missing backup.info (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 ERROR: [040]: backup directory and/or archive directory not empty - HINT: Use --force to force the stanza data to be created. -P00 INFO: stanza-create command end: aborted with exception [040] +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 ERROR: [055]: backup information missing + HINT: use stanza-create --force to force the stanza data to be created. +P00 INFO: stanza-create command end: aborted with exception [055] + supplemental file: [TEST_PATH]/backup/repo/archive/db/archive.info -------------------------------------------------------------------- @@ -2643,7 +2931,7 @@ db-version="9.4" stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -2686,7 +2974,7 @@ db-version="9.4" incr backup - update files (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-INCR-3], version = [VERSION-1] @@ -2696,7 +2984,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base-2/ P00 INFO: incr backup size = 8B P00 INFO: new backup label = [BACKUP-INCR-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2715,12 +3003,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2733,11 +3022,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2857,7 +3148,7 @@ db-version="9.4" diff backup - updates since last full (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2875,7 +3166,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: diff backup size = 43B P00 INFO: new backup label = [BACKUP-DIFF-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2894,12 +3185,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2912,11 +3204,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3037,7 +3331,7 @@ db-version="9.4" incr backup - remove files - but won't affect manifest (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] @@ -3046,7 +3340,7 @@ P00 TEST: PgBaCkReStTeSt-MANIFEST-BUILD-PgBaCkReStTeSt P00 INFO: incr backup size = 0B P00 INFO: new backup label = [BACKUP-INCR-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3065,12 +3359,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -3083,11 +3378,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3209,7 +3506,7 @@ db-version="9.4" diff backup - remove files during backup (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -3225,7 +3522,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: diff backup size = 35B P00 INFO: new backup label = [BACKUP-DIFF-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3244,12 +3541,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -3262,11 +3560,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3387,7 +3687,7 @@ db-version="9.4" full backup - update file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b @@ -3409,7 +3709,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: full backup size = 144KB P00 INFO: new backup label = [BACKUP-FULL-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3428,12 +3728,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -3446,11 +3747,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3907,7 +4210,7 @@ info db stanza - normal output (backup host) expire full=1 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --log-level-console=detail --retention-full=1 --stanza=db expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --retention-full=1 --stanza=db P00 INFO: expire full backup set: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3], [BACKUP-INCR-4], [BACKUP-DIFF-3], [BACKUP-INCR-5], [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-INCR-5] @@ -3921,7 +4224,7 @@ P00 INFO: expire command end: completed successfully diff backup - add file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --checksum-page --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] @@ -3929,7 +4232,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/base/base2.txt P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3948,12 +4251,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -3966,11 +4270,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -4088,7 +4394,7 @@ db-version="9.4" restore delta, remap - selective restore 16384 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=16384 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -4101,7 +4407,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/32768\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -4116,7 +4422,7 @@ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -4126,7 +4432,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, remap - selective restore 32768 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=32768 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -4139,7 +4445,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/16384\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -4154,7 +4460,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -4174,7 +4480,7 @@ P00 ERROR: [081]: system databases (template0, postgres, etc.) are included by restore, remap, expect exit 73 - no tablespace remap - error when tablespace dir does not exist (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --tablespace-map-all=../../tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -4186,7 +4492,7 @@ P00 INFO: restore command end: aborted with exception [073] restore - no tablespace remap (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --tablespace-map-all=../../tablespace --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -4195,7 +4501,7 @@ P00 DETAIL: check [TEST_PATH]/db-master/db/base-2/tablespace exists P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -4210,7 +4516,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PA P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/base/recovery.conf @@ -4365,7 +4671,7 @@ info bogus stanza - bogus stanza (db-master host) diff backup - config file not validated on remote (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] @@ -4373,7 +4679,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/base/base/base P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-6] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -4390,12 +4696,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 bogus=bogus + supplemental file: [TEST_PATH]/backup/pgbackrest.conf @@ -4409,11 +4716,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -4532,7 +4841,7 @@ db-version="9.4" diff backup - option backup-standby reset - backup performed from master (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --backup-standby --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --backup-standby --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --backup-standby --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 WARN: option backup-standby is enabled but standby is not properly configured - backups will be performed from the master @@ -4541,7 +4850,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/base/base/base P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-7] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -4558,12 +4867,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -4576,11 +4886,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] diff --git a/test/expect/full-synthetic-006.log b/test/expect/full-synthetic-006.log index 492682cb3..fa43a3471 100644 --- a/test/expect/full-synthetic-006.log +++ b/test/expect/full-synthetic-006.log @@ -14,7 +14,7 @@ info all stanzas - no stanzas exist (db-master host) stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -52,7 +52,7 @@ db-version="9.4" full backup - error on identical link destinations (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link [TEST_PATH]/db-master/db/base/postgresql.conf (../pg_config) references a subdirectory of or the same directory as link [TEST_PATH]/db-master/db/base/pg_config_bad (../../db/pg_config) @@ -61,137 +61,187 @@ P00 INFO: backup command end: aborted with exception [070] full backup - error on link to a link (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link '[TEST_PATH]/db-master/db/base/postgresql.conf.bad' -> '../pg_config/postgresql.conf.link' cannot reference another link P00 INFO: backup command end: aborted with exception [070] full backup - create pg_stat link, pg_clog dir (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --manifest-save-threshold=3 --cmd-ssh=/usr/bin/ssh --no-repo-sync --buffer-size=16384 --checksum-page --type=full --stanza=db backup +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --manifest-save-threshold=3 --cmd-ssh=/usr/bin/ssh --buffer-size=16384 --checksum-page --repo-type=cifs --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --manifest-save-threshold=3 --no-online --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --manifest-save-threshold=3 --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = /usr/bin/ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db remote, strCommandSSH = /usr/bin/ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[BACKUP-FULL-1], strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^[BACKUP-FULL-1], strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33001, strQueueIdx = 0 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bAlign => 1, bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000.32767, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33001 (64KB, 39%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P00 WARN: invalid page checksums found in file db-master:[TEST_PATH]/db-master/db/base/base/32768/33001 at pages 0, 3-5, 7 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 65536, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bValid => 1}), strKey = pg_data/base/32768/33000.32767 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000.32767 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bValid => 1}), strKey = pg_data/base/32768/33000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/17000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bAlign => 1, bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/global/pg_control, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 WARN: invalid page checksum found in file db-master:[TEST_PATH]/db-master/db/base/base/16384/17000 at page 1 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 16384, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 89373d9f2973502940de06bc5212489df3f8a912, [undef]), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/global/pg_control (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, {bValid => 1}), strKey = pg_data/base/1/12000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, {bAlign => 1, bValid => 1}), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 21, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, [undef]), strKey = pg_data/postgresql.conf P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/pg_stat/global.stat, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 21, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 5, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, [undef]), strKey = pg_data/pg_stat/global.stat P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 5, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/32768/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/16384/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/16384/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/1/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/1/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: no jobs found, stop local: iHostConfigIdx = [undef], iHostIdx = 0, iProcessId = 1, strHostType = [undef] P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: all jobs complete P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 @@ -200,29 +250,42 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] P00 INFO: new backup label = [BACKUP-FULL-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = false, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = false -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1], strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -245,12 +308,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -263,11 +327,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -377,82 +443,106 @@ db-version="9.4" full backup - resume (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --force --checksum-page --type=full --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-FULL-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-FULL-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = true P00 WARN: --no-online passed and postmaster.pid exists but --force was passed so backup will continue though it looks like the postmaster is running and the backup will probably not be consistent -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (file.tmp, pg_data/PG_VERSION) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/PG_VERSION -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/file.tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file file.tmp +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-FULL-2]/file.tmp, /[BACKUP-FULL-2]/pg_data/PG_VERSION) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -501,42 +591,43 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] P00 INFO: new backup label = [BACKUP-FULL-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -559,12 +650,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -577,11 +669,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -691,98 +785,123 @@ db-version="9.4" restore delta, backup '[BACKUP-FULL-2]' - add and delete files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --cmd-ssh=/usr/bin/ssh --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = restore +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-2] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/PG_VERSION, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.info, strSourcePathType = backup:cluster, strUser = [undef] -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = false, strBackupClusterPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.info, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-2] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/PG_VERSION +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /backup.info +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = false, oStorage = [object], strBackupClusterPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: restore backup set [BACKUP-FULL-2] -P00 DEBUG: File->exists(): strPath = [BACKUP-FULL-2], strPathType = backup:cluster -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [BACKUP-FULL-2]/backup.manifest, strSourcePathType = backup:cluster, strUser = [undef] +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = true +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest P00 DEBUG: Restore->manifestOwnershipCheck(): oManifest = [object] -P00 DEBUG: File->remove(): bIgnoreMissing = true, bPathSync = , bTemp = true, strPath = [TEST_PATH]/db-master/db/base/global/pg_control, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/global/pg_control +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Restore->clean(): oManifest = [object] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme P00 DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: cleanup removed 3 files, 1 path P00 DEBUG: Restore->build(): oManifest = [object] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 1 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = , strMode = 0700, strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = 0700, strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: build level 2 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 3 paths/links -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, 65536, [MODIFICATION-TIME-1], 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 0, 0, pg_data/base/32768/33001, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33001, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, 32768, [MODIFICATION-TIME-1], 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 0, 0, pg_data/base/32768/33000.32767, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33000.32767, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, 32768, [MODIFICATION-TIME-1], 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 0, 0, pg_data/base/32768/33000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/32768/33000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, 16384, [MODIFICATION-TIME-1], e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 0, 0, pg_data/base/16384/17000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/16384/17000, strOp = restoreFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, 8192, [MODIFICATION-TIME-1], 22c98d248ff548311eda88559e4a8405ed77c003, 0, 0, pg_data/base/1/12000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/1/12000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, 21, [MODIFICATION-TIME-2], 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, pg_data/postgresql.conf, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/postgresql.conf, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, 5, [MODIFICATION-TIME-2], e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, pg_data/pg_stat/global.stat, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/pg_stat/global.stat, strOp = restoreFile, strQueue = pg_data @@ -791,8 +910,8 @@ P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/base/1/PG_VERSION, [undef], 0660, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/base/1/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/PG_VERSION, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 0), strKey = pg_data/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = backup -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/spool/lock --log-path=[TEST_PATH]/db-master/spool/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/spool/lock --log-path=[TEST_PATH]/db-master/spool/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --stanza=db --type=backup local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --stanza=db --type=backup local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -815,8 +934,8 @@ P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 -P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (0), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 8192, lSizeCurrent = 155648, lSizeTotal = 163878, strChecksum = 22c98d248ff548311eda88559e4a8405ed77c003, strDbFile = [TEST_PATH]/db-master/db/base/base/1/12000 @@ -847,25 +966,18 @@ P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 3, lSizeCurrent = 163875, lSizeTotal = 163878, strChecksum = 184473f470864e067ee3a22e64b47b0a1c356f29, strDbFile = [TEST_PATH]/db-master/db/base/PG_VERSION P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 DEBUG: Protocol::Local::Process->process: all jobs complete -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = true, strDestinationFile = [TEST_PATH]/db-master/db/base/global/pg_control, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, strSourcePathType = db:absolute -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.manifest, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = [TEST_PATH]/db-master/db/base +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) +P00 DEBUG: Storage::Local->move(): bPathCreate = , strDestinationPathExp = [TEST_PATH]/db-master/db/base/global/pg_control, strSourcePathExp = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = backup @@ -882,7 +994,7 @@ restore_command = '[BACKREST-BIN] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists @@ -896,7 +1008,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -905,7 +1017,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -915,7 +1027,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, force, backup '[BACKUP-FULL-2]', expect exit 40 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 WARN: --delta or --force specified but unable to find 'PG_VERSION' or 'backup.manifest' in '[TEST_PATH]/db-master/db/base' to confirm that this is a valid $PGDATA directory. --delta and --force have been disabled and if any files exist in the destination directories the restore will be aborted. P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: contents of directory link pg_stat will be restored in a directory at the same location @@ -927,7 +1039,7 @@ P00 INFO: restore command end: aborted with exception [040] restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.manifest file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: group bogus in manifest cannot be used for restore, set to [USER-1] P00 WARN: user bogus in manifest cannot be used for restore, set to [USER-1] @@ -943,7 +1055,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches size 16384 and modification time [MODIFICATION-TIME-1] (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches size 8192 and modification time [MODIFICATION-TIME-1] (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -952,7 +1064,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches size 3 and modification time [MODIFICATION-TIME-1] (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 INFO: restore file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -962,7 +1074,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - invalid database version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 8.0, system-id = 6353949018581704918 @@ -972,7 +1084,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid system id (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 9.4, system-id = 6999999999999999999 @@ -982,7 +1094,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid control version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 842, catalog-version = 201409291 @@ -992,7 +1104,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid catalog version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 942, catalog-version = 197208141 @@ -1002,7 +1114,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid path in pg_tblspc (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1013,7 +1125,7 @@ P00 INFO: backup command end: aborted with exception [069] incr backup - invalid relative tablespace in $PGDATA (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1024,7 +1136,7 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - invalid tablespace in $PGDATA (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1035,32 +1147,40 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - add tablespace 1 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --test --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1072,67 +1192,82 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = [BACKUP-EXPR](D|I)$, strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = [BACKUP-EXPR](D|I)\.manifest\.gz$, strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/1, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/1, strSourcePathType = backup:tmp +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/pg_tblspc/1, strSourcePathFileExp = /[BACKUP-INCR-1]/pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33001 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33001, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33001, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33001, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33001 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000.32767, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000.32767, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33000.32767, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.32767 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/17000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/17000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/17000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/16384/17000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/17000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/global/pg_control to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/global/pg_control, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/global/pg_control, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/global/pg_control, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/global/pg_control P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/12000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/12000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/12000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/1/12000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/12000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/postgresql.conf, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/postgresql.conf, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/postgresql.conf, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/postgresql.conf +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, [BACKUP-INCR-1], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, [BACKUP-INCR-1], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/pg_stat/global.stat, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/pg_stat/global.stat, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/pg_stat/global.stat, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/pg_stat/global.stat P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/16384/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/1/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 1 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1152,48 +1287,49 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] P00 INFO: new backup label = [BACKUP-INCR-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1218,12 +1354,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1236,11 +1373,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1356,34 +1495,48 @@ db-version="9.4" incr backup - resume and add tablespace 2 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-INCR-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-INCR-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1395,92 +1548,107 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode P00 DEBUG: Manifest->build: found tablespace 2 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts2, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 WARN: aborted backup [BACKUP-INCR-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (pg_data/PG_VERSION, pg_data/base/1/12000, pg_data/base/1/PG_VERSION, pg_data/base/16384/17000, pg_data/base/16384/PG_VERSION, pg_data/base/32768/33000, pg_data/base/32768/33000.32767, pg_data/base/32768/33001, pg_data/base/32768/PG_VERSION, pg_data/global/pg_control, pg_data/pg_stat/global.stat, pg_data/pg_tblspc/1, pg_data/postgresql.conf) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/postgresql.conf -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/pg_tblspc/1 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/pg_stat/global.stat -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/global/pg_control -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/32768/PG_VERSION -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/32768/33001 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/32768/33000.32767 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/32768/33000 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/16384/PG_VERSION -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/16384/17000 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/1/PG_VERSION -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/1/12000 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/PG_VERSION -P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-INCR-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/1/12000 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/1/PG_VERSION +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/16384/17000 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/16384/PG_VERSION +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33000 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33000.32767 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33001 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/PG_VERSION +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/global/pg_control +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/pg_stat/global.stat +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/pg_tblspc/1 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/postgresql.conf +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-INCR-2]/pg_data/PG_VERSION, /[BACKUP-INCR-2]/pg_data/base/1/12000, /[BACKUP-INCR-2]/pg_data/base/1/PG_VERSION, /[BACKUP-INCR-2]/pg_data/base/16384/17000, /[BACKUP-INCR-2]/pg_data/base/16384/PG_VERSION, /[BACKUP-INCR-2]/pg_data/base/32768/33000, /[BACKUP-INCR-2]/pg_data/base/32768/33000.32767, /[BACKUP-INCR-2]/pg_data/base/32768/33001, /[BACKUP-INCR-2]/pg_data/base/32768/PG_VERSION, /[BACKUP-INCR-2]/pg_data/global/pg_control, /[BACKUP-INCR-2]/pg_data/pg_stat/global.stat, /[BACKUP-INCR-2]/pg_data/pg_tblspc/1, /[BACKUP-INCR-2]/pg_data/postgresql.conf) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = false, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/1, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/1, strSourcePathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/2, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/2, strSourcePathType = backup:tmp +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1]/32768 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc/1, strSourcePathFileExp = /[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc/2, strSourcePathFileExp = /[BACKUP-INCR-2]/pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33001 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33001, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33001, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33001, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33001 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000.32767, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000.32767, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33000.32767, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.32767 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/17000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/17000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/17000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/16384/17000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/17000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/global/pg_control to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/global/pg_control, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/global/pg_control, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/global/pg_control, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/global/pg_control P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/12000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/12000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/12000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/1/12000, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/12000 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/postgresql.conf, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/postgresql.conf, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/postgresql.conf, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/postgresql.conf +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/pg_stat/global.stat, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/pg_stat/global.stat, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_stat/global.stat, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/pg_stat/global.stat +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, [BACKUP-INCR-2], 0, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/16384/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/1/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/PG_VERSION P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/PG_VERSION, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 2 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1507,51 +1675,49 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] P00 INFO: new backup label = [BACKUP-INCR-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1576,12 +1742,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1594,11 +1761,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1721,14 +1890,14 @@ db-version="9.4" diff backup - cannot resume - new diff (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-INCR-2] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-INCR-2] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (new backup-type 'diff' does not match aborted backup-type 'incr') - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-INCR-2] cannot be resumed: new backup-type 'diff' does not match aborted backup-type 'incr' P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1738,7 +1907,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-1] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1753,12 +1922,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1771,11 +1941,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1896,16 +2068,16 @@ db-version="9.4" 1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} diff backup - cannot resume - disabled / no repo link (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --no-resume --log-level-console=detail --no-repo-link --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --no-resume --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --no-repo-link --repo-path=[TEST_PATH]/backup/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-DIFF-1] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-DIFF-1] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-DIFF-1] cannot be resumed: resume is disabled P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1915,7 +2087,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-2] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1930,12 +2102,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1948,11 +2121,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2075,7 +2250,7 @@ db-version="9.4" restore, backup '[BACKUP-DIFF-2]', expect exit 40 - fail on used path (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db P00 INFO: restore backup set [BACKUP-DIFF-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 ERROR: [040]: cannot restore to path '[TEST_PATH]/db-master/db/base' that contains files - try using --delta if this is what you intended @@ -2084,7 +2259,7 @@ P00 INFO: restore command end: aborted with exception [040] restore, backup '[BACKUP-DIFF-2]', remap - remap all paths (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -2096,7 +2271,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -2109,7 +2284,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2119,7 +2294,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-DIFF-2]', remap - ensure file in tblspc root remains after --delta (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -2135,7 +2310,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 - exis P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -2148,7 +2323,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init - exists and matches backup (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt - exists and matches backup (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2158,7 +2333,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - add files and remove tablespace 2 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] @@ -2170,7 +2345,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base-2/ P00 INFO: incr backup size = 13B P00 INFO: new backup label = [BACKUP-INCR-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2189,12 +2364,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2207,11 +2383,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2331,7 +2509,7 @@ db-version="9.4" stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -2374,7 +2552,7 @@ db-version="9.4" incr backup - update files (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-INCR-3], version = [VERSION-1] @@ -2384,7 +2562,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base-2/ P00 INFO: incr backup size = 8B P00 INFO: new backup label = [BACKUP-INCR-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2403,12 +2581,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2421,11 +2600,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2546,7 +2727,7 @@ db-version="9.4" diff backup - updates since last full (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2564,7 +2745,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: diff backup size = 43B P00 INFO: new backup label = [BACKUP-DIFF-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2583,12 +2764,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2601,11 +2783,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2727,7 +2911,7 @@ db-version="9.4" incr backup - remove files - but won't affect manifest (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] @@ -2736,7 +2920,7 @@ P00 TEST: PgBaCkReStTeSt-MANIFEST-BUILD-PgBaCkReStTeSt P00 INFO: incr backup size = 0B P00 INFO: new backup label = [BACKUP-INCR-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2755,12 +2939,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2773,11 +2958,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2900,7 +3087,7 @@ db-version="9.4" diff backup - remove files during backup (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2916,7 +3103,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: diff backup size = 35B P00 INFO: new backup label = [BACKUP-DIFF-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2935,12 +3122,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2953,11 +3141,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3079,7 +3269,7 @@ db-version="9.4" full backup - update file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b @@ -3101,7 +3291,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: full backup size = 144KB P00 INFO: new backup label = [BACKUP-FULL-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3120,12 +3310,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -3138,11 +3329,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3600,7 +3793,7 @@ info db stanza - normal output (backup host) expire full=1 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --log-level-console=detail --retention-full=1 --stanza=db expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --retention-full=1 --stanza=db P00 INFO: expire full backup set: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3], [BACKUP-INCR-4], [BACKUP-DIFF-3], [BACKUP-INCR-5], [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-DIFF-4] P00 INFO: remove expired backup [BACKUP-INCR-5] @@ -3614,7 +3807,7 @@ P00 INFO: expire command end: completed successfully diff backup - add file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --checksum-page --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] @@ -3622,7 +3815,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/base/base2.txt P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --no-compress --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3641,12 +3834,13 @@ backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] compress=n -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -3659,11 +3853,13 @@ db-user=[USER-1] [global] compress=n -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3782,7 +3978,7 @@ db-version="9.4" restore delta, remap - selective restore 16384 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=16384 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3795,7 +3991,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/32768\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3810,7 +4006,7 @@ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3820,7 +4016,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, remap - selective restore 32768 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=32768 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3833,7 +4029,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/16384\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3848,7 +4044,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3868,7 +4064,7 @@ P00 ERROR: [081]: system databases (template0, postgres, etc.) are included by restore, remap, expect exit 73 - no tablespace remap - error when tablespace dir does not exist (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --tablespace-map-all=../../tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3880,7 +4076,7 @@ P00 INFO: restore command end: aborted with exception [073] restore - no tablespace remap (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --tablespace-map-all=../../tablespace --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3889,7 +4085,7 @@ P00 DETAIL: check [TEST_PATH]/db-master/db/base-2/tablespace exists P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3904,7 +4100,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PA P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/base/recovery.conf diff --git a/test/expect/full-synthetic-007.log b/test/expect/full-synthetic-007.log index f4f2f19b1..b8bb817ee 100644 --- a/test/expect/full-synthetic-007.log +++ b/test/expect/full-synthetic-007.log @@ -14,7 +14,7 @@ info all stanzas - no stanzas exist (db-master host) stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -52,7 +52,7 @@ db-version="9.4" full backup - error on identical link destinations (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link [TEST_PATH]/db-master/db/base/postgresql.conf (../pg_config) references a subdirectory of or the same directory as link [TEST_PATH]/db-master/db/base/pg_config_bad (../../db/pg_config) @@ -61,137 +61,187 @@ P00 INFO: backup command end: aborted with exception [070] full backup - error on link to a link (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link '[TEST_PATH]/db-master/db/base/postgresql.conf.bad' -> '../pg_config/postgresql.conf.link' cannot reference another link P00 INFO: backup command end: aborted with exception [070] full backup - create pg_stat link, pg_clog dir (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --manifest-save-threshold=3 --cmd-ssh=/usr/bin/ssh --no-repo-sync --buffer-size=16384 --checksum-page --type=full --stanza=db backup +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --manifest-save-threshold=3 --cmd-ssh=/usr/bin/ssh --buffer-size=16384 --checksum-page --repo-type=cifs --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --manifest-save-threshold=3 --no-online --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --manifest-save-threshold=3 --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = /usr/bin/ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db remote, strCommandSSH = /usr/bin/ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[BACKUP-FULL-1], strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^[BACKUP-FULL-1], strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33001, strQueueIdx = 0 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 325, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 325, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bAlign => 1, bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000.32767, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33001 (64KB, 39%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P00 WARN: invalid page checksums found in file db-master:[TEST_PATH]/db-master/db/base/base/32768/33001 at pages 0, 3-5, 7 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 65536, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 263, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bValid => 1}), strKey = pg_data/base/32768/33000.32767 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 263, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000.32767 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 272, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bValid => 1}), strKey = pg_data/base/32768/33000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 272, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/17000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 217, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 217, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bAlign => 1, bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/global/pg_control, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 WARN: invalid page checksum found in file db-master:[TEST_PATH]/db-master/db/base/base/16384/17000 at page 1 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 16384, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 165, 89373d9f2973502940de06bc5212489df3f8a912, [undef]), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/global/pg_control (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 192, 22c98d248ff548311eda88559e4a8405ed77c003, {bValid => 1}), strKey = pg_data/base/1/12000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 192, 22c98d248ff548311eda88559e4a8405ed77c003, {bAlign => 1, bValid => 1}), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 21, 41, 6721d92c9fcdf4248acff1f9a1377127d9064807, [undef]), strKey = pg_data/postgresql.conf P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/pg_stat/global.stat, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 21, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 5, 25, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, [undef]), strKey = pg_data/pg_stat/global.stat P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 5, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/32768/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/16384/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/16384/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/1/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/1/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: no jobs found, stop local: iHostConfigIdx = [undef], iHostIdx = 0, iProcessId = 1, strHostType = [undef] P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: all jobs complete P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 @@ -200,29 +250,42 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] P00 INFO: new backup label = [BACKUP-FULL-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = false, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = false -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1], strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -244,12 +307,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -261,11 +325,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -374,82 +440,106 @@ db-version="9.4" full backup - resume (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --force --checksum-page --type=full --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-FULL-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-FULL-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = true P00 WARN: --no-online passed and postmaster.pid exists but --force was passed so backup will continue though it looks like the postmaster is running and the backup will probably not be consistent -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (file.tmp.gz, pg_data/PG_VERSION.gz) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/PG_VERSION.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/file.tmp.gz -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file file.tmp.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION.gz +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-FULL-2]/file.tmp.gz, /[BACKUP-FULL-2]/pg_data/PG_VERSION.gz) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -498,42 +588,43 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] P00 INFO: new backup label = [BACKUP-FULL-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -555,12 +646,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -572,11 +664,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -685,98 +779,123 @@ db-version="9.4" restore delta, backup '[BACKUP-FULL-2]' - add and delete files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --cmd-ssh=/usr/bin/ssh --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = restore +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-2] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/PG_VERSION, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.info, strSourcePathType = backup:cluster, strUser = [undef] -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = false, strBackupClusterPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.info, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-2] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/PG_VERSION +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /backup.info +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = false, oStorage = [object], strBackupClusterPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: restore backup set [BACKUP-FULL-2] -P00 DEBUG: File->exists(): strPath = [BACKUP-FULL-2], strPathType = backup:cluster -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [BACKUP-FULL-2]/backup.manifest, strSourcePathType = backup:cluster, strUser = [undef] +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = true +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest P00 DEBUG: Restore->manifestOwnershipCheck(): oManifest = [object] -P00 DEBUG: File->remove(): bIgnoreMissing = true, bPathSync = , bTemp = true, strPath = [TEST_PATH]/db-master/db/base/global/pg_control, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/global/pg_control +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Restore->clean(): oManifest = [object] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme P00 DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: cleanup removed 3 files, 1 path P00 DEBUG: Restore->build(): oManifest = [object] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 1 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = , strMode = 0700, strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = 0700, strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: build level 2 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 3 paths/links -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, 65536, [MODIFICATION-TIME-1], 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 0, 0, pg_data/base/32768/33001, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33001, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, 32768, [MODIFICATION-TIME-1], 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 0, 0, pg_data/base/32768/33000.32767, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33000.32767, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, 32768, [MODIFICATION-TIME-1], 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 0, 0, pg_data/base/32768/33000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, 16384, [MODIFICATION-TIME-1], e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 0, 0, pg_data/base/16384/17000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/16384/17000, strOp = restoreFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, 8192, [MODIFICATION-TIME-1], 22c98d248ff548311eda88559e4a8405ed77c003, 0, 0, pg_data/base/1/12000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/1/12000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, 21, [MODIFICATION-TIME-2], 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, pg_data/postgresql.conf, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/postgresql.conf, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, 5, [MODIFICATION-TIME-2], e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, pg_data/pg_stat/global.stat, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/pg_stat/global.stat, strOp = restoreFile, strQueue = pg_data @@ -785,8 +904,8 @@ P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/base/1/PG_VERSION, [undef], 0660, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/1/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/PG_VERSION, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = backup -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/spool/lock --log-path=[TEST_PATH]/db-master/spool/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/spool/lock --log-path=[TEST_PATH]/db-master/spool/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --stanza=db --type=backup local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --stanza=db --type=backup local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -809,8 +928,8 @@ P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 -P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (0), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 8192, lSizeCurrent = 155648, lSizeTotal = 163878, strChecksum = 22c98d248ff548311eda88559e4a8405ed77c003, strDbFile = [TEST_PATH]/db-master/db/base/base/1/12000 @@ -841,25 +960,18 @@ P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 3, lSizeCurrent = 163875, lSizeTotal = 163878, strChecksum = 184473f470864e067ee3a22e64b47b0a1c356f29, strDbFile = [TEST_PATH]/db-master/db/base/PG_VERSION P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 DEBUG: Protocol::Local::Process->process: all jobs complete -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = true, strDestinationFile = [TEST_PATH]/db-master/db/base/global/pg_control, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, strSourcePathType = db:absolute -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.manifest, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = [TEST_PATH]/db-master/db/base +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) +P00 DEBUG: Storage::Local->move(): bPathCreate = , strDestinationPathExp = [TEST_PATH]/db-master/db/base/global/pg_control, strSourcePathExp = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = backup @@ -876,7 +988,7 @@ restore_command = '[BACKREST-BIN] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists @@ -890,7 +1002,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -899,7 +1011,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -909,7 +1021,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, force, backup '[BACKUP-FULL-2]', expect exit 40 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 WARN: --delta or --force specified but unable to find 'PG_VERSION' or 'backup.manifest' in '[TEST_PATH]/db-master/db/base' to confirm that this is a valid $PGDATA directory. --delta and --force have been disabled and if any files exist in the destination directories the restore will be aborted. P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: contents of directory link pg_stat will be restored in a directory at the same location @@ -921,7 +1033,7 @@ P00 INFO: restore command end: aborted with exception [040] restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.manifest file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: group bogus in manifest cannot be used for restore, set to [USER-1] P00 WARN: user bogus in manifest cannot be used for restore, set to [USER-1] @@ -937,7 +1049,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches size 16384 and modification time [MODIFICATION-TIME-1] (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches size 8192 and modification time [MODIFICATION-TIME-1] (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -946,7 +1058,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches size 3 and modification time [MODIFICATION-TIME-1] (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 INFO: restore file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -956,7 +1068,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - invalid database version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 8.0, system-id = 6353949018581704918 @@ -966,7 +1078,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid system id (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 9.4, system-id = 6999999999999999999 @@ -976,7 +1088,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid control version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 842, catalog-version = 201409291 @@ -986,7 +1098,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid catalog version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 942, catalog-version = 197208141 @@ -996,7 +1108,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid path in pg_tblspc (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1007,7 +1119,7 @@ P00 INFO: backup command end: aborted with exception [069] incr backup - invalid relative tablespace in $PGDATA (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1018,7 +1130,7 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - invalid tablespace in $PGDATA (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1029,32 +1141,40 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - add tablespace 1 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --test --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1066,23 +1186,38 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = [BACKUP-EXPR](D|I)$, strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = [BACKUP-EXPR](D|I)\.manifest\.gz$, strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33001 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] @@ -1091,16 +1226,16 @@ P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/17 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/global/pg_control to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/12000 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, [BACKUP-INCR-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, [BACKUP-INCR-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 1 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1120,40 +1255,49 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] P00 INFO: new backup label = [BACKUP-INCR-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1177,12 +1321,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1194,11 +1339,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1313,34 +1460,48 @@ db-version="9.4" incr backup - resume and add tablespace 2 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-INCR-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-INCR-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1352,29 +1513,42 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode P00 DEBUG: Manifest->build: found tablespace 2 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts2, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 WARN: aborted backup [BACKUP-INCR-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = () -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-INCR-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = false, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33001 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] @@ -1383,18 +1557,18 @@ P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/17 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/global/pg_control to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/12000 to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Backup::Backup->processManifest: reference pg_data/PG_VERSION to [BACKUP-FULL-2] P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 2 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1421,43 +1595,49 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] P00 INFO: new backup label = [BACKUP-INCR-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1481,12 +1661,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1498,11 +1679,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1624,14 +1807,14 @@ db-version="9.4" diff backup - cannot resume - new diff (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-INCR-2] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-INCR-2] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (new backup-type 'diff' does not match aborted backup-type 'incr') - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-INCR-2] cannot be resumed: new backup-type 'diff' does not match aborted backup-type 'incr' P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1641,7 +1824,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-1] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1655,12 +1838,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1672,11 +1856,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1796,16 +1982,16 @@ db-version="9.4" 1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} diff backup - cannot resume - disabled / no repo link (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --no-resume --log-level-console=detail --no-repo-link --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --no-resume --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --no-repo-link --repo-path=[TEST_PATH]/backup/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-DIFF-1] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-DIFF-1] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-DIFF-1] cannot be resumed: resume is disabled P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1815,7 +2001,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-2] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1829,12 +2015,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1846,11 +2033,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1972,7 +2161,7 @@ db-version="9.4" restore, backup '[BACKUP-DIFF-2]', expect exit 40 - fail on used path (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db P00 INFO: restore backup set [BACKUP-DIFF-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 ERROR: [040]: cannot restore to path '[TEST_PATH]/db-master/db/base' that contains files - try using --delta if this is what you intended @@ -1981,7 +2170,7 @@ P00 INFO: restore command end: aborted with exception [040] restore, backup '[BACKUP-DIFF-2]', remap - remap all paths (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -1993,7 +2182,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -2006,7 +2195,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2016,7 +2205,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-DIFF-2]', remap - ensure file in tblspc root remains after --delta (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -2032,7 +2221,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 - exis P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -2045,7 +2234,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init - exists and matches backup (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt - exists and matches backup (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2055,7 +2244,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - add files and remove tablespace 2 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] @@ -2067,7 +2256,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base-2/ P00 INFO: incr backup size = 13B P00 INFO: new backup label = [BACKUP-INCR-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2085,12 +2274,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2102,11 +2292,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2225,7 +2417,7 @@ db-version="9.4" stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -2268,7 +2460,7 @@ db-version="9.4" incr backup - update files (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-INCR-3], version = [VERSION-1] @@ -2278,7 +2470,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base-2/ P00 INFO: incr backup size = 8B P00 INFO: new backup label = [BACKUP-INCR-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2296,12 +2488,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2313,11 +2506,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2437,7 +2632,7 @@ db-version="9.4" diff backup - updates since last full (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2455,7 +2650,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: diff backup size = 43B P00 INFO: new backup label = [BACKUP-DIFF-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2473,12 +2668,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2490,11 +2686,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2615,7 +2813,7 @@ db-version="9.4" incr backup - remove files - but won't affect manifest (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] @@ -2624,7 +2822,7 @@ P00 TEST: PgBaCkReStTeSt-MANIFEST-BUILD-PgBaCkReStTeSt P00 INFO: incr backup size = 0B P00 INFO: new backup label = [BACKUP-INCR-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2642,12 +2840,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2659,11 +2858,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2785,7 +2986,7 @@ db-version="9.4" diff backup - remove files during backup (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2801,7 +3002,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: diff backup size = 35B P00 INFO: new backup label = [BACKUP-DIFF-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2819,12 +3020,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2836,11 +3038,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2961,7 +3165,7 @@ db-version="9.4" full backup - update file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b @@ -2983,7 +3187,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: full backup size = 144KB P00 INFO: new backup label = [BACKUP-FULL-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3001,12 +3205,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -3018,11 +3223,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3479,14 +3686,14 @@ info db stanza - normal output (backup host) expire full=1 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --retention-full=1 --stanza=db expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --backup-host=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --backup-host=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --retention-full=1 --stanza=db P00 ERROR: [072]: backup and expire commands must be run on the backup host P00 INFO: expire command end: aborted with exception [072] diff backup - add file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --checksum-page --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] @@ -3494,7 +3701,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/base/base2.txt P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3512,12 +3719,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -3529,11 +3737,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3658,7 +3868,7 @@ db-version="9.4" restore delta, remap - selective restore 16384 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=16384 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3671,7 +3881,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/32768\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3686,7 +3896,7 @@ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3696,7 +3906,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, remap - selective restore 32768 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=32768 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3709,7 +3919,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/16384\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3724,7 +3934,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3744,7 +3954,7 @@ P00 ERROR: [081]: system databases (template0, postgres, etc.) are included by restore, remap, expect exit 73 - no tablespace remap - error when tablespace dir does not exist (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --tablespace-map-all=../../tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3756,7 +3966,7 @@ P00 INFO: restore command end: aborted with exception [073] restore - no tablespace remap (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --tablespace-map-all=../../tablespace --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3765,7 +3975,7 @@ P00 DETAIL: check [TEST_PATH]/db-master/db/base-2/tablespace exists P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3780,7 +3990,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PA P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/base/recovery.conf diff --git a/test/expect/full-synthetic-008.log b/test/expect/full-synthetic-008.log index 1da14156a..3e69f63cd 100644 --- a/test/expect/full-synthetic-008.log +++ b/test/expect/full-synthetic-008.log @@ -14,7 +14,7 @@ info all stanzas - no stanzas exist (db-master host) stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -52,7 +52,7 @@ db-version="9.4" full backup - error on identical link destinations (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link [TEST_PATH]/db-master/db/base/postgresql.conf (../pg_config) references a subdirectory of or the same directory as link [TEST_PATH]/db-master/db/base/pg_config_bad (../../db/pg_config) @@ -61,137 +61,187 @@ P00 INFO: backup command end: aborted with exception [070] full backup - error on link to a link (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [070]: link '[TEST_PATH]/db-master/db/base/postgresql.conf.bad' -> '../pg_config/postgresql.conf.link' cannot reference another link P00 INFO: backup command end: aborted with exception [070] full backup - create pg_stat link, pg_clog dir (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --manifest-save-threshold=3 --cmd-ssh=/usr/bin/ssh --no-repo-sync --buffer-size=16384 --checksum-page --type=full --stanza=db backup +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --manifest-save-threshold=3 --cmd-ssh=/usr/bin/ssh --buffer-size=16384 --checksum-page --repo-type=cifs --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --manifest-save-threshold=3 --no-online --repo-path=[TEST_PATH]/backup/repo --no-repo-sync --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --buffer-size=16384 --checksum-page --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --manifest-save-threshold=3 --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 16384, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = /usr/bin/ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db remote, strCommandSSH = /usr/bin/ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=16384 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[BACKUP-FULL-1], strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^[BACKUP-FULL-1], strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-1]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, [undef], 1, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 16384, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33001, strQueueIdx = 0 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 325, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 65536, 325, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, {bAlign => 1, bValid => 0, iyPageError => (0, (3, 5), 7)}), strKey = pg_data/base/32768/33001 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000.32767, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33001 (64KB, 39%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P00 WARN: invalid page checksums found in file db-master:[TEST_PATH]/db-master/db/base/base/32768/33001 at pages 0, 3-5, 7 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 65536, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 263, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bValid => 1}), strKey = pg_data/base/32768/33000.32767 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 263, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000.32767 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/33000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 272, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bValid => 1}), strKey = pg_data/base/32768/33000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 32768, 272, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, {bAlign => 1, bValid => 1}), strKey = pg_data/base/32768/33000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/17000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 32768, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 217, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 16384, 217, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, {bAlign => 1, bValid => 0, iyPageError => (1)}), strKey = pg_data/base/16384/17000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/global/pg_control, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 WARN: invalid page checksum found in file db-master:[TEST_PATH]/db-master/db/base/base/16384/17000 at page 1 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 16384, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 165, 89373d9f2973502940de06bc5212489df3f8a912, [undef]), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/global/pg_control (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 -P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 192, 22c98d248ff548311eda88559e4a8405ed77c003, {bValid => 1}), strKey = pg_data/base/1/12000 +P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 8192, 192, 22c98d248ff548311eda88559e4a8405ed77c003, {bAlign => 1, bValid => 1}), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 8192, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 21, 41, 6721d92c9fcdf4248acff1f9a1377127d9064807, [undef]), strKey = pg_data/postgresql.conf P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/pg_stat/global.stat, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 21, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 5, 25, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, [undef]), strKey = pg_data/pg_stat/global.stat P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/32768/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 5, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/32768/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/16384/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/32768/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/16384/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/16384/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/base/1/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/PG_VERSION, strQueueIdx = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/base/1/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1, 3, 23, 184473f470864e067ee3a22e64b47b0a1c356f29, [undef]), strKey = pg_data/PG_VERSION P00 DEBUG: Protocol::Local::Process->process: no jobs found, stop local: iHostConfigIdx = [undef], iHostIdx = 0, iProcessId = 1, strHostType = [undef] P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy P00 DEBUG: Backup::File::backupManifestUpdate: save manifest: lManifestSaveCurrent = 3, lManifestSaveSize = 3 P00 DEBUG: Protocol::Local::Process->process: all jobs complete P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 163878 @@ -200,29 +250,42 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] P00 INFO: new backup label = [BACKUP-FULL-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = false, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = false -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-1], strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=16384 --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --repo-type=cifs --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-1]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -244,12 +307,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -261,11 +325,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -375,82 +441,106 @@ db-version="9.4" full backup - resume (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --force --checksum-page --type=full --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-FULL-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-FULL-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = true P00 WARN: --no-online passed and postmaster.pid exists but --force was passed so backup will continue though it looks like the postmaster is running and the backup will probably not be consistent -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (file.tmp.gz, pg_data/PG_VERSION.gz) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/PG_VERSION.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/file.tmp.gz -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file file.tmp.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION.gz +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-FULL-2]/file.tmp.gz, /[BACKUP-FULL-2]/pg_data/PG_VERSION.gz) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-FULL-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = full P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-FULL-2]/pg_data/pg_tblspc +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, pg_data/base/32768/33001, 65536, 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33001, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, pg_data/base/32768/33000.32767, 32768, 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000.32767, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, pg_data/base/32768/33000, 32768, 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/32768/33000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, pg_data/base/16384/17000, 16384, e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/16384/17000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control, pg_data/global/pg_control, 8192, 89373d9f2973502940de06bc5212489df3f8a912, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 0, [undef]), strKey = pg_data/global/pg_control, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, pg_data/base/1/12000, 8192, 22c98d248ff548311eda88559e4a8405ed77c003, 1, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_data/base/1/12000, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, pg_data/postgresql.conf, 21, 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/postgresql.conf, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, pg_data/pg_stat/global.stat, 5, e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-2], 1, [undef]), strKey = pg_data/pg_stat/global.stat, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/PG_VERSION, pg_data/base/32768/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/32768/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, pg_data/base/16384/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/16384/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, pg_data/base/1/PG_VERSION, 3, 184473f470864e067ee3a22e64b47b0a1c356f29, 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/base/1/PG_VERSION, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, pg_data/PG_VERSION, 3, [undef], 0, [BACKUP-FULL-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/PG_VERSION, strOp = backupFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -499,42 +589,43 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] P00 INFO: new backup label = [BACKUP-FULL-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-FULL-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-FULL-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-FULL-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: option 'retention-archive' is not set - archive logs will not be expired @@ -556,12 +647,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -573,11 +665,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -687,98 +781,123 @@ db-version="9.4" restore delta, backup '[BACKUP-FULL-2]' - add and delete files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --cmd-ssh=/usr/bin/ssh --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = restore +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/db-master/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/db-master/log P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strRemoteType = backup, strUser = [USER-2] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/PG_VERSION, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.info, strSourcePathType = backup:cluster, strUser = [undef] -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = false, strBackupClusterPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.info, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = /usr/bin/ssh, strHost = backup, strUser = [USER-2] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = /usr/bin/ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=restore --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/PG_VERSION +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /backup.info +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.info, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = false, oStorage = [object], strBackupClusterPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.info +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 INFO: restore backup set [BACKUP-FULL-2] -P00 DEBUG: File->exists(): strPath = [BACKUP-FULL-2], strPathType = backup:cluster -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, strDestinationPathType = db:absolute, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [BACKUP-FULL-2]/backup.manifest, strSourcePathType = backup:cluster, strUser = [undef] +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = true +P00 DEBUG: Protocol::Storage::Remote->openRead(): rhParam = [hash], strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, xSourceFile = [object] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/backup.manifest P00 DEBUG: Restore->manifestOwnershipCheck(): oManifest = [object] -P00 DEBUG: File->remove(): bIgnoreMissing = true, bPathSync = , bTemp = true, strPath = [TEST_PATH]/db-master/db/base/global/pg_control, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = false +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/global/pg_control +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DEBUG: Restore->clean(): oManifest = [object] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.done +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme P00 DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup_label.old +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: cleanup removed 3 files, 1 path P00 DEBUG: Restore->build(): oManifest = [object] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/pg_config, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 1 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = , strMode = 0700, strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = 0700, strPathExp = [TEST_PATH]/db-master/db/base/pg_clog +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/pg_stat +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postgresql.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: build level 2 paths/links -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: build level 3 paths/links -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = backup P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33001, 65536, [MODIFICATION-TIME-1], 6bf316f11d28c28914ea9be92c00de9bea6d9a6b, 0, 0, pg_data/base/32768/33001, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33001, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000.32767, 32768, [MODIFICATION-TIME-1], 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5, 0, 0, pg_data/base/32768/33000.32767, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33000.32767, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/32768/33000, 32768, [MODIFICATION-TIME-1], 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f, 0, 0, pg_data/base/32768/33000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/32768/33000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/16384/17000, 16384, [MODIFICATION-TIME-1], e0101dd8ffb910c9c202ca35b5f828bcb9697bed, 0, 0, pg_data/base/16384/17000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/16384/17000, strOp = restoreFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp, 8192, [MODIFICATION-TIME-2], 89373d9f2973502940de06bc5212489df3f8a912, 0, 0, pg_data/global/pg_control, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/global/pg_control, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/12000, 8192, [MODIFICATION-TIME-1], 22c98d248ff548311eda88559e4a8405ed77c003, 0, 0, pg_data/base/1/12000, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/1/12000, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/postgresql.conf, 21, [MODIFICATION-TIME-2], 6721d92c9fcdf4248acff1f9a1377127d9064807, 0, 0, pg_data/postgresql.conf, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/postgresql.conf, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_stat/global.stat, 5, [MODIFICATION-TIME-2], e350d5ce0153f3e22d5db21cf2a4eff00f3ee877, 0, 0, pg_data/pg_stat/global.stat, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/pg_stat/global.stat, strOp = restoreFile, strQueue = pg_data @@ -787,8 +906,8 @@ P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/base/1/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/base/1/PG_VERSION, [undef], 0660, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/base/1/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/PG_VERSION, 3, [MODIFICATION-TIME-1], 184473f470864e067ee3a22e64b47b0a1c356f29, 0, 0, pg_data/PG_VERSION, [undef], 0600, [USER-1], [GROUP-1], [MODIFICATION-TIME-3], 1, [BACKUP-FULL-2], 1), strKey = pg_data/PG_VERSION, strOp = restoreFile, strQueue = pg_data P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = backup -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/spool/lock --log-path=[TEST_PATH]/db-master/spool/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --host-id=1 --lock-path=[TEST_PATH]/db-master/spool/lock --log-path=[TEST_PATH]/db-master/spool/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --stanza=db --type=backup local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --cmd-ssh=/usr/bin/ssh --command=restore --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --host-id=1 --lock-path=[TEST_PATH]/db-master/lock --log-path=[TEST_PATH]/db-master/log --process=1 --protocol-timeout=60 --stanza=db --type=backup local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 0 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -811,8 +930,8 @@ P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = P01 INFO: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (1), strKey = pg_data/global/pg_control P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/base/1/12000, strQueueIdx = 0 -P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P00 DEBUG: RestoreFile::restoreLog(): bCopy = true, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-2], lSize = 8192, lSizeCurrent = 147456, lSizeTotal = 163878, strChecksum = 89373d9f2973502940de06bc5212489df3f8a912, strDbFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P00 DEBUG: Protocol::Local::Process->process: job complete: iProcessId = 1, rResult = (0), strKey = pg_data/base/1/12000 P00 DEBUG: Protocol::Local::Process->process: get job from queue: iHostIdx = 0, iProcessId = 1, strKey = pg_data/postgresql.conf, strQueueIdx = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 8192, lSizeCurrent = 155648, lSizeTotal = 163878, strChecksum = 22c98d248ff548311eda88559e4a8405ed77c003, strDbFile = [TEST_PATH]/db-master/db/base/base/1/12000 @@ -843,25 +962,18 @@ P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: RestoreFile::restoreLog(): bCopy = false, bForce = false, bZero = false, iLocalId = 1, lModificationTime = [MODIFICATION-TIME-1], lSize = 3, lSizeCurrent = 163875, lSizeTotal = 163878, strChecksum = 184473f470864e067ee3a22e64b47b0a1c356f29, strDbFile = [TEST_PATH]/db-master/db/base/PG_VERSION P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 DEBUG: Protocol::Local::Process->process: all jobs complete -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = true -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/recovery.conf, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/recovery.conf +P00 DEBUG: Storage::Local->remove=>: bRemoved = true P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/1, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/16384, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/base/32768, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/global, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = true, strDestinationFile = [TEST_PATH]/db-master/db/base/global/pg_control, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest, strSourcePathType = db:absolute -P00 DEBUG: File->remove(): bIgnoreMissing = false, bPathSync = true, bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/backup.manifest, strPathType = db:absolute -P00 DEBUG: File->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = [TEST_PATH]/db-master/db/base +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) +P00 DEBUG: Storage::Local->move(): bPathCreate = , strDestinationPathExp = [TEST_PATH]/db-master/db/base/global/pg_control, strSourcePathExp = [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = [TEST_PATH]/db-master/db/base/backup.manifest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/db/base P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteIdx = [undef], strRemoteType = [undef] P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = backup @@ -878,7 +990,7 @@ restore_command = '[BACKREST-BIN] --cmd-ssh=/usr/bin/ssh --config=[TEST_PATH]/db restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --link-all --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists @@ -892,7 +1004,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -901,7 +1013,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -911,7 +1023,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, force, backup '[BACKUP-FULL-2]', expect exit 40 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 WARN: --delta or --force specified but unable to find 'PG_VERSION' or 'backup.manifest' in '[TEST_PATH]/db-master/db/base' to confirm that this is a valid $PGDATA directory. --delta and --force have been disabled and if any files exist in the destination directories the restore will be aborted. P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: contents of directory link pg_stat will be restored in a directory at the same location @@ -923,7 +1035,7 @@ P00 INFO: restore command end: aborted with exception [040] restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.manifest file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --delta --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-FULL-2] --stanza=db P00 INFO: restore backup set [BACKUP-FULL-2] P00 WARN: group bogus in manifest cannot be used for restore, set to [USER-1] P00 WARN: user bogus in manifest cannot be used for restore, set to [USER-1] @@ -939,7 +1051,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33001 - exists P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000.32767 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches size 32768 and modification time [MODIFICATION-TIME-1] (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches size 16384 and modification time [MODIFICATION-TIME-1] (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches size 8192 and modification time [MODIFICATION-TIME-1] (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat (5B, 99%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 @@ -948,7 +1060,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - e P01 DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches size 3 and modification time [MODIFICATION-TIME-1] (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P01 INFO: restore file [TEST_PATH]/db-master/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29 P00 INFO: write [TEST_PATH]/db-master/db/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf @@ -958,7 +1070,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - invalid database version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 8.0, system-id = 6353949018581704918 @@ -968,7 +1080,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid system id (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database version = 9.4, system-id 6353949018581704918 does not match backup version = 9.4, system-id = 6999999999999999999 @@ -978,7 +1090,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid control version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 842, catalog-version = 201409291 @@ -988,7 +1100,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid catalog version (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 ERROR: [051]: database control-version = 942, catalog-version 201409291 does not match backup control-version = 942, catalog-version = 197208141 @@ -998,7 +1110,7 @@ P00 INFO: backup command end: aborted with exception [051] incr backup - invalid path in pg_tblspc (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1009,7 +1121,7 @@ P00 INFO: backup command end: aborted with exception [069] incr backup - invalid relative tablespace in $PGDATA (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1020,7 +1132,7 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - invalid tablespace in $PGDATA (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -1031,32 +1143,40 @@ P00 INFO: backup command end: aborted with exception [071] incr backup - add tablespace 1 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --test --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1068,67 +1188,82 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = [BACKUP-EXPR](D|I)$, strPathExp = , strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = [BACKUP-EXPR](D|I)\.manifest\.gz$, strPathExp = /backup.history/[YEAR-1], strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 DEBUG: Backup::Backup->process: create temp backup path [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = false, strMode = <0750>, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = , strMode = <0750>, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-1], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/1, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/1, strSourcePathType = backup:tmp +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/pg_tblspc/1, strSourcePathFileExp = /[BACKUP-INCR-1]/pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33001 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33001, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33001, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33001.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33001.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000.32767, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000.32767, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33000.32767.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.32767.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/33000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/17000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/17000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/17000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/16384/17000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/17000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/global/pg_control to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/global/pg_control, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/global/pg_control, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/global/pg_control.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/global/pg_control.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/12000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/12000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/12000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/1/12000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/12000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/postgresql.conf, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/postgresql.conf, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/postgresql.conf.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/postgresql.conf.gz +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, [undef], 0, [BACKUP-INCR-1], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, [undef], 1, [BACKUP-INCR-1], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/pg_stat/global.stat, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/pg_stat/global.stat, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/pg_stat/global.stat.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/pg_stat/global.stat.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/32768/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/16384/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/base/1/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-1]/pg_data/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/PG_VERSION.gz P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 1 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1148,48 +1283,49 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] P00 INFO: new backup label = [BACKUP-INCR-1] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-1], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-1], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-1].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-1]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-1], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-1] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1213,12 +1349,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1230,11 +1367,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1350,34 +1489,48 @@ db-version="9.4" incr backup - resume and add tablespace 2 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --stanza=db backup --test --test-delay=0.2 --test-point=backup-resume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-resume=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/backup/repo, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->pathExists(): strPathExp = +P00 DEBUG: Storage::Local->pathExists=>: bExists = true P00 DEBUG: Common::Lock::lockAcquire(): bFailOnNoLock = , bRemote = , strLockType = backup +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 770, strPathExp = [TEST_PATH]/backup/lock P00 DEBUG: Common::Lock::lockAcquire=>: bResult = true -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: File->pathCreate(): bCreateParents = true, bIgnoreExists = true, strMode = <0750>, strPath = backup.history, strPathType = backup:cluster -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = 0770, strPathExp = [TEST_PATH]/backup/log +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = true, bIgnoreExists = true, strMode = <0750>, strPathExp = /backup.history +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] +P00 DEBUG: Backup::Info->current=>: bTest = false +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 WARN: backup [BACKUP-INCR-1] missing in repository removed from backup.info P00 DEBUG: Backup::Info->delete(): strBackupLabel = [BACKUP-INCR-1] P00 DEBUG: Db->new(): iRemoteIdx = 1 P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strRemoteType = db, strUser = [USER-1] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = db-master, strName = remote, strRemoteType = db +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote, strCommandSSH = ssh, strHost = db-master, strUser = [USER-1] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no [USER-1]@db-master '[BACKREST-BIN] --buffer-size=4194304 --command=backup --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db remote', strId = 'db-master remote', strName = remote P00 DEBUG: Db::dbObjectGet=>: iDbMasterIdx = 1, iDbStandbyIdx = [undef], oDbMaster = [object], oDbStandby = [undef] P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Db->info(): strDbPath = <[TEST_PATH]/db-master/db/base> -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db P00 DEBUG: Db->info=>: iDbCatalogVersion = 201409291, iDbControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check(): bRequired = , iCatalogVersion = 201409291, iControlVersion = 942, strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Backup::Info->check=>: iDbHistoryId = 1 @@ -1389,92 +1542,107 @@ P00 DEBUG: Backup::Info->list=>: stryBackup = ([BACKUP-FULL-2]) P00 DEBUG: Backup::Info->last=>: strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->dbHistoryList=>: hDbHash = [hash] P00 DEBUG: Backup::Info->confirmDb=>: bConfirmDb = true +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postmaster.pid, strPathType = db:absolute -P00 DEBUG: File->exists=>: bExists = false +P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true +P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db-master/db/base/postmaster.pid +P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oFile = [object], oLastManifest = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], oLastManifest = [object], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc P00 DEBUG: Manifest->build: found tablespace 1 in offline mode P00 DEBUG: Manifest->build: found tablespace 2 in offline mode -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/base, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts1, strPathType = db:absolute -P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oFile = [object], oLastManifest = [undef], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 -P00 DEBUG: File->manifest(): strPath = [TEST_PATH]/db-master/db/tablespace/ts2, strPathType = db:absolute -P00 DEBUG: File->wait(): bWait = false, strPathType = db:absolute -P00 WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/base +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1 +P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], oLastManifest = [undef], oStorageDbMaster = [object], strDbVersion = 9.4, strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 DEBUG: Protocol::Storage::Remote->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2 +P00 WARN: aborted backup [BACKUP-INCR-2] of same type exists, will be cleaned to remove invalid files and resumed P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt -P00 DETAIL: clean backup temp path: [TEST_PATH]/backup/repo/temp/db.tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: Backup::Backup->fileNotInManifest=>: stryFile = (pg_data/PG_VERSION.gz, pg_data/base/1/12000.gz, pg_data/base/1/PG_VERSION.gz, pg_data/base/16384/17000.gz, pg_data/base/16384/PG_VERSION.gz, pg_data/base/32768/33000.32767.gz, pg_data/base/32768/33000.gz, pg_data/base/32768/33001.gz, pg_data/base/32768/PG_VERSION.gz, pg_data/global/pg_control.gz, pg_data/pg_stat/global.stat.gz, pg_data/pg_tblspc/1, pg_data/postgresql.conf.gz) -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/postgresql.conf.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/pg_tblspc/1 -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/pg_stat/global.stat.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/global/pg_control.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/32768/PG_VERSION.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/32768/33001.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/32768/33000.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/32768/33000.32767.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/16384/PG_VERSION.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/16384/17000.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/1/PG_VERSION.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/base/1/12000.gz -P00 DEBUG: Backup::Backup->tmpClean: remove file [TEST_PATH]/backup/repo/temp/db.tmp/pg_data/PG_VERSION.gz -P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], oFileMaster = [object], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr +P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-INCR-2] +P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->manifest(): strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/1/12000.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/1/PG_VERSION.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/16384/17000.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/16384/PG_VERSION.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33000.32767.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33000.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/33001.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/base/32768/PG_VERSION.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/global/pg_control.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/pg_stat/global.stat.gz +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/pg_tblspc/1 +P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/postgresql.conf.gz +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = (/[BACKUP-INCR-2]/pg_data/PG_VERSION.gz, /[BACKUP-INCR-2]/pg_data/base/1/12000.gz, /[BACKUP-INCR-2]/pg_data/base/1/PG_VERSION.gz, /[BACKUP-INCR-2]/pg_data/base/16384/17000.gz, /[BACKUP-INCR-2]/pg_data/base/16384/PG_VERSION.gz, /[BACKUP-INCR-2]/pg_data/base/32768/33000.32767.gz, /[BACKUP-INCR-2]/pg_data/base/32768/33000.gz, /[BACKUP-INCR-2]/pg_data/base/32768/33001.gz, /[BACKUP-INCR-2]/pg_data/base/32768/PG_VERSION.gz, /[BACKUP-INCR-2]/pg_data/global/pg_control.gz, /[BACKUP-INCR-2]/pg_data/pg_stat/global.stat.gz, /[BACKUP-INCR-2]/pg_data/pg_tblspc/1, /[BACKUP-INCR-2]/pg_data/postgresql.conf.gz) +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = false +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Backup::Backup->processManifest(): bCompress = true, bHardLink = true, oBackupManifest = [object], strBackupLabel = [BACKUP-INCR-2], strDbCopyPath = [TEST_PATH]/db-master/db/base, strDbMasterPath = [TEST_PATH]/db-master/db/base, strDbVersion = 9.4, strLsnStart = [undef], strType = incr P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = 1, strBackRestBin = [undef], strCommand = , strRemoteType = db P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol -P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <915>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db +P00 DEBUG: Protocol::Local::Process->new(): bConfessError = , iSelectTimeout = <30>, strBackRestBin = <[BACKREST-BIN]>, strHostType = db P00 DEBUG: Protocol::Local::Process->hostAdd(): iHostConfigIdx = 1, iProcessMax = 1 -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = true, strMode = <0750>, strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/1, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/1, strSourcePathType = backup:tmp -P00 DEBUG: File->linkCreate(): bHard = false, bPathCreate = , bRelative = true, strDestinationFile = pg_data/pg_tblspc/2, strDestinationPathType = backup:tmp, strSourceFile = pg_tblspc/2, strSourcePathType = backup:tmp +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/global +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2 +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = , bIgnoreExists = true, strMode = <0750>, strPathExp = /[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1]/32768 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc/1, strSourcePathFileExp = /[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_tblspc/2, strSourcePathFileExp = /[BACKUP-INCR-2]/pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33001 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33001, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33001, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33001.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33001.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000.32767 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000.32767, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000.32767, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33000.32767.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.32767.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/33000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/33000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/33000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/33000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/33000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/17000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/17000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/17000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/16384/17000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/17000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/global/pg_control to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/global/pg_control, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/global/pg_control, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/global/pg_control.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/global/pg_control.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/12000 to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/12000, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/12000, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/1/12000.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/12000.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/postgresql.conf to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/postgresql.conf, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/postgresql.conf, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/postgresql.conf.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/postgresql.conf.gz +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/badchecksum.txt, pg_data/badchecksum.txt, 11, bogus, 0, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_data/badchecksum.txt, strOp = backupFile, strQueue = pg_data +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, 7, [undef], 1, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, 7, d85de07d6421d90aa9191c11c889bfde43680f0f, 1, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, {iWalId => 65535, iWalOffset => 65535}), strKey = pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt, strOp = backupFile, strQueue = pg_tblspc/1 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/pg_stat/global.stat to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/pg_stat/global.stat, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/pg_stat/global.stat, strSourcePathType = backup:cluster -P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/pg_stat/global.stat.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/pg_stat/global.stat.gz +P00 DEBUG: Protocol::Local::Process->queueJob(): iHostConfigIdx = 1, rParam = ([TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, 4, [undef], 0, [BACKUP-INCR-2], 1, [MODIFICATION-TIME-1], 1, [undef]), strKey = pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init, strOp = backupFile, strQueue = pg_tblspc/2 P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/32768/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/32768/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/32768/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/32768/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/16384/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/16384/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/16384/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/16384/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/base/1/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/base/1/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/base/1/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/base/1/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/base/1/PG_VERSION.gz P00 DEBUG: Backup::Backup->processManifest: hardlink pg_data/PG_VERSION to [BACKUP-FULL-2] -P00 DEBUG: File->linkCreate(): bHard = true, bPathCreate = true, bRelative = false, strDestinationFile = pg_data/PG_VERSION, strDestinationPathType = backup:tmp, strSourceFile = [BACKUP-FULL-2]/pg_data/PG_VERSION, strSourcePathType = backup:cluster +P00 DEBUG: Storage::Local->linkCreate(): bHard = true, bIgnoreExists = , bPathCreate = , bRelative = , strDestinationLinkExp = /[BACKUP-INCR-2]/pg_data/PG_VERSION.gz, strSourcePathFileExp = /[BACKUP-FULL-2]/pg_data/PG_VERSION.gz P00 DEBUG: Protocol::Local::Process->hostConnect: start local process: iHostConfigIdx = 1, iHostIdx = 0, iHostProcessIdx = 0, iProcessId = 1, strHostType = db -P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/repo/lock --log-path=[TEST_PATH]/backup/repo/log --process=1 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = local-1, strName = local, strRemoteType = none +P00 DEBUG: Protocol::Local::Master->new(): iProcessIdx = 1, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --command=backup --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --host-id=1 --lock-path=[TEST_PATH]/backup/lock --log-path=[TEST_PATH]/backup/log --process=1 --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=db local, strId = 'local-1', strName = local P00 DEBUG: Protocol::Local::Process->hostConnect=>: bResult = true P00 DEBUG: Protocol::Local::Process->init: init local process: iDirection = 1, iHostIdx = 0, iProcessId = 1, iQueueIdx = 0, iQueueLastIdx = 2 P00 DEBUG: Protocol::Local::Process->init=>: bResult = true @@ -1501,51 +1669,49 @@ P00 DEBUG: Protocol::Helper::protocolDestroy(): bComplete = true, iRemoteId P00 DEBUG: Protocol::Helper::protocolDestroy: found cached protocol: iRemoteIdx = 1, strRemoteType = db P00 DEBUG: Protocol::Command::Master->close=>: iExitStatus = 0 P00 DEBUG: Protocol::Helper::protocolDestroy=>: iExitStatus = 0 -P00 DEBUG: File->pathSync(): bRecursive = true, strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->manifest(): strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/base/32768, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/global, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_clog, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_stat, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_data/pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/1/[TS_PATH-1]/16384, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2, strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1], strPathType = backup:tmp -P00 DEBUG: File->pathSync(): bRecursive = , strPath = pg_tblspc/2/[TS_PATH-1]/32768, strPathType = backup:tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] P00 INFO: new backup label = [BACKUP-INCR-2] -P00 DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = true, bDestinationPathCreate = , bIgnoreMissingSource = , bPathSync = , bSourceCompressed = , bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = backup.manifest.gz, strDestinationPathType = backup:tmp, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = backup.manifest, strSourcePathType = backup:tmp, strUser = [undef] -P00 DEBUG: Backup::Backup->process: move [TEST_PATH]/backup/repo/temp/db.tmp to [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] -P00 DEBUG: File->move(): bDestinationPathCreate = , bPathSync = , strDestinationFile = [BACKUP-INCR-2], strDestinationPathType = backup:cluster, strSourceFile = [undef], strSourcePathType = backup:tmp -P00 DEBUG: File->move(): bDestinationPathCreate = true, bPathSync = true, strDestinationFile = backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2]/backup.manifest.gz, strSourcePathType = backup:cluster -P00 DEBUG: File->remove(): bIgnoreMissing = , bPathSync = , bTemp = [undef], strPath = latest, strPathType = backup:cluster -P00 DEBUG: File->remove=>: bRemoved = true -P00 DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = latest, strDestinationPathType = backup:cluster, strSourceFile = [BACKUP-INCR-2], strSourcePathType = backup:cluster -P00 DEBUG: File->pathSync(): bRecursive = , strPath = [undef], strPathType = backup:cluster +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /backup.history/[YEAR-1]/[BACKUP-INCR-2].manifest.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = /[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /backup.history +P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , strPathFileExp = /latest +P00 DEBUG: Storage::Local->remove=>: bRemoved = true +P00 DEBUG: Storage::Local->linkCreate(): bHard = , bIgnoreExists = , bPathCreate = , bRelative = true, strDestinationLinkExp = /latest, strSourcePathFileExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info.copy +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = none -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Backup::Info->new(): bRequired = , bValidate = , strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.info P00 DEBUG: Backup::Info->reconstruct(): bRequired = , bSave = , iCatalogVersion = [undef], iControlVersion = [undef], strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = [TEST_PATH]/backup/repo/backup/db, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-FULL-2], [BACKUP-INCR-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest +P00 DEBUG: Storage::Local->exists=>: bExists = true P00 DEBUG: Backup::Common::backupRegExpGet(): bAnchor = , bDifferential = true, bFull = true, bIncremental = true P00 DEBUG: Backup::Common::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ -P00 DEBUG: File->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse -P00 DEBUG: File->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = , strExpression = ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, strPathExp = , strSortOrder = reverse +P00 DEBUG: Storage::Local->list=>: stryFileList = ([BACKUP-INCR-2], [BACKUP-FULL-2]) P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-INCR-2] P00 DEBUG: Backup::Info->current=>: bTest = true P00 DEBUG: Backup::Info->current(): strBackup = [BACKUP-FULL-2] @@ -1569,12 +1735,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1586,11 +1753,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1713,14 +1882,14 @@ db-version="9.4" diff backup - cannot resume - new diff (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-INCR-2] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-INCR-2] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (new backup-type 'diff' does not match aborted backup-type 'incr') - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-INCR-2] cannot be resumed: new backup-type 'diff' does not match aborted backup-type 'incr' P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1730,7 +1899,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-1] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1744,12 +1913,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1761,11 +1931,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -1886,16 +2058,16 @@ db-version="9.4" 1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} diff backup - cannot resume - disabled / no repo link (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --no-resume --log-level-console=detail --no-repo-link --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y +> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --no-resume --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=0.2 --test-point=backup-noresume=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --no-repo-link --repo-path=[TEST_PATH]/backup/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --no-resume --stanza=db --start-fast --test --test-delay=0.2 --test-point=backup-noresume=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. -P00 WARN: backup [BACKUP-DIFF-1] missing in repository removed from backup.info +P00 WARN: backup [BACKUP-DIFF-1] missing manifest removed from backup.info P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] -P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] -P00 WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated +P00 WARN: aborted backup [BACKUP-DIFF-1] cannot be resumed: resume is disabled P00 TEST: PgBaCkReStTeSt-BACKUP-NORESUME-PgBaCkReStTeSt +P00 WARN: diff backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2] P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/badchecksum.txt (11B, 37%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 62%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt: file size 7 is not divisible by page size 8192 @@ -1905,7 +2077,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base/pg P00 INFO: diff backup size = 29B P00 INFO: new backup label = [BACKUP-DIFF-2] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -1919,12 +2091,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -1936,11 +2109,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2063,7 +2238,7 @@ db-version="9.4" restore, backup '[BACKUP-DIFF-2]', expect exit 40 - fail on used path (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db P00 INFO: restore backup set [BACKUP-DIFF-2] P00 DETAIL: check [TEST_PATH]/db-master/db/base exists P00 ERROR: [040]: cannot restore to path '[TEST_PATH]/db-master/db/base' that contains files - try using --delta if this is what you intended @@ -2072,7 +2247,7 @@ P00 INFO: restore command end: aborted with exception [040] restore, backup '[BACKUP-DIFF-2]', remap - remap all paths (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -2084,7 +2259,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -2097,7 +2272,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2107,7 +2282,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-DIFF-2]', remap - ensure file in tblspc root remains after --delta (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-DIFF-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --set=[BACKUP-DIFF-2] --stanza=db --tablespace-map=1=[TEST_PATH]/db-master/db/tablespace/ts1-2 --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-2] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2 P00 INFO: remap tablespace pg_tblspc/1 directory to [TEST_PATH]/db-master/db/tablespace/ts1-2 @@ -2123,7 +2298,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 - exis P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 - exists and matches backup (32KB, 59%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 - exists and matches backup (32KB, 79%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/16384/17000 - exists and matches backup (16KB, 89%) checksum e0101dd8ffb910c9c202ca35b5f828bcb9697bed -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -2136,7 +2311,7 @@ P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init - exists and matches backup (4B, 99%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt - exists and matches backup (7B, 100%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -2146,7 +2321,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf incr backup - add files and remove tablespace 2 (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] @@ -2158,7 +2333,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base-2/ P00 INFO: incr backup size = 13B P00 INFO: new backup label = [BACKUP-INCR-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2176,12 +2351,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2193,11 +2369,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2317,7 +2495,7 @@ db-version="9.4" stanza-create db - create required data for stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -2360,7 +2538,7 @@ db-version="9.4" incr backup - update files (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-INCR-3], version = [VERSION-1] @@ -2370,7 +2548,7 @@ P00 WARN: page misalignment in file db-master:[TEST_PATH]/db-master/db/base-2/ P00 INFO: incr backup size = 8B P00 INFO: new backup label = [BACKUP-INCR-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2388,12 +2566,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2405,11 +2584,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2530,7 +2711,7 @@ db-version="9.4" diff backup - updates since last full (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2548,7 +2729,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: diff backup size = 43B P00 INFO: new backup label = [BACKUP-DIFF-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2566,12 +2747,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2583,11 +2765,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2709,7 +2893,7 @@ db-version="9.4" incr backup - remove files - but won't affect manifest (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] @@ -2718,7 +2902,7 @@ P00 TEST: PgBaCkReStTeSt-MANIFEST-BUILD-PgBaCkReStTeSt P00 INFO: incr backup size = 0B P00 INFO: new backup label = [BACKUP-INCR-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2736,12 +2920,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2753,11 +2938,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -2880,7 +3067,7 @@ db-version="9.4" diff backup - remove files during backup (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=diff --stanza=db backup --test --test-delay=1 --test-point=manifest-build=y ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --test --test-delay=1 --test-point=manifest-build=y --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] @@ -2896,7 +3083,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: diff backup size = 35B P00 INFO: new backup label = [BACKUP-DIFF-4] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -2914,12 +3101,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -2931,11 +3119,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3057,7 +3247,7 @@ db-version="9.4" full backup - update file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=full P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b @@ -3079,7 +3269,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[T P00 INFO: full backup size = 144KB P00 INFO: new backup label = [BACKUP-FULL-3] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3097,12 +3287,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -3114,11 +3305,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3576,14 +3769,14 @@ info db stanza - normal output (backup host) expire full=1 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --retention-full=1 --stanza=db expire ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: expire command begin [BACKREST-VERSION]: --backup-host=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --retention-full=1 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --backup-host=backup --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --retention-full=1 --stanza=db P00 ERROR: [072]: backup and expire commands must be run on the backup host P00 INFO: expire command end: aborted with exception [072] diff backup - add file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --no-online --log-level-console=detail --checksum-page --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --checksum-page --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --db-user=[USER-1] --hardlink --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db --start-fast --type=diff P00 WARN: option retention-full is not set, the repository may run out of space HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum. P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] @@ -3591,7 +3784,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base-2/base/base2.txt P00 INFO: diff backup size = 9B P00 INFO: new backup label = [BACKUP-DIFF-5] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: option 'retention-archive' is not set - archive logs will not be expired P00 INFO: expire command end: completed successfully @@ -3609,12 +3802,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -3626,11 +3820,13 @@ db-path=[TEST_PATH]/db-master/db/base-2 db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -3756,7 +3952,7 @@ db-version="9.4" restore delta, remap - selective restore 16384 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=16384 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=16384=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3769,7 +3965,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/32768\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3784,7 +3980,7 @@ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_ P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) P01 DETAIL: restore zeroed file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3794,7 +3990,7 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, remap - selective restore 32768 (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --log-level-console=detail --db-include=32768 --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --delta --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-include=32768=1 --db-path=[TEST_PATH]/db-master/db/base-2 --db-timeout=45 --delta --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map=2=[TEST_PATH]/db-master/db/tablespace/ts2-2 P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap tablespace pg_tblspc/2 directory to [TEST_PATH]/db-master/db/tablespace/ts2-2 P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists @@ -3807,7 +4003,7 @@ P00 DETAIL: database filter: (^pg_data\/base\/16384\/)|(^pg_tblspc/2\/[TS_PATH-1 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/base/1/12000 - exists and matches backup (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/postgresql.conf - exists and matches backup (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 DETAIL: restore file [TEST_PATH]/db-master/db/base-2/badchecksum.txt - exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3822,7 +4018,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1] P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/recovery.conf @@ -3842,7 +4038,7 @@ P00 ERROR: [081]: system databases (template0, postgres, etc.) are included by restore, remap, expect exit 73 - no tablespace remap - error when tablespace dir does not exist (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --tablespace-map-all=../../tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3854,7 +4050,7 @@ P00 INFO: restore command end: aborted with exception [073] restore - no tablespace remap (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --tablespace-map-all=../../tablespace --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db --tablespace-map-all=../../tablespace +P00 INFO: restore command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base-2/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db --tablespace-map-all=../../tablespace P00 INFO: restore backup set [BACKUP-DIFF-5] P00 INFO: remap $PGDATA directory to [TEST_PATH]/db-master/db/base-2/base P00 INFO: remap tablespace pg_tblspc/2 directory to ../../tablespace/ts2 @@ -3863,7 +4059,7 @@ P00 DETAIL: check [TEST_PATH]/db-master/db/base-2/tablespace exists P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33001 (64KB, 44%) checksum 6bf316f11d28c28914ea9be92c00de9bea6d9a6b P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000.32767 (32KB, 66%) checksum 21e2c7c1a326682c07053b7d6a5a40dbd49c2ec5 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/32768/33000 (32KB, 88%) checksum 4a383e4fb8b5cd2a4e8fab91ef63dce48e532a2f -P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 +P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/global/pg_control.pgbackrest.tmp (8KB, 94%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/base/1/12000 (8KB, 99%) checksum 22c98d248ff548311eda88559e4a8405ed77c003 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/postgresql.conf (21B, 99%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 @@ -3878,7 +4074,7 @@ P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PA P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 99%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 P01 INFO: restore file [TEST_PATH]/db-master/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768/pg_internal.init (4B, 100%) checksum bc46a4e0420d357db7bfbcb7b5fcbc613dc48c1b P00 INFO: write [TEST_PATH]/db-master/db/base-2/base/recovery.conf -P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) +P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started) P00 INFO: restore command end: completed successfully + supplemental file: [TEST_PATH]/db-master/db/base-2/base/recovery.conf diff --git a/test/expect/help-help-001.log b/test/expect/help-help-001.log index 38b1f5f1a..2f7117a52 100644 --- a/test/expect/help-help-001.log +++ b/test/expect/help-help-001.log @@ -78,6 +78,8 @@ compress=n [default=3] --protocol-timeout protocol timeout [default=1830] --repo-path repository path where WAL segments and backups stored [default=/var/lib/pgbackrest] + --repo-type type of storage used for the repository +[default=posix] --stanza defines a stanza [current=main] Log Options: diff --git a/test/expect/stanza-create-001.log b/test/expect/stanza-create-001.log index ee87a2e2d..87b09a168 100644 --- a/test/expect/stanza-create-001.log +++ b/test/expect/stanza-create-001.log @@ -1,17 +1,17 @@ -run 001 - local -=============== +run 001 - remote 0 +================== stanza-create db - fail on missing control file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 ERROR: [041]: unable to open [TEST_PATH]/db-master/db/base/global/pg_control P00 INFO: stanza-create command end: aborted with exception [041] stanza-create db - successfully create the stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -49,7 +49,7 @@ db-version="9.4" stanza-create db - successful rerun of stanza-create (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -86,26 +86,31 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 -P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup -P00 DEBUG: Protocol::Helper::protocolGet: create local protocol -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/db-master/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [hash], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/repo, strTempExtension = pgbackrest.tmp P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchiveInfo->new(): bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchiveInfo->new(): bIgnoreMissing = , bLoad = , bRequired = , strArchiveClusterPath = [TEST_PATH]/db-master/repo/archive/db +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = true, rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/repo/archive/db/archive.info P00 DEBUG: Archive::ArchiveInfo->check(): bRequired = , strDbVersion = 9.4, ullDbSysId = 6353949018581704918 P00 DEBUG: Archive::ArchiveInfo->archiveId(): strDbVersion = [undef], ullDbSysId = [undef] P00 DEBUG: Archive::ArchiveInfo->archiveId=>: strArchiveId = 9.4-1 P00 DEBUG: Archive::ArchiveInfo->check=>: strArchiveId = 9.4-1 -P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oFile = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 -P00 DEBUG: File->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPath = 9.4-1/0000000100000001, strPathType = backup:archive, strSortOrder = -P00 DEBUG: File->list=>: stryFileList = () +P00 DEBUG: Archive::ArchiveCommon::walSegmentFind(): iWaitSeconds = [undef], oStorageRepo = [object], strArchiveId = 9.4-1, strWalSegment = 000000010000000100000001 +P00 DEBUG: Storage::Local->list(): bIgnoreMissing = true, strExpression = ^000000010000000100000001-[0-f]{40}(\.gz){0,1}$, strPathExp = /9.4-1/0000000100000001, strSortOrder = +P00 DEBUG: Storage::Local->list=>: stryFileList = () P00 DEBUG: Archive::ArchiveCommon::walSegmentFind=>: strWalFileName = [undef] P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000001.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = /9.4-1/000000010000000100000001-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000001 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -118,10 +123,10 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 stanza-create db - fail on archive info file missing from non-empty dir (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 ERROR: [040]: backup directory and/or archive directory not empty - HINT: Use --force to force the stanza data to be created. -P00 INFO: stanza-create command end: aborted with exception [040] +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 ERROR: [055]: archive information missing + HINT: use stanza-create --force to force the stanza data to be created. +P00 INFO: stanza-create command end: aborted with exception [055] + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info --------------------------------------------------------------------- @@ -143,9 +148,9 @@ db-version="9.4" stanza-create db - gunzip fail on forced stanza-create (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 WARN: unable to create stanza 'db' -P00 ERROR: [041]: unable to open [TEST_PATH]/db-master/repo/archive/db/9.4-1/0000000100000001/000000010000000100000001-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27.gz +P00 ERROR: [041]: unable to open '[TEST_PATH]/db-master/repo/archive/db/9.4-1/0000000100000001/000000010000000100000001-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27.gz': Permission denied P00 INFO: stanza-create command end: aborted with exception [041] + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -168,7 +173,7 @@ db-version="9.4" stanza-create db - force create archive.info from gz file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -206,45 +211,7 @@ db-version="9.4" stanza-create db - repeat create (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 INFO: stanza-create command end: completed successfully - -+ supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info ---------------------------------------------------------------------- -[backrest] -backrest-checksum="[CHECKSUM]" -backrest-format=5 -backrest-version="[VERSION-1]" - -[db] -db-catalog-version=201409291 -db-control-version=942 -db-id=1 -db-system-id=6353949018581704918 -db-version="9.4" - -[db:history] -1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} - -+ supplemental file: [TEST_PATH]/db-master/repo/archive/db/archive.info ------------------------------------------------------------------------ -[backrest] -backrest-checksum="[CHECKSUM]" -backrest-format=5 -backrest-version="[VERSION-1]" - -[db] -db-id=1 -db-system-id=6353949018581704918 -db-version="9.4" - -[db:history] -1={"db-id":6353949018581704918,"db-version":"9.4"} - -stanza-create db - force not needed when backup dir empty, archive.info exists but backup.info is missing (db-master host) -> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------- -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -282,12 +249,29 @@ db-version="9.4" stanza-create db - hash check fails requiring force (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 WARN: unable to create stanza 'db' -P00 ERROR: [028]: archive file invalid +P00 ERROR: [028]: archive info file invalid HINT: use stanza-upgrade if the database has been upgraded or use --force P00 INFO: stanza-create command end: aborted with exception [028] ++ supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info +--------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=5 +backrest-version="[VERSION-1]" + +[db] +db-catalog-version=201409291 +db-control-version=942 +db-id=1 +db-system-id=6353949018581704918 +db-version="9.4" + +[db:history] +1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} + + supplemental file: [TEST_PATH]/db-master/repo/archive/db/archive.info ----------------------------------------------------------------------- [backrest] @@ -306,7 +290,7 @@ db-version="8.0" stanza-create db - use force to overwrite the invalid file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -344,9 +328,9 @@ db-version="9.4" stanza-create db - fail on database mismatch without force option (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 WARN: unable to create stanza 'db' -P00 ERROR: [028]: archive file invalid +P00 ERROR: [028]: archive info file invalid HINT: use stanza-upgrade if the database has been upgraded or use --force P00 INFO: stanza-create command end: aborted with exception [028] @@ -385,7 +369,7 @@ db-version="9.4" stanza-create db - force create archive.info from uncompressed file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -423,8 +407,7 @@ db-version="9.4" stanza-create db - force with missing WAL archive file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db -P00 WARN: found empty directory [TEST_PATH]/db-master/repo/archive/db/9.4-1/0000000100000001 +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -462,7 +445,7 @@ db-version="9.4" stanza-create db - force with missing WAL archive directory (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 WARN: found empty directory [TEST_PATH]/db-master/repo/archive/db/9.4-1 P00 INFO: stanza-create command end: completed successfully diff --git a/test/expect/stanza-create-002.log b/test/expect/stanza-create-002.log index 5c1da753e..921d68cf3 100644 --- a/test/expect/stanza-create-002.log +++ b/test/expect/stanza-create-002.log @@ -1,17 +1,17 @@ -run 002 - remote -================ +run 002 - remote 1 +================== stanza-create db - fail on missing control file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 ERROR: [041]: raised on db-master host: unable to open [TEST_PATH]/db-master/db/base/global/pg_control +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 ERROR: [041]: raised on 'db-master remote' host: unable to open [TEST_PATH]/db-master/db/base/global/pg_control P00 INFO: stanza-create command end: aborted with exception [041] stanza-create db - successfully create the stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -49,7 +49,7 @@ db-version="9.4" stanza-create db - successful rerun of stanza-create (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -86,19 +86,27 @@ db-version="9.4" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: archive-push command begin [BACKREST-VERSION]: --backup-cmd=[BACKREST-BIN] --backup-config=[TEST_PATH]/backup/pgbackrest.conf --backup-host=backup --backup-user=[USER-2] --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --stanza=db P00 DEBUG: Archive::ArchivePush->process(): strWalPathFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup P00 DEBUG: Protocol::Helper::protocolGet: create (cached) remote protocol -P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strRemoteType = backup, strUser = [USER-2] -P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 1830, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --protocol-timeout=1830 --repo-path=[TEST_PATH]/backup/repo --stanza=db --type=backup remote', strId = backup, strName = remote, strRemoteType = backup -P00 DEBUG: File->new(): oProtocol = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strRepoPath = [TEST_PATH]/backup/repo, strStanza = db -P00 DEBUG: Archive::ArchivePushFile::archivePushFile(): bCompress = true, bRepoSync = true, oFile = [object], strWalFile = 000000010000000100000001, strWalPath = [TEST_PATH]/db-master/db/base/pg_xlog +P00 DEBUG: Protocol::Remote::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = [BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote, strCommandSSH = ssh, strHost = backup, strUser = [USER-2] +P00 DEBUG: Protocol::Command::Master->new(): iBufferMax = 4194304, iCompressLevel = 6, iCompressLevelNetwork = 3, iProtocolTimeout = 60, strCommand = ssh -o LogLevel=error -o Compression=no -o PasswordAuthentication=no backrest@backup '[BACKREST-BIN] --buffer-size=4194304 --command=archive-push --compress-level=6 --compress-level-network=3 --config=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --protocol-timeout=60 --stanza=db --type=backup remote', strId = 'backup remote', strName = remote +P00 DEBUG: Protocol::Storage::Remote->new(): oProtocol = [object] P00 DEBUG: Archive::ArchiveCommon::walInfo(): strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 P00 DEBUG: Archive::ArchiveCommon::walInfo=>: strDbVersion = 9.4, ullDbSysId = 6353949018581704918 -P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): oFile = [object], strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Archive::ArchivePushFile::archivePushCheck(): strArchiveFile = 000000010000000100000001, strDbVersion = 9.4, strWalFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, ullDbSysId = 6353949018581704918 +P00 DEBUG: Protocol::Helper::protocolGet(): bCache = , iProcessIdx = [undef], iRemoteIdx = <1>, strBackRestBin = [undef], strCommand = , strRemoteType = backup +P00 DEBUG: Protocol::Helper::protocolGet: found cached protocol P00 DEBUG: Archive::ArchivePushFile::archivePushCheck=>: strArchiveId = 9.4-1, strChecksum = [undef], strWarning = [undef] -P00 DEBUG: File->copy(): bAppendChecksum = true, bDestinationCompress = true, bDestinationPathCreate = true, bIgnoreMissingSource = , bPathSync = true, bSourceCompressed = false, bTempFile = , lModificationTime = [undef], rExtraParam = [undef], strDestinationFile = 9.4-1/000000010000000100000001.gz, strDestinationPathType = backup:archive, strExtraFunction = [undef], strGroup = [undef], strMode = <0640>, strSourceFile = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001, strSourcePathType = db:absolute, strUser = [undef] +P00 DEBUG: Storage::Local->new(): bAllowTemp = , hRule = [undef], lBufferMax = 4194304, oDriver = [object], strDefaultFileMode = <0640>, strDefaultPathMode = <0750>, strPathBase = [TEST_PATH]/db-master/db/base, strTempExtension = pgbackrest.tmp +P00 DEBUG: Storage::Local->hashSize(): xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Storage::Local->hashSize=>: lSize = 16777216, strHash = 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 +P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), xFileExp = [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 +P00 DEBUG: Protocol::Storage::Remote->openWrite(): rhParam = [hash], strFileExp = /9.4-1/000000010000000100000001-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27.gz +P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] P00 DEBUG: Archive::ArchivePushFile::archivePushFile=>: strWarning = [undef] P00 INFO: pushed WAL segment 000000010000000100000001 P00 DEBUG: Common::Exit::exitSafe(): iExitCode = 0, oException = [undef], strSignal = [undef] @@ -113,10 +121,10 @@ P00 DEBUG: Common::Exit::exitSafe=>: iExitCode = 0 stanza-create db - fail on archive info file missing from non-empty dir (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 ERROR: [040]: backup directory and/or archive directory not empty - HINT: Use --force to force the stanza data to be created. -P00 INFO: stanza-create command end: aborted with exception [040] +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 ERROR: [055]: archive information missing + HINT: use stanza-create --force to force the stanza data to be created. +P00 INFO: stanza-create command end: aborted with exception [055] + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info ------------------------------------------------------------------ @@ -138,9 +146,9 @@ db-version="9.4" stanza-create db - gunzip fail on forced stanza-create (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 WARN: unable to create stanza 'db' -P00 ERROR: [041]: unable to open [TEST_PATH]/backup/repo/archive/db/9.4-1/0000000100000001/000000010000000100000001-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27.gz +P00 ERROR: [041]: unable to open '[TEST_PATH]/backup/repo/archive/db/9.4-1/0000000100000001/000000010000000100000001-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27.gz': Permission denied P00 INFO: stanza-create command end: aborted with exception [041] + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -163,7 +171,7 @@ db-version="9.4" stanza-create db - force create archive.info from gz file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -201,45 +209,7 @@ db-version="9.4" stanza-create db - repeat create (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 INFO: stanza-create command end: completed successfully - -+ supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info ------------------------------------------------------------------- -[backrest] -backrest-checksum="[CHECKSUM]" -backrest-format=5 -backrest-version="[VERSION-1]" - -[db] -db-catalog-version=201409291 -db-control-version=942 -db-id=1 -db-system-id=6353949018581704918 -db-version="9.4" - -[db:history] -1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} - -+ supplemental file: [TEST_PATH]/backup/repo/archive/db/archive.info --------------------------------------------------------------------- -[backrest] -backrest-checksum="[CHECKSUM]" -backrest-format=5 -backrest-version="[VERSION-1]" - -[db] -db-id=1 -db-system-id=6353949018581704918 -db-version="9.4" - -[db:history] -1={"db-id":6353949018581704918,"db-version":"9.4"} - -stanza-create db - force not needed when backup dir empty, archive.info exists but backup.info is missing (backup host) -> [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------- -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -277,12 +247,29 @@ db-version="9.4" stanza-create db - hash check fails requiring force (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 WARN: unable to create stanza 'db' -P00 ERROR: [028]: archive file invalid +P00 ERROR: [028]: archive info file invalid HINT: use stanza-upgrade if the database has been upgraded or use --force P00 INFO: stanza-create command end: aborted with exception [028] ++ supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info +------------------------------------------------------------------ +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=5 +backrest-version="[VERSION-1]" + +[db] +db-catalog-version=201409291 +db-control-version=942 +db-id=1 +db-system-id=6353949018581704918 +db-version="9.4" + +[db:history] +1={"db-catalog-version":201409291,"db-control-version":942,"db-system-id":6353949018581704918,"db-version":"9.4"} + + supplemental file: [TEST_PATH]/backup/repo/archive/db/archive.info -------------------------------------------------------------------- [backrest] @@ -301,7 +288,7 @@ db-version="8.0" stanza-create db - use force to overwrite the invalid file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -339,9 +326,9 @@ db-version="9.4" stanza-create db - fail on database mismatch without force option (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 WARN: unable to create stanza 'db' -P00 ERROR: [028]: archive file invalid +P00 ERROR: [028]: archive info file invalid HINT: use stanza-upgrade if the database has been upgraded or use --force P00 INFO: stanza-create command end: aborted with exception [028] @@ -380,7 +367,7 @@ db-version="9.4" stanza-create db - force create archive.info from uncompressed file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -418,8 +405,7 @@ db-version="9.4" stanza-create db - force with missing WAL archive file (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db -P00 WARN: found empty directory [TEST_PATH]/backup/repo/archive/db/9.4-1/0000000100000001 +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -457,7 +443,7 @@ db-version="9.4" stanza-create db - force with missing WAL archive directory (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 WARN: found empty directory [TEST_PATH]/backup/repo/archive/db/9.4-1 P00 INFO: stanza-create command end: completed successfully diff --git a/test/expect/stanza-upgrade-001.log b/test/expect/stanza-upgrade-001.log index 23a2dcd17..7a533655d 100644 --- a/test/expect/stanza-upgrade-001.log +++ b/test/expect/stanza-upgrade-001.log @@ -4,7 +4,7 @@ run 001 - local stanza-upgrade db - fail on stanza not initialized since archive.info is missing (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-upgrade ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 ERROR: [055]: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? @@ -14,7 +14,7 @@ P00 INFO: stanza-upgrade command end: aborted with exception [055] stanza-create db - successfully create the stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -52,7 +52,7 @@ db-version="9.3" stanza-upgrade db - already up to date (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-upgrade ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: the stanza data is already up to date P00 INFO: stanza-upgrade command end: completed successfully @@ -91,7 +91,7 @@ db-version="9.3" stanza-upgrade db - fail on stanza not initialized since backup.info is missing (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-upgrade ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 ERROR: [055]: [TEST_PATH]/db-master/repo/backup/db/backup.info does not exist and is required to perform a backup. HINT: has a stanza-create been performed? P00 INFO: stanza-upgrade command end: aborted with exception [055] @@ -114,7 +114,7 @@ db-version="9.3" stanza-create db - use force to recreate the stanza (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -158,7 +158,7 @@ P00 ERROR: [044]: WAL segment version 9.4 does not match archive version 9.3 stanza-upgrade db - successful upgrade creates mismatched files (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-upgrade ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-upgrade command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -201,7 +201,7 @@ db-version="9.4" stanza-create db - use force to recreate the stanza producing mismatched info history but same current db-id (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -240,7 +240,7 @@ db-version="9.4" stanza-create db - use force to recreate the stanza producing mismatched db-id (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --force --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -278,14 +278,14 @@ db-version="9.4" full backup - create first full backup (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --retention-full=2 --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --retention-full=2 --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-full=2 --stanza=db --start-fast --type=full P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 (16MB, 99%) checksum 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P01 INFO: backup file [TEST_PATH]/db-master/db/base/global/pg_control (8KB, 100%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_xlog/archive_status/000000010000000100000001.ready (0B, 100%) P00 INFO: full backup size = 16MB P00 INFO: new backup label = [BACKUP-FULL-1] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=2 --retention-full=2 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=2 --retention-full=2 --stanza=db P00 INFO: full backup total < 2 - using oldest full backup for 9.4-2 archive retention P00 INFO: expire command end: completed successfully @@ -295,11 +295,13 @@ P00 INFO: expire command end: completed successfully db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] @@ -309,7 +311,7 @@ start-fast=y stanza-upgrade db - successfully upgrade with XX.Y-Z (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-upgrade ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --stanza=db +P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --stanza=db P00 INFO: stanza-upgrade command end: completed successfully + supplemental file: [TEST_PATH]/db-master/repo/backup/db/backup.info @@ -356,7 +358,7 @@ db-version="9.5" diff backup - diff changed to full backup (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --retention-full=2 --no-online --log-level-console=detail --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --no-online --repo-path=[TEST_PATH]/db-master/repo --retention-full=2 --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-full=2 --stanza=db --start-fast --type=diff P00 WARN: no prior backup exists, diff backup has been changed to full P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 (16MB, 99%) checksum 15b1a1a35c26b17570aca7920980f0ad11c6d858 P01 INFO: backup file [TEST_PATH]/db-master/db/base/global/pg_control (8KB, 100%) checksum e28bf39d0a56bf9fabd4049b329fcae8878bfec6 @@ -364,7 +366,7 @@ P01 INFO: backup file [TEST_PATH]/db-master/db/base/pg_xlog/archive_status/000 P00 INFO: full backup size = 16MB P00 INFO: new backup label = [BACKUP-FULL-2] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --retention-archive=2 --retention-full=2 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-timeout=45 --lock-path=[TEST_PATH]/db-master/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --protocol-timeout=60 --repo-path=[TEST_PATH]/db-master/repo --retention-archive=2 --retention-full=2 --stanza=db P00 INFO: remove archive path: [TEST_PATH]/db-master/repo/archive/db/10.0-3 P00 INFO: expire command end: completed successfully @@ -374,11 +376,13 @@ P00 INFO: expire command end: completed successfully db-path=[TEST_PATH]/db-master/db/base [global] -lock-path=[TEST_PATH]/db-master/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/repo/log +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 repo-path=[TEST_PATH]/db-master/repo [global:backup] diff --git a/test/expect/stanza-upgrade-002.log b/test/expect/stanza-upgrade-002.log index 30420c0a5..347a99385 100644 --- a/test/expect/stanza-upgrade-002.log +++ b/test/expect/stanza-upgrade-002.log @@ -4,7 +4,7 @@ run 002 - remote stanza-upgrade db - fail on stanza not initialized since archive.info is missing (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-upgrade ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 ERROR: [055]: archive.info does not exist but is required to push/get WAL segments HINT: is archive_command configured in postgresql.conf? HINT: has a stanza-create been performed? @@ -14,7 +14,7 @@ P00 INFO: stanza-upgrade command end: aborted with exception [055] stanza-create db - successfully create the stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -52,7 +52,7 @@ db-version="9.3" stanza-upgrade db - already up to date (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-upgrade ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: the stanza data is already up to date P00 INFO: stanza-upgrade command end: completed successfully @@ -91,7 +91,7 @@ db-version="9.3" stanza-upgrade db - fail on stanza not initialized since backup.info is missing (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-upgrade ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 ERROR: [055]: [TEST_PATH]/backup/repo/backup/db/backup.info does not exist and is required to perform a backup. HINT: has a stanza-create been performed? P00 INFO: stanza-upgrade command end: aborted with exception [055] @@ -114,7 +114,7 @@ db-version="9.3" stanza-create db - use force to recreate the stanza (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -151,14 +151,14 @@ db-version="9.3" > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --archive-queue-max=33554432 --stanza=db archive-push [TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 ------------------------------------------------------------------------------------------------------------------------------------ -P00 ERROR: [044]: raised on backup host: WAL segment version 9.4 does not match archive version 9.3 +P00 ERROR: [044]: raised on 'backup remote' host: WAL segment version 9.4 does not match archive version 9.3 WAL segment system-id 6353949018581704918 does not match archive system-id 6395542721432104958 HINT: are you archiving to the correct stanza? stanza-upgrade db - successful upgrade creates mismatched files (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-upgrade ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-upgrade command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -201,7 +201,7 @@ db-version="9.4" stanza-create db - use force to recreate the stanza producing mismatched info history but same current db-id (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -240,7 +240,7 @@ db-version="9.4" stanza-create db - use force to recreate the stanza producing mismatched db-id (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online --force stanza-create ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-create command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --force --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-create command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -278,14 +278,14 @@ db-version="9.4" full backup - create first full backup (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --retention-full=2 --no-online --log-level-console=detail --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --retention-full=2 --stanza=db --start-fast --type=full +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --retention-full=2 --stanza=db --start-fast --type=full P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 (16MB, 99%) checksum 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/global/pg_control (8KB, 100%) checksum 89373d9f2973502940de06bc5212489df3f8a912 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_xlog/archive_status/000000010000000100000001.ready (0B, 100%) P00 INFO: full backup size = 16MB P00 INFO: new backup label = [BACKUP-FULL-1] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --retention-archive=2 --retention-full=2 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --retention-archive=2 --retention-full=2 --stanza=db P00 INFO: full backup total < 2 - using oldest full backup for 9.4-2 archive retention P00 INFO: expire command end: completed successfully @@ -299,12 +299,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -316,11 +317,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] @@ -330,7 +333,7 @@ start-fast=y stanza-upgrade db - successfully upgrade with XX.Y-Z (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --stanza=db --log-level-console=detail --no-online stanza-upgrade ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --stanza=db +P00 INFO: stanza-upgrade command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --stanza=db P00 INFO: stanza-upgrade command end: completed successfully + supplemental file: [TEST_PATH]/backup/repo/backup/db/backup.info @@ -377,7 +380,7 @@ db-version="9.5" diff backup - diff changed to full backup (backup host) > [CONTAINER-EXEC] backup [BACKREST-BIN] --config=[TEST_PATH]/backup/pgbackrest.conf --retention-full=2 --no-online --log-level-console=detail --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ -P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --no-online --repo-path=[TEST_PATH]/backup/repo --retention-full=2 --stanza=db --start-fast --type=diff +P00 INFO: backup command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-path=[TEST_PATH]/db-master/db/base --db-timeout=45 --db-user=[USER-1] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-online --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --retention-full=2 --stanza=db --start-fast --type=diff P00 WARN: no prior backup exists, diff backup has been changed to full P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_xlog/000000010000000100000001 (16MB, 99%) checksum 15b1a1a35c26b17570aca7920980f0ad11c6d858 P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/global/pg_control (8KB, 100%) checksum e28bf39d0a56bf9fabd4049b329fcae8878bfec6 @@ -385,7 +388,7 @@ P01 INFO: backup file db-master:[TEST_PATH]/db-master/db/base/pg_xlog/archive_ P00 INFO: full backup size = 16MB P00 INFO: new backup label = [BACKUP-FULL-2] P00 INFO: backup command end: completed successfully -P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --lock-path=[TEST_PATH]/backup/repo/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/repo/log --repo-path=[TEST_PATH]/backup/repo --retention-archive=2 --retention-full=2 --stanza=db +P00 INFO: expire command begin [BACKREST-VERSION]: --config=[TEST_PATH]/backup/pgbackrest.conf --db-cmd=[BACKREST-BIN] --db-config=[TEST_PATH]/db-master/pgbackrest.conf --db-host=db-master --db-timeout=45 --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --protocol-timeout=60 --repo-path=[TEST_PATH]/backup/repo --retention-archive=2 --retention-full=2 --stanza=db P00 INFO: remove archive path: [TEST_PATH]/backup/repo/archive/db/10.0-3 P00 INFO: expire command end: completed successfully @@ -399,12 +402,13 @@ backup-cmd=[BACKREST-BIN] backup-config=[TEST_PATH]/backup/pgbackrest.conf backup-host=backup backup-user=[USER-2] -lock-path=[TEST_PATH]/db-master/spool/lock +db-timeout=45 +lock-path=[TEST_PATH]/db-master/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/db-master/spool/log -repo-path=[TEST_PATH]/backup/repo +log-path=[TEST_PATH]/db-master/log +protocol-timeout=60 + supplemental file: [TEST_PATH]/backup/pgbackrest.conf ------------------------------------------------------- @@ -416,11 +420,13 @@ db-path=[TEST_PATH]/db-master/db/base db-user=[USER-1] [global] -lock-path=[TEST_PATH]/backup/repo/lock +db-timeout=45 +lock-path=[TEST_PATH]/backup/lock log-level-console=debug log-level-file=trace log-level-stderr=off -log-path=[TEST_PATH]/backup/repo/log +log-path=[TEST_PATH]/backup/log +protocol-timeout=60 repo-path=[TEST_PATH]/backup/repo [global:backup] diff --git a/test/lib/pgBackRestTest/Common/CiTest.pm b/test/lib/pgBackRestTest/Common/CiTest.pm index 4f94881a2..182895d8b 100644 --- a/test/lib/pgBackRestTest/Common/CiTest.pm +++ b/test/lib/pgBackRestTest/Common/CiTest.pm @@ -22,7 +22,6 @@ use pgBackRest::DbVersion; use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::FileCommon; use pgBackRest::Version; use pgBackRestTest::Common::ContainerTest; @@ -45,12 +44,12 @@ sub new # Assign function parameters, defaults, and log debug info ( my $strOperation, - $self->{strBackRestBase}, + $self->{oStorage}, ) = logDebugParam ( __PACKAGE__ . '->new', \@_, - {name => 'strBackRestBase'}, + {name => 'oStorage'}, ); # Return from function and log return values if any @@ -116,7 +115,7 @@ sub process my $strConfigNotFirstOS = '--no-package'; $strConfig .= - " - PGB_TEST_VM=\"${strVm}\" PGB_BUILD_PARAM=\"--db=none\" PGB_TEST_PARAM=\"--module=" . + " - PGB_TEST_VM=\"${strVm}\" PGB_BUILD_PARAM=\"--db=none\" PGB_TEST_PARAM=\"--vm-max=2 --module=" . join(' --module=', @stryModule) . ($bFirst ? '' : " ${strConfigNotFirst}") . "\"\n"; $bFirst = false; @@ -146,7 +145,7 @@ sub process { $strConfig .= " - PGB_TEST_VM=\"${strVm}\" PGB_BUILD_PARAM=\"--db=none\"" . - " PGB_TEST_PARAM=\"--module=full --test=${strTest} ${strConfigNotFirst} ${strConfigNotFirstOS}\"\n"; + " PGB_TEST_PARAM=\"--vm-max=2 --module=full --test=${strTest} ${strConfigNotFirst} ${strConfigNotFirstOS}\"\n"; } } @@ -160,26 +159,30 @@ sub process $strConfig .= "\n" . "before_install:\n" . - " - sudo apt-get -qq update\n" . - " - sudo apt-get install libxml-checker-perl libdbd-pg-perl libperl-critic-perl libtemplate-perl libpod-coverage-perl" . - " libtest-differences-perl libhtml-parser-perl lintian debhelper txt2man devscripts libjson-perl\n" . - " - git clone https://anonscm.debian.org/git/pkg-perl/packages/libdevel-cover-perl.git ~/libdevel-cover-perl\n" . - ' - cd ~/libdevel-cover-perl && git checkout debian/' . LIB_COVER_VERSION . " && debuild -i -us -uc -b\n" . - ' - sudo dpkg -i ~/' . LIB_COVER_PACKAGE . "\n" . - ' - ' . LIB_COVER_EXE . " -v\n" . + " - sudo apt-get -qq update && sudo apt-get install libxml-checker-perl libdbd-pg-perl libperl-critic-perl" . + " libtemplate-perl libpod-coverage-perl libtest-differences-perl libhtml-parser-perl lintian debhelper txt2man" . + " devscripts libjson-perl libio-socket-ssl-perl libxml-libxml-perl python-pip\n" . + " - |\n" . + " # Build Devel::Cover\n" . + " git clone https://anonscm.debian.org/git/pkg-perl/packages/libdevel-cover-perl.git ~/libdevel-cover-perl\n" . + ' cd ~/libdevel-cover-perl && git checkout debian/' . LIB_COVER_VERSION . " && debuild -i -us -uc -b\n" . + ' sudo dpkg -i ~/' . LIB_COVER_PACKAGE . "\n" . + ' ' . LIB_COVER_EXE . " -v\n" . "\n" . "install:\n" . - " - sudo adduser --ingroup=\${USER?} --disabled-password --gecos \"\" " . BACKREST_USER . "\n" . - " - umask 0022\n" . - " - cd ~ && pwd && whoami && umask && groups\n" . - " - mv \${TRAVIS_BUILD_DIR?} " . BACKREST_EXE . "\n" . - " - rm -rf \${TRAVIS_BUILD_DIR?}\n" . + " - |\n" . + " # User Configuration\n" . + " sudo adduser --ingroup=\${USER?} --disabled-password --gecos \"\" " . BACKREST_USER . "\n" . + " umask 0022\n" . + " cd ~ && pwd && whoami && umask && groups\n" . + " mv \${TRAVIS_BUILD_DIR?} " . BACKREST_EXE . "\n" . + " rm -rf \${TRAVIS_BUILD_DIR?}\n" . " - " . BACKREST_EXE . "/test/test.pl --vm-build --vm=\${PGB_TEST_VM?} \${PGB_BUILD_PARAM?}\n" . "\n" . "script:\n" . - " - " . BACKREST_EXE . "/test/test.pl --vm-host=u14 --vm-max=2 --vm=\${PGB_TEST_VM?} \${PGB_TEST_PARAM?}\n"; + " - " . BACKREST_EXE . "/test/test.pl --vm-host=u14 --vm=\${PGB_TEST_VM?} \${PGB_TEST_PARAM?}\n"; - fileStringWrite("$self->{strBackRestBase}/.travis.yml", $strConfig, false); + $self->{oStorage}->put('.travis.yml', $strConfig); # Return from function and log return values if any return logDebugReturn($strOperation); diff --git a/test/lib/pgBackRestTest/Common/ContainerTest.pm b/test/lib/pgBackRestTest/Common/ContainerTest.pm index 2bde2e25d..edc63d770 100755 --- a/test/lib/pgBackRestTest/Common/ContainerTest.pm +++ b/test/lib/pgBackRestTest/Common/ContainerTest.pm @@ -20,7 +20,6 @@ use Getopt::Long qw(GetOptions); use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::FileCommon; use pgBackRest::Version; use pgBackRestTest::Common::ExecuteTest; @@ -144,6 +143,7 @@ sub backrestConfigCreate #################################################################################################################################### sub containerWrite { + my $oStorageDocker = shift; my $strTempPath = shift; my $strOS = shift; my $strTitle = shift; @@ -162,7 +162,7 @@ sub containerWrite } elsif (!defined($bPre)) { - containerWrite($strTempPath, $strOS, $strTitle, $strImageParent, $strImage, $strScript, $bForce, true); + containerWrite($oStorageDocker, $strTempPath, $strOS, $strTitle, $strImageParent, $strImage, $strScript, $bForce, true); if (defined($bPreOnly) && $bPreOnly) { @@ -179,7 +179,7 @@ sub containerWrite $strScript; # Write the image - fileStringWrite("${strTempPath}/${strImage}", trim($strScript) . "\n", false); + $oStorageDocker->put("${strTempPath}/${strImage}", trim($strScript) . "\n"); executeTest('docker build' . (defined($bForce) && $bForce ? ' --no-cache' : '') . " -f ${strTempPath}/${strImage} -t ${strTag} ${strTempPath}", {bSuppressStdErr => true}); @@ -256,7 +256,7 @@ sub sudoSetup elsif ($$oVm{$strOS}{&VM_OS_BASE} eq VM_OS_BASE_DEBIAN) { $strScript .= - "\nRUN apt-get -y install sudo && \\\n" . + "\nRUN apt-get -y install sudo && \\" . "\n echo '%${strGroup} ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers"; } else @@ -295,28 +295,34 @@ sub perlInstall { my $strOS = shift; + my $oVm = vmGet(); my $strImage = "# Install Perl packages\n"; - if ($strOS eq VM_CO6) + if ($oVm->{$strOS}{&VM_OS_BASE} eq VM_OS_BASE_RHEL) { - $strImage .= - 'RUN yum install -y perl perl-Time-HiRes perl-parent perl-JSON perl-Digest-SHA perl-DBD-Pg'; + $strImage .= 'RUN yum install -y perl'; + + if ($strOS eq VM_CO6) + { + $strImage .= ' perl-Time-HiRes perl-parent perl-JSON'; + } + else + { + $strImage .= ' perl-JSON-PP'; + } + + $strImage .= ' perl-Digest-SHA perl-DBD-Pg'; } - elsif ($strOS eq VM_CO7) - { - $strImage .= - 'RUN yum install -y perl perl-JSON-PP perl-Digest-SHA perl-DBD-Pg'; - } - elsif ($strOS eq VM_U12 || $strOS eq VM_U14) - { - $strImage .= - 'RUN apt-get install -y libdbd-pg-perl libdbi-perl libnet-daemon-perl libplrpc-perl libhtml-parser-perl'; - } - elsif ($strOS eq VM_U16 || $strOS eq VM_D8) + elsif ($oVm->{$strOS}{&VM_OS_BASE} eq VM_OS_BASE_DEBIAN) { $strImage .= 'RUN apt-get install -y libdbd-pg-perl libdbi-perl libhtml-parser-perl'; + + if ($strOS eq VM_U12 || $strOS eq VM_U14) + { + $strImage .= ' libnet-daemon-perl libplrpc-perl'; + } } else { @@ -331,13 +337,14 @@ sub perlInstall #################################################################################################################################### sub containerBuild { + my $oStorageDocker = shift; my $strVm = shift; my $bVmForce = shift; my $strDbVersionBuild = shift; # Create temp path - my $strTempPath = dirname(abs_path($0)) . '/.vagrant/docker'; - filePathCreate($strTempPath, '0770', true, true); + my $strTempPath = $oStorageDocker->pathGet('test/.vagrant/docker'); + $oStorageDocker->pathCreate($strTempPath, {strMode => '0770', bIgnoreExists => true, bCreateParent => true}); # Remove old images on force if ($bVmForce) @@ -365,6 +372,8 @@ sub containerBuild executeTest("ssh-keygen -f ${strTempPath}/id_rsa -t rsa -b 1024 -N ''", {bSuppressStdErr => true}); } + # VM Images + ################################################################################################################################ my $oVm = vmGet(); foreach my $strOS (sort(keys(%$oVm))) @@ -393,7 +402,7 @@ sub containerBuild { $strScript .= "RUN apt-get update && \\\n" . - " apt-get -y install openssh-server wget\n"; + " apt-get -y install openssh-server wget vim net-tools iputils-ping\n"; $strScript .= "\n# Fix root tty\n" . @@ -497,7 +506,7 @@ sub containerBuild } # Write the image - containerWrite($strTempPath, $strOS, 'Base', $strImageParent, $strImage, $strScript, $bVmForce, false); + containerWrite($oStorageDocker, $strTempPath, $strOS, 'Base', $strImageParent, $strImage, $strScript, $bVmForce, false); # Base pre image ########################################################################################################################### @@ -509,7 +518,9 @@ sub containerBuild perlInstall($strOS) . "\n"; # Write the image - containerWrite($strTempPath, $strOS, 'Base (Pre-Installed)', $strImageParent, $strImage, $strScript, $bVmForce, false); + containerWrite( + $oStorageDocker, $strTempPath, $strOS, 'Base (Pre-Installed)', $strImageParent, $strImage, $strScript, $bVmForce, + false); # Build image ########################################################################################################################### @@ -536,7 +547,7 @@ sub containerBuild } # Write the image - containerWrite($strTempPath, $strOS, 'Build', $strImageParent, $strImage, $strScript, $bVmForce, false); + containerWrite($oStorageDocker, $strTempPath, $strOS, 'Build', $strImageParent, $strImage, $strScript, $bVmForce, false); # Copy Devel::Cover to host so it can be installed in other containers if ($$oVm{$strOS}{&VM_OS_BASE} eq VM_OS_BASE_DEBIAN) @@ -612,8 +623,9 @@ sub containerBuild } # Write the image - containerWrite($strTempPath, $strOS, $strTitle, $strImageParent, $strImage, $strScript, $bVmForce, - $bDocBuildVersion ? undef : true, $bDocBuildVersion ? undef : true); + containerWrite( + $oStorageDocker, $strTempPath, $strOS, $strTitle, $strImageParent, $strImage, $strScript, $bVmForce, + $bDocBuildVersion ? undef : true, $bDocBuildVersion ? undef : true); # Db doc image ######################################################################################################################## @@ -629,7 +641,8 @@ sub containerBuild $strScript .= "\n\n" . sudoSetup($strOS, TEST_GROUP); # Write the image - containerWrite($strTempPath, $strOS, "${strTitle} Doc", $strImageParent, $strImage, $strScript, $bVmForce); + containerWrite( + $oStorageDocker, $strTempPath, $strOS, "${strTitle} Doc", $strImageParent, $strImage, $strScript, $bVmForce); } # Db test image @@ -644,7 +657,9 @@ sub containerBuild $strScript .= coverSetup($strOS); # Write the image - containerWrite($strTempPath, $strOS, "${strTitle} Test", $strImageParent, $strImage, $strScript, $bVmForce, true, true); + containerWrite( + $oStorageDocker, $strTempPath, $strOS, "${strTitle} Test", $strImageParent, $strImage, $strScript, $bVmForce, true, + true); } # Db test image (for synthetic tests) @@ -659,7 +674,9 @@ sub containerBuild $strScript .= coverSetup($strOS); # Write the image - containerWrite($strTempPath, $strOS, 'Db Synthetic Test', $strImageParent, $strImage, $strScript, $bVmForce, true, true); + containerWrite( + $oStorageDocker, $strTempPath, $strOS, 'Db Synthetic Test', $strImageParent, $strImage, $strScript, $bVmForce, true, + true); # Loop test image ######################################################################################################################## @@ -689,7 +706,8 @@ sub containerBuild $strScript .= coverSetup($strOS); # Write the image - containerWrite($strTempPath, $strOS, 'Loop Test', $strImageParent, $strImage, $strScript, $bVmForce, true, true); + containerWrite( + $oStorageDocker, $strTempPath, $strOS, 'Loop Test', $strImageParent, $strImage, $strScript, $bVmForce, true, true); # Backup image ########################################################################################################################### @@ -721,7 +739,9 @@ sub containerBuild $strScript .= "\n\n" . sudoSetup($strOS, TEST_GROUP); # Write the image - containerWrite($strTempPath, $strOS, "${strTitle} Doc", $strImageParent, $strImage, $strScript, $bVmForce, true, true); + containerWrite( + $oStorageDocker, $strTempPath, $strOS, "${strTitle} Doc", $strImageParent, $strImage, $strScript, $bVmForce, true, + true); } # Backup Test image @@ -745,7 +765,9 @@ sub containerBuild $strScript .= coverSetup($strOS); # Write the image - containerWrite($strTempPath, $strOS, "${strTitle} Test", $strImageParent, $strImage, $strScript, $bVmForce, true, true); + containerWrite( + $oStorageDocker, $strTempPath, $strOS, "${strTitle} Test", $strImageParent, $strImage, $strScript, $bVmForce, true, + true); } } @@ -780,7 +802,7 @@ sub imageRemove { my $strRegExp = shift; - foreach my $strImage (sort(split("\n", trim(executeTest('docker images --format "{{.Repository}}"'))))) + foreach my $strImage (sort(split("\n", trim(executeTest('docker images --format "{{.Repository}}/{{.Tag}}"'))))) { if ($strImage =~ $strRegExp) { diff --git a/test/lib/pgBackRestTest/Common/DefineTest.pm b/test/lib/pgBackRestTest/Common/DefineTest.pm index 17e67e98d..86016ded0 100644 --- a/test/lib/pgBackRestTest/Common/DefineTest.pm +++ b/test/lib/pgBackRestTest/Common/DefineTest.pm @@ -58,11 +58,6 @@ use constant TESTDEF_COVERAGE_PARTIAL => false; ################################################################################################################################ # Code modules ################################################################################################################################ -use constant TESTDEF_MODULE_FILE => 'File'; - push @EXPORT, qw(TESTDEF_MODULE_FILE); -use constant TESTDEF_MODULE_FILE_COMMON => TESTDEF_MODULE_FILE . 'Common'; - push @EXPORT, qw(TESTDEF_MODULE_FILE_COMMON); - use constant TESTDEF_MODULE_ARCHIVE => 'Archive'; push @EXPORT, qw(TESTDEF_MODULE_ARCHIVE); use constant TESTDEF_MODULE_ARCHIVE_COMMON => TESTDEF_MODULE_ARCHIVE . '/ArchiveCommon'; @@ -108,7 +103,34 @@ my $oTestDef = &TESTDEF_COVERAGE => { - &TESTDEF_MODULE_COMMON_INI => TESTDEF_COVERAGE_FULL, + &TESTDEF_MODULE_COMMON_INI => TESTDEF_COVERAGE_PARTIAL, + }, + }, + { + &TESTDEF_NAME => 'io-handle', + &TESTDEF_TOTAL => 7, + + &TESTDEF_COVERAGE => + { + 'Common/Io/Handle' => TESTDEF_COVERAGE_FULL, + }, + }, + { + &TESTDEF_NAME => 'io-buffered', + &TESTDEF_TOTAL => 3, + + &TESTDEF_COVERAGE => + { + 'Common/Io/Buffered' => TESTDEF_COVERAGE_FULL, + }, + }, + { + &TESTDEF_NAME => 'io-process', + &TESTDEF_TOTAL => 2, + + &TESTDEF_COVERAGE => + { + 'Common/Io/Process' => TESTDEF_COVERAGE_PARTIAL, }, }, ] @@ -148,75 +170,78 @@ my $oTestDef = } ] }, - # File tests + # Storage tests { - &TESTDEF_NAME => 'file', + &TESTDEF_NAME => 'storage', &TESTDEF_CONTAINER => true, - &TESTDEF_COVERAGE => - { - &TESTDEF_MODULE_FILE => TESTDEF_COVERAGE_PARTIAL, - &TESTDEF_MODULE_FILE_COMMON => TESTDEF_COVERAGE_PARTIAL, - }, - &TESTDEF_TEST => [ { - &TESTDEF_NAME => 'unit', - &TESTDEF_TOTAL => 1, + &TESTDEF_NAME => 'filter-gzip', + &TESTDEF_TOTAL => 3, + + &TESTDEF_COVERAGE => + { + 'Storage/Filter/Gzip' => TESTDEF_COVERAGE_PARTIAL, + }, }, { - &TESTDEF_NAME => 'owner', - &TESTDEF_TOTAL => 8, - }, - { - &TESTDEF_NAME => 'path-create', - &TESTDEF_TOTAL => 8, - }, - { - &TESTDEF_NAME => 'move', - &TESTDEF_TOTAL => 24, - }, - { - &TESTDEF_NAME => 'compress', - &TESTDEF_TOTAL => 4, - }, - { - &TESTDEF_NAME => 'wait', + &TESTDEF_NAME => 'filter-sha', &TESTDEF_TOTAL => 2, + + &TESTDEF_COVERAGE => + { + 'Storage/Filter/Sha' => TESTDEF_COVERAGE_FULL, + }, }, { - &TESTDEF_NAME => 'link', + &TESTDEF_NAME => 'posix', + &TESTDEF_TOTAL => 9, + + &TESTDEF_COVERAGE => + { + 'Storage/Posix/Driver' => TESTDEF_COVERAGE_PARTIAL, + 'Storage/Posix/FileRead' => TESTDEF_COVERAGE_PARTIAL, + 'Storage/Posix/FileWrite' => TESTDEF_COVERAGE_PARTIAL, + }, + }, + { + &TESTDEF_NAME => 'local', + &TESTDEF_TOTAL => 9, + + &TESTDEF_COVERAGE => + { + 'Storage/Local' => TESTDEF_COVERAGE_PARTIAL, + }, + }, + { + &TESTDEF_NAME => 'helper', + &TESTDEF_TOTAL => 4, + + &TESTDEF_COVERAGE => + { + 'Storage/Helper' => TESTDEF_COVERAGE_PARTIAL, + }, + }, + ] + }, + # Protocol tests + { + &TESTDEF_NAME => 'protocol', + &TESTDEF_CONTAINER => true, + + &TESTDEF_TEST => + [ + { + &TESTDEF_NAME => 'common-minion', &TESTDEF_TOTAL => 1, + + &TESTDEF_COVERAGE => + { + 'Protocol/Base/Minion' => TESTDEF_COVERAGE_PARTIAL, + }, }, - { - &TESTDEF_NAME => 'stat', - &TESTDEF_TOTAL => 1, - }, - { - &TESTDEF_NAME => 'manifest', - &TESTDEF_TOTAL => 5, - }, - { - &TESTDEF_NAME => 'list', - &TESTDEF_TOTAL => 72, - }, - { - &TESTDEF_NAME => 'remove', - &TESTDEF_TOTAL => 32, - }, - { - &TESTDEF_NAME => 'hash', - &TESTDEF_TOTAL => 16, - }, - { - &TESTDEF_NAME => 'exists', - &TESTDEF_TOTAL => 6, - }, - { - &TESTDEF_NAME => 'copy', - &TESTDEF_TOTAL => 144, - } ] }, # Info tests @@ -237,34 +262,6 @@ my $oTestDef = }, ] }, - # Stanza tests - { - &TESTDEF_NAME => 'stanza', - - &TESTDEF_COVERAGE => - { - &TESTDEF_MODULE_STANZA => TESTDEF_COVERAGE_PARTIAL, - }, - - &TESTDEF_TEST => - [ - { - &TESTDEF_NAME => 'unit', - &TESTDEF_TOTAL => 2, - &TESTDEF_CONTAINER => true, - }, - { - &TESTDEF_NAME => 'create', - &TESTDEF_TOTAL => 2, - &TESTDEF_EXPECT => true, - }, - { - &TESTDEF_NAME => 'upgrade', - &TESTDEF_TOTAL => 2, - &TESTDEF_EXPECT => true, - }, - ] - }, # Archive tests { &TESTDEF_NAME => 'archive', @@ -355,6 +352,36 @@ my $oTestDef = }, ] }, + # Stanza tests + { + &TESTDEF_NAME => 'stanza', + + &TESTDEF_TEST => + [ + { + &TESTDEF_NAME => 'unit', + &TESTDEF_TOTAL => 7, + &TESTDEF_CONTAINER => true, + + &TESTDEF_COVERAGE => + { + &TESTDEF_MODULE_STANZA => TESTDEF_COVERAGE_FULL, + }, + }, + { + &TESTDEF_NAME => 'create', + &TESTDEF_TOTAL => 2, + &TESTDEF_EXPECT => true, + &TESTDEF_INDIVIDUAL => true, + }, + { + &TESTDEF_NAME => 'upgrade', + &TESTDEF_TOTAL => 2, + &TESTDEF_EXPECT => true, + &TESTDEF_INDIVIDUAL => true, + }, + ] + }, # Full tests { &TESTDEF_NAME => 'full', @@ -473,7 +500,6 @@ sub testDefModule push @EXPORT, qw(testDefModule); - #################################################################################################################################### # testDefModuleTestList #################################################################################################################################### diff --git a/test/lib/pgBackRestTest/Common/ExecuteTest.pm b/test/lib/pgBackRestTest/Common/ExecuteTest.pm index a777d43d8..b23543a67 100644 --- a/test/lib/pgBackRestTest/Common/ExecuteTest.pm +++ b/test/lib/pgBackRestTest/Common/ExecuteTest.pm @@ -17,9 +17,10 @@ use IPC::Open3; use POSIX ':sys_wait_h'; use Symbol 'gensym'; +use pgBackRest::Common::Io::Handle; +use pgBackRest::Common::Io::Buffered; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; -use pgBackRest::Protocol::Common::Io::Process; #################################################################################################################################### # new @@ -99,7 +100,7 @@ sub begin $self->{pId} = open3(undef, $self->{hOut}, $self->{hError}, $self->{strCommand}); # Create select objects - $self->{oIO} = new pgBackRest::Protocol::Common::Io::Process($self->{hOut}, undef, $self->{hError}, undef, undef, 30, 65536); + $self->{oIo} = new pgBackRest::Common::Io::Buffered(new pgBackRest::Common::Io::Handle('exec test', $self->{hOut}), 120, 65536); if (!defined($self->{hError})) { @@ -135,16 +136,8 @@ sub endRetry { my $bFound = false; - # # Drain the stderr stream - # ??? This is a good idea but can only be done when the IO object has separate buffers for stdin and stderr - # while (my $strLine = $self->{oIO}->lineRead(0, false, false)) - # { - # $bFound = true; - # $self->{strErrorLog} .= "$strLine\n"; - # } - # Drain the stdout stream and look for test points - while (defined(my $strLine = $self->{oIO}->lineRead(0, true, false))) + while (defined(my $strLine = $self->{oIo}->readLine(true))) { $self->{strOutLog} .= "${strLine}\n"; $bFound = true; @@ -176,7 +169,7 @@ sub endRetry my $iExitStatus = ${^CHILD_ERROR_NATIVE} >> 8; # Drain the stdout stream - while (defined(my $strLine = $self->{oIO}->lineRead(0, true, false))) + while (defined(my $strLine = $self->{oIo}->readLine(true))) { $self->{strOutLog} .= "${strLine}\n"; @@ -187,7 +180,9 @@ sub endRetry } # Drain the stderr stream - while (defined(my $strLine = $self->{oIO}->lineRead(0, false, false))) + my $oIoError = new pgBackRest::Common::Io::Buffered(new pgBackRest::Common::Io::Handle('exec test', $self->{hError}), 0, 65536); + + while (defined(my $strLine = $oIoError->readLine(true, false))) { $self->{strErrorLog} .= "${strLine}\n"; } @@ -236,7 +231,7 @@ sub endRetry if ($self->{strErrorLog} ne '' && !$self->{bSuppressStdErr} && !$self->{bSuppressError}) { - confess &log(ERROR, "output found on STDERR:\n$self->{strErrorLog}"); + confess &log(ERROR, "STDOUT:\n$self->{strOutLog}\n\noutput found on STDERR:\n$self->{strErrorLog}"); } if ($self->{bShowOutput}) diff --git a/test/lib/pgBackRestTest/Common/FileTest.pm b/test/lib/pgBackRestTest/Common/FileTest.pm index bd9f70df4..57d18a070 100644 --- a/test/lib/pgBackRestTest/Common/FileTest.pm +++ b/test/lib/pgBackRestTest/Common/FileTest.pm @@ -26,8 +26,8 @@ use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; use pgBackRest::Manifest; +use pgBackRest::Storage::Local; use pgBackRestTest::Common::ExecuteTest; use pgBackRestTest::Common::LogTest; @@ -81,55 +81,10 @@ sub testPathRemove my $bSuppressError = shift; executeTest('sudo rm -rf ' . $strPath, {bSuppressError => $bSuppressError}); - - # remove_tree($strPath, {result => \my $oError}); - # - # if (@$oError) - # { - # my $strMessage = "error(s) occurred while removing ${strPath}:"; - # - # for my $strFile (@$oError) - # { - # $strMessage .= "\nunable to remove: " . $strFile; - # } - # - # confess $strMessage; - # } } push(@EXPORT, qw(testPathRemove)); -#################################################################################################################################### -# testPathCopy -# -# Copy a path. -#################################################################################################################################### -sub testPathCopy -{ - my $strSourcePath = shift; - my $strDestinationPath = shift; - my $bSuppressError = shift; - - executeTest("cp -RpP ${strSourcePath} ${strDestinationPath}", {bSuppressError => $bSuppressError}); -} - -#################################################################################################################################### -# testPathMove -# -# Copy a path. -#################################################################################################################################### -sub testPathMove -{ - my $strSourcePath = shift; - my $strDestinationPath = shift; - my $bSuppressError = shift; - - testPathCopy($strSourcePath, $strDestinationPath, $bSuppressError); - testPathRemove($strSourcePath, $bSuppressError); -} - -push(@EXPORT, qw(testPathMove)); - #################################################################################################################################### # testFileCreate # @@ -182,4 +137,124 @@ sub testFileRemove push(@EXPORT, qw(testFileRemove)); +#################################################################################################################################### +# forceStorageMode - force mode on a file or path +#################################################################################################################################### +sub forceStorageMode +{ + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $oStorage, + $strPathExp, + $strMode, + $bRecurse + ) = + logDebugParam + ( + __PACKAGE__ . '::forceStorageMode', \@_, + {name => 'oStorage'}, + {name => 'strPathExp'}, + {name => 'strMode'}, + {name => 'bRecurse', optional => true, default => false}, + ); + + executeTest('sudo chmod ' . ($bRecurse ? '-R ' : '') . "${strMode} " . $oStorage->pathGet($strPathExp)); + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +push(@EXPORT, qw(forceStorageMode)); + +#################################################################################################################################### +# forceStorageMove - force move a directory or file +#################################################################################################################################### +sub forceStorageMove +{ + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $oStorage, + $strSourcePathExp, + $strDestinationPathExp, + ) = + logDebugParam + ( + __PACKAGE__ . '->forceStorageMove', \@_, + {name => 'oStorage'}, + {name => 'strSourcePathExp'}, + {name => 'strDestinationPathExp'}, + ); + + executeTest('sudo mv ' . $oStorage->pathGet($strSourcePathExp) . ' ' . $oStorage->pathGet($strDestinationPathExp)); + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +push(@EXPORT, qw(forceStorageMove)); + +#################################################################################################################################### +# forceStorageOwner - force ownership on a file or path +#################################################################################################################################### +sub forceStorageOwner +{ + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $oStorage, + $strPathExp, + $strOwner, + $bRecurse + ) = + logDebugParam + ( + __PACKAGE__ . '::forceStorageOwner', \@_, + {name => 'oStorage'}, + {name => 'strPathExp'}, + {name => 'strOwner'}, + {name => 'bRecurse', optional => true, default => false}, + ); + + executeTest('sudo chown ' . ($bRecurse ? '-R ' : '') . "${strOwner} " . $oStorage->pathGet($strPathExp)); + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +push(@EXPORT, qw(forceStorageOwner)); + +#################################################################################################################################### +# forceStorageRemove - force remove a file or path from storage +#################################################################################################################################### +sub forceStorageRemove +{ + # Assign function parameters, defaults, and log debug info + my + ( + $strOperation, + $oStorage, + $strPathExp, + $bRecurse + ) = + logDebugParam + ( + __PACKAGE__ . '->forceStorageRemove', \@_, + {name => 'oStorage'}, + {name => 'strPathExp'}, + {name => 'bRecurse', optional => true, default => false}, + ); + + executeTest('sudo rm -f' . ($bRecurse ? 'r ' : ' ') . $oStorage->pathGet($strPathExp)); + + # Return from function and log return values if any + return logDebugReturn($strOperation); +} + +push(@EXPORT, qw(forceStorageRemove)); + 1; diff --git a/test/lib/pgBackRestTest/Common/HostGroupTest.pm b/test/lib/pgBackRestTest/Common/HostGroupTest.pm index c3662446e..109285376 100644 --- a/test/lib/pgBackRestTest/Common/HostGroupTest.pm +++ b/test/lib/pgBackRestTest/Common/HostGroupTest.pm @@ -57,12 +57,14 @@ sub hostAdd my ( $strOperation, - $oHost + $oHost, + $rstryHostName, ) = logDebugParam ( __PACKAGE__ . '->hostAdd', \@_, - {name => 'oHost'} + {name => 'oHost'}, + {name => 'rstryHostName', optional => true}, ); $self->{host}{$oHost->{strName}} = $oHost; @@ -70,6 +72,8 @@ sub hostAdd $oHost->executeSimple("echo \"\" >> /etc/hosts", undef, 'root'); $oHost->executeSimple("echo \"# Test Hosts\" >> /etc/hosts", undef, 'root'); + my $strHostList = $oHost->{strName} . (defined($rstryHostName) ? ' ' . join(' ', @{$rstryHostName}) : ''); + # Iterate hosts to add IP mappings foreach my $strOtherHostName (sort(keys(%{$self->{host}}))) { @@ -78,7 +82,7 @@ sub hostAdd if ($strOtherHostName ne $oHost->{strName}) { # Add this host IP to all hosts - $oOtherHost->executeSimple("echo \"$oHost->{strIP} $oHost->{strName}\" >> /etc/hosts", undef, 'root'); + $oOtherHost->executeSimple("echo \"$oHost->{strIP} ${strHostList}\" >> /etc/hosts", undef, 'root'); # Add all other host IPs to this host $oHost->executeSimple("echo \"$oOtherHost->{strIP} ${strOtherHostName}\" >> /etc/hosts", undef, 'root'); diff --git a/test/lib/pgBackRestTest/Common/HostTest.pm b/test/lib/pgBackRestTest/Common/HostTest.pm index 1348f71fd..2f279848c 100644 --- a/test/lib/pgBackRestTest/Common/HostTest.pm +++ b/test/lib/pgBackRestTest/Common/HostTest.pm @@ -280,4 +280,9 @@ sub userGet return $self->{strUser}; } +#################################################################################################################################### +# Getters +#################################################################################################################################### +sub container {shift->{strContainer}} + 1; diff --git a/test/lib/pgBackRestTest/Common/JobTest.pm b/test/lib/pgBackRestTest/Common/JobTest.pm index e6a741eb0..24b4d327c 100644 --- a/test/lib/pgBackRestTest/Common/JobTest.pm +++ b/test/lib/pgBackRestTest/Common/JobTest.pm @@ -22,7 +22,6 @@ use pgBackRest::DbVersion; use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Common::String; -use pgBackRest::FileCommon; use pgBackRestTest::Common::ContainerTest; use pgBackRestTest::Common::ExecuteTest; @@ -44,6 +43,7 @@ sub new # Assign function parameters, defaults, and log debug info ( my $strOperation, + $self->{oStorageTest}, $self->{strBackRestBase}, $self->{strTestPath}, $self->{strCoveragePath}, @@ -63,6 +63,7 @@ sub new logDebugParam ( __PACKAGE__ . '->new', \@_, + {name => 'oStorageTest'}, {name => 'strBackRestBase'}, {name => 'strTestPath'}, {name => 'strCoveragePath'}, @@ -139,7 +140,7 @@ sub run if (!$self->{bDryRun} || $self->{bVmOut}) { # Create host test directory - filePathCreate($strHostTestPath, '0770'); + $self->{oStorageTest}->pathCreate($strHostTestPath, {strMode => '0770'}); if ($self->{oTest}->{&TEST_CONTAINER}) { diff --git a/test/lib/pgBackRestTest/Common/LogTest.pm b/test/lib/pgBackRestTest/Common/LogTest.pm index bf70fd60e..1a0cde360 100644 --- a/test/lib/pgBackRestTest/Common/LogTest.pm +++ b/test/lib/pgBackRestTest/Common/LogTest.pm @@ -147,9 +147,7 @@ sub supplementalAdd my $self = shift; my $strFileName = shift; my $strComment = shift; - - open(my $hFile, '<', $strFileName) - or confess &log(ERROR, "unable to open ${strFileName} for appending to test log"); + my $strContent = shift; my $strHeader = "+ supplemental file: " . $self->regExpReplaceAll($strFileName); @@ -160,12 +158,28 @@ sub supplementalAdd $self->{strLog} .= "\n${strHeader}\n" . ('-' x length($strHeader)) . "\n"; - while (my $strLine = readline($hFile)) + if (!defined($strContent)) { - $self->{strLog} .= $self->regExpReplaceAll($strLine); - } + open(my $hFile, '<', $strFileName) + or confess &log(ERROR, "unable to open ${strFileName} for appending to test log"); - close($hFile); + while (my $strLine = readline($hFile)) + { + $self->{strLog} .= $self->regExpReplaceAll($strLine); + } + + close($hFile); + } + else + { + if (defined($strContent) && length($strContent) > 0) + { + foreach my $strLine (split("\n", $strContent)) + { + $self->{strLog} .= $self->regExpReplaceAll($strLine) . "\n"; + } + } + } } #################################################################################################################################### @@ -356,12 +370,15 @@ sub regExpReplaceAll $strLine = $self->regExpReplace($strLine, 'CONTAINER-EXEC', '^docker exec -u [a-z]*', '^docker exec -u [a-z]*', false); $strLine = $self->regExpReplace($strLine, 'PROCESS-ID', 'sent term signal to process [0-9]+', '[0-9]+$', false); - $strLine = $self->regExpReplace($strLine, 'YEAR', ' \= backup\.history\/20[0-9]{2}', '20[0-9]{2}$'); + $strLine = $self->regExpReplace($strLine, 'YEAR', 'backup\.history\/20[0-9]{2}', '20[0-9]{2}$'); $strLine = $self->regExpReplace($strLine, 'BACKUP-INCR', '[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}I'); $strLine = $self->regExpReplace($strLine, 'BACKUP-DIFF', '[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D'); $strLine = $self->regExpReplace($strLine, 'BACKUP-FULL', '[0-9]{8}\-[0-9]{6}F'); + $strLine = $self->regExpReplace( + $strLine, 'BACKUP-EXPR', 'strExpression \= \_[0-9]{8}\-[0-9]{6}', '\_[0-9]{8}\-[0-9]{6}$', false); + $strLine = $self->regExpReplace($strLine, 'GROUP', 'strGroup = [^ \n,\[\]]+', '[^ \n,\[\]]+$'); $strLine = $self->regExpReplace($strLine, 'GROUP', 'group"[ ]{0,1}:[ ]{0,1}"[^"]+', '[^"]+$'); $strLine = $self->regExpReplace($strLine, 'GROUP', 'group=\"[^"]+', '[^"]+$'); @@ -394,10 +411,10 @@ sub regExpReplaceAll $strLine = $self->regExpReplace($strLine, 'VERSION', "version[\"]{0,1}[ ]{0,1}[\:\=)]{1}[ ]{0,1}[\"]{0,1}" . BACKREST_VERSION, BACKREST_VERSION . '$'); - $strLine = $self->regExpReplace($strLine, 'TIMESTAMP', 'timestamp"[ ]{0,1}:[ ]{0,1}[0-9]+','[0-9]{10}$'); + $strLine = $self->regExpReplace($strLine, 'TIMESTAMP', 'timestamp"[ ]{0,1}:[ ]{0,1}[0-9]{10}','[0-9]{10}$'); $strLine = $self->regExpReplace($strLine, 'TIMESTAMP', - "timestamp-[a-z-]+[\"]{0,1}[ ]{0,1}[\:\=)]{1}[ ]{0,1}[\"]{0,1}[0-9]+", '[0-9]{10}$', false); + "timestamp-[a-z-]+[\"]{0,1}[ ]{0,1}[\:\=)]{1}[ ]{0,1}[\"]{0,1}[0-9]{10}", '[0-9]{10}$', false); $strLine = $self->regExpReplace($strLine, 'TIMESTAMP', "start\" : [0-9]{10}", '[0-9]{10}$', false); $strLine = $self->regExpReplace($strLine, 'TIMESTAMP', "stop\" : [0-9]{10}", '[0-9]{10}$', false); $strLine = $self->regExpReplace($strLine, 'TIMESTAMP', TEST_GROUP . '\, [0-9]{10}', '[0-9]{10}$', false); diff --git a/test/lib/pgBackRestTest/Common/RunTest.pm b/test/lib/pgBackRestTest/Common/RunTest.pm index a64f67d46..29aca42c6 100644 --- a/test/lib/pgBackRestTest/Common/RunTest.pm +++ b/test/lib/pgBackRestTest/Common/RunTest.pm @@ -19,6 +19,9 @@ use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Common::Wait; +use pgBackRest::Config::Config; +use pgBackRest::Storage::Posix::Driver; +use pgBackRest::Storage::Local; use pgBackRestTest::Common::DefineTest; use pgBackRestTest::Common::ExecuteTest; @@ -36,6 +39,7 @@ use constant BOGUS => 'bogus'; # affecting the next run. Of course multiple subtests can be executed in a single run. #################################################################################################################################### my $oTestRun; +my $oStorage; #################################################################################################################################### # new @@ -150,6 +154,9 @@ sub process # Init will only be run on first test, clean/init on subsequent tests $self->{bFirstTest} = true; + # Initialize test storage + $oStorage = new pgBackRest::Storage::Local($self->testPath(), new pgBackRest::Storage::Posix::Driver()); + # Init, run, and end the test(s) $self->initModule(); $self->run(); @@ -312,11 +319,13 @@ sub testResult # Clear the cache for this test logFileCacheClear(); + my @stryResult; + do { eval { - my @stryResult = ref($fnSub) eq 'CODE' ? $fnSub->() : $fnSub; + @stryResult = ref($fnSub) eq 'CODE' ? $fnSub->() : $fnSub; if (@stryResult <= 1) { @@ -377,7 +386,11 @@ sub testResult } # Return from function and log return values if any - return logDebugReturn($strOperation); + return logDebugReturn + ( + $strOperation, + {name => 'result', value => \@stryResult, trace => true} + ); } #################################################################################################################################### @@ -391,11 +404,12 @@ sub testException my $strMessageExpected = shift; # Output first line of the error message - my @stryErrorMessage = split('\n', $strMessageExpected); - &log(INFO, " [${iCodeExpected}] " . $stryErrorMessage[0]); + &log(INFO, + " [${iCodeExpected}] " . (defined($strMessageExpected) ? (split('\n', $strMessageExpected))[0] : 'undef error message')); my $bError = false; - my $strError = "exception ${iCodeExpected}, \"${strMessageExpected}\" was expected"; + my $strError = + "exception ${iCodeExpected}, " . (defined($strMessageExpected) ? "'${strMessageExpected}'" : '[UNDEF]') . " was expected"; eval { @@ -414,9 +428,14 @@ sub testException } if (!($EVAL_ERROR->code() == $iCodeExpected && - ($EVAL_ERROR->message() eq $strMessageExpected || $EVAL_ERROR->message() =~ $strMessageExpected))) + (!defined($strMessageExpected) && !defined($EVAL_ERROR->message()) || + (defined($strMessageExpected) && defined($EVAL_ERROR->message()) && + ($EVAL_ERROR->message() eq $strMessageExpected || $EVAL_ERROR->message() =~ "^${strMessageExpected}" || + $EVAL_ERROR->message() =~ "^${strMessageExpected} at "))))) { - confess "${strError} but actual was " . $EVAL_ERROR->code() . ", \"" . $EVAL_ERROR->message() . "\""; + confess + "${strError} but actual was " . $EVAL_ERROR->code() . ', ' . + (defined($EVAL_ERROR->message()) ? qw{'} . $EVAL_ERROR->message() . qw{'} : '[UNDEF]'); } $bError = true; @@ -547,6 +566,14 @@ sub testRunExe push(@EXPORT, qw(testRunExe)); #################################################################################################################################### +# storageTest - get the storage for the current test +#################################################################################################################################### +sub storageTest +{ + return $oStorage; +} + +push(@EXPORT, qw(storageTest)); #################################################################################################################################### # Getters diff --git a/test/lib/pgBackRestTest/Common/VmTest.pm b/test/lib/pgBackRestTest/Common/VmTest.pm index 625a97c83..d7974c4a1 100644 --- a/test/lib/pgBackRestTest/Common/VmTest.pm +++ b/test/lib/pgBackRestTest/Common/VmTest.pm @@ -126,7 +126,7 @@ my $oyVm = &VM_OS_BASE => VM_OS_BASE_RHEL, &VM_OS => VM_OS_CENTOS, &VM_IMAGE => 'centos:7', - &VM_CONTROL_MASTER => true, + &VM_CONTROL_MASTER => false, &VMDEF_PGSQL_BIN => '/usr/pgsql-{[version]}/bin', &VMDEF_PERL_ARCH_PATH => '/usr/local/lib64/perl5', @@ -152,7 +152,7 @@ my $oyVm = &VM_OS => VM_OS_DEBIAN, &VM_OS_REPO => 'jessie', &VM_IMAGE => 'debian:8', - &VM_CONTROL_MASTER => true, + &VM_CONTROL_MASTER => false, &VMDEF_PGSQL_BIN => '/usr/lib/postgresql/{[version]}/bin', &VMDEF_PERL_ARCH_PATH => '/usr/local/lib/x86_64-linux-gnu/perl/5.20.2', @@ -182,6 +182,7 @@ my $oyVm = &VM_OS => VM_OS_UBUNTU, &VM_OS_REPO => 'precise', &VM_IMAGE => 'ubuntu:12.04', + &VM_CONTROL_MASTER => false, &VMDEF_PGSQL_BIN => '/usr/lib/postgresql/{[version]}/bin', &VMDEF_PERL_ARCH_PATH => '/usr/local/lib/perl/5.14.2', @@ -211,7 +212,7 @@ my $oyVm = &VM_OS => VM_OS_UBUNTU, &VM_OS_REPO => 'trusty', &VM_IMAGE => 'ubuntu:14.04', - &VM_CONTROL_MASTER => true, + &VM_CONTROL_MASTER => false, &VMDEF_PGSQL_BIN => '/usr/lib/postgresql/{[version]}/bin', &VMDEF_PERL_ARCH_PATH => '/usr/local/lib/perl/5.18.2', @@ -244,7 +245,7 @@ my $oyVm = &VM_OS => VM_OS_UBUNTU, &VM_OS_REPO => 'xenial', &VM_IMAGE => 'ubuntu:16.04', - &VM_CONTROL_MASTER => true, + &VM_CONTROL_MASTER => false, &VMDEF_PGSQL_BIN => '/usr/lib/postgresql/{[version]}/bin', &VMDEF_PERL_ARCH_PATH => '/usr/local/lib/x86_64-linux-gnu/perl/5.22.1', diff --git a/test/lib/pgBackRestTest/Env/ExpireEnvTest.pm b/test/lib/pgBackRestTest/Env/ExpireEnvTest.pm index a77577960..df981e217 100644 --- a/test/lib/pgBackRestTest/Env/ExpireEnvTest.pm +++ b/test/lib/pgBackRestTest/Env/ExpireEnvTest.pm @@ -11,6 +11,8 @@ use strict; use warnings FATAL => qw(all); use Carp qw(confess); +use File::Basename qw(basename); + use pgBackRest::Archive::ArchiveInfo; use pgBackRest::Backup::Common; use pgBackRest::Backup::Info; @@ -18,16 +20,17 @@ use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Config::Config; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; use pgBackRest::Stanza; +use pgBackRest::Storage::Helper; use pgBackRest::Version; use pgBackRestTest::Env::HostEnvTest; use pgBackRestTest::Env::Host::HostBaseTest; use pgBackRestTest::Common::ExecuteTest; use pgBackRestTest::Common::FileTest; +use pgBackRestTest::Common::RunTest; #################################################################################################################################### # new @@ -45,7 +48,7 @@ sub new my $strOperation, $self->{oHostBackup}, $self->{strBackRestExe}, - $self->{oFile}, + $self->{oStorageRepo}, $self->{oLogTest}, $self->{oRunTest}, ) = @@ -54,7 +57,7 @@ sub new __PACKAGE__ . '->new', \@_, {name => 'oHostBackup', required => false, trace => true}, {name => 'strBackRestExe', trace => true}, - {name => 'oFile', trace => true}, + {name => 'oStorageRepo', trace => true}, {name => 'oLogTest', required => false, trace => true}, {name => 'oRunTest', required => false, trace => true}, ); @@ -107,8 +110,8 @@ sub stanzaSet $$oStanza{iCatalogVersion} = $oStanzaCreate->{oDb}{iCatalogVersion}; $$oStanza{iControlVersion} = $oStanzaCreate->{oDb}{iControlVersion}; - my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($self->{oFile}->pathGet(PATH_BACKUP_ARCHIVE)); - my $oBackupInfo = new pgBackRest::Backup::Info($self->{oFile}->pathGet(PATH_BACKUP_CLUSTER)); + my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($self->{oStorageRepo}->pathGet(STORAGE_REPO_ARCHIVE)); + my $oBackupInfo = new pgBackRest::Backup::Info($self->{oStorageRepo}->pathGet(STORAGE_REPO_BACKUP)); if ($bStanzaUpgrade) { @@ -122,9 +125,9 @@ sub stanzaSet } # Get the archive and directory paths for the stanza - $$oStanza{strArchiveClusterPath} = $self->{oFile}->pathGet(PATH_BACKUP_ARCHIVE) . '/' . ($oArchiveInfo->archiveId()); - $$oStanza{strBackupClusterPath} = $self->{oFile}->pathGet(PATH_BACKUP_CLUSTER); - filePathCreate($$oStanza{strArchiveClusterPath}, undef, undef, true); + $$oStanza{strArchiveClusterPath} = $self->{oStorageRepo}->pathGet(STORAGE_REPO_ARCHIVE) . '/' . ($oArchiveInfo->archiveId()); + $$oStanza{strBackupClusterPath} = $self->{oStorageRepo}->pathGet(STORAGE_REPO_BACKUP); + storageRepo()->pathCreate($$oStanza{strArchiveClusterPath}, {bCreateParent => true}); $self->{oStanzaHash}{$strStanza} = $oStanza; @@ -159,7 +162,7 @@ sub stanzaCreate my $strDbPath = optionGet(OPTION_DB_PATH); # Create the test path for pg_control - filePathCreate(($strDbPath . '/' . DB_PATH_GLOBAL), undef, true); + storageTest()->pathCreate(($strDbPath . '/' . DB_PATH_GLOBAL), {bIgnoreExists => true}); # Copy pg_control for stanza-create executeTest( @@ -199,7 +202,7 @@ sub stanzaUpgrade $strDbVersionTemp =~ s/\.//; # Remove pg_control - fileRemove(optionGet(OPTION_DB_PATH) . '/' . DB_FILE_PGCONTROL); + storageTest()->remove(optionGet(OPTION_DB_PATH) . '/' . DB_FILE_PGCONTROL); # Copy pg_control for stanza-upgrade executeTest( @@ -257,7 +260,7 @@ sub backupCreate $lTimestamp); my $strBackupClusterSetPath = "$$oStanza{strBackupClusterPath}/${strBackupLabel}"; - filePathCreate($strBackupClusterSetPath); + storageRepo()->pathCreate($strBackupClusterSetPath); &log(INFO, "create backup ${strBackupLabel}"); @@ -296,9 +299,6 @@ sub backupCreate $oManifest->save(); $$oStanza{oManifest} = $oManifest; - # Create the compressed history manifest - $self->{oFile}->compress(PATH_BACKUP_ABSOLUTE, $strManifestFile, false); - # Add the backup to info my $oBackupInfo = new pgBackRest::Backup::Info($$oStanza{strBackupClusterPath}, false); @@ -401,10 +401,10 @@ sub archiveCreate do { my $strPath = "$$oStanza{strArchiveClusterPath}/" . substr($strArchive, 0, 16); - filePathCreate($strPath, undef, true); + storageRepo()->pathCreate($strPath, {bIgnoreExists => true}); my $strFile = "${strPath}/${strArchive}-0000000000000000000000000000000000000000" . ($iArchiveIdx % 2 == 0 ? '.gz' : ''); - testFileCreate($strFile, 'ARCHIVE'); + storageRepo()->put($strFile, 'ARCHIVE'); $iArchiveIdx++; @@ -449,16 +449,42 @@ sub supplementalLog if (defined($self->{oLogTest})) { - $self->{oLogTest}->supplementalAdd($self->{oHostBackup}->repoPath() . - "/backup/${strStanza}/backup.info", $$oStanza{strBackupDescription}); + $self->{oLogTest}->supplementalAdd( + $self->{oHostBackup}->repoPath() . "/backup/${strStanza}/backup.info", $$oStanza{strBackupDescription}, + ${storageRepo->get($self->{oHostBackup}->repoPath() . "/backup/${strStanza}/backup.info")}); - executeTest( - 'ls ' . $self->{oHostBackup}->repoPath() . "/backup/${strStanza} | grep -v \"backup.*\"", - {oLogTest => $self->{oLogTest}}); + # Output backup list + $self->{oLogTest}->logAdd( + 'ls ' . $self->{oHostBackup}->repoPath() . "/backup/${strStanza} | grep -v \"backup.*\"", undef, + join("\n", grep(!/^backup\.info.*$/i, storageRepo()->list("backup/${strStanza}")))); - executeTest( - 'ls -R ' . $self->{oHostBackup}->repoPath() . "/archive/${strStanza} | grep -v \"archive.info\"", - {oLogTest => $self->{oLogTest}}); + # Output archive manifest + my $rhManifest = storageRepo()->manifest(STORAGE_REPO_ARCHIVE); + my $strManifest; + my $strPrefix = ''; + + foreach my $strEntry (sort(keys(%{$rhManifest}))) + { + # Skip files + next if $strEntry eq ARCHIVE_INFO_FILE || $strEntry eq ARCHIVE_INFO_FILE . INI_COPY_EXT; + + if ($rhManifest->{$strEntry}->{type} eq 'd') + { + $strEntry = storageRepo()->pathGet(STORAGE_REPO_ARCHIVE) . ($strEntry eq '.' ? '' : "/${strEntry}"); + + # &log(WARN, "DIR $strEntry"); + $strManifest .= (defined($strManifest) ? "\n" : '') . "${strEntry}:\n"; + $strPrefix = $strEntry; + } + else + { + # &log(WARN, "FILE $strEntry"); + $strManifest .= basename($strEntry) . "\n"; + } + } + + $self->{oLogTest}->logAdd( + 'ls -R ' . $self->{oHostBackup}->repoPath() . "/archive/${strStanza} | grep -v \"archive.info\"", undef, $strManifest); } return logDebugReturn($strOperation); diff --git a/test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm b/test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm index 5c1be8053..7389fff4d 100644 --- a/test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm +++ b/test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm @@ -16,14 +16,16 @@ use Exporter qw(import); use File::Basename qw(dirname); use Storable qw(dclone); +use pgBackRest::Archive::ArchiveInfo; use pgBackRest::Backup::Common; +use pgBackRest::Backup::Info; use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Posix::Driver; use pgBackRest::Version; use pgBackRestTest::Env::Host::HostBaseTest; @@ -85,16 +87,19 @@ sub new my $self = $class->SUPER::new($strName, {strImage => $strImage, strUser => $strUser}); bless $self, $class; - # Set parameters + # Create repo path $self->{strRepoPath} = $self->testRunGet()->testPath() . "/$$oParam{strBackupDestination}/" . HOST_PATH_REPO; if ($$oParam{strBackupDestination} eq $self->nameGet()) { - $self->{strLogPath} = $self->repoPath() . '/' . HOST_PATH_LOG; - $self->{strLockPath} = $self->repoPath() . '/' . HOST_PATH_LOCK; - filePathCreate($self->repoPath(), '0770'); + storageTest()->pathCreate($self->repoPath(), {strMode => '0770'}); } + # Set log/lock paths + $self->{strLogPath} = $self->testPath() . '/' . HOST_PATH_LOG; + $self->{strLockPath} = $self->testPath() . '/' . HOST_PATH_LOCK; + + # Set conf file $self->{strBackRestConfig} = $self->testPath() . '/' . BACKREST_CONF; # Set LogTest object @@ -109,18 +114,6 @@ sub new # Default hardlink to false $self->{bHardLink} = false; - # Create the local file object - $self->{oFile} = new pgBackRest::File( - $self->stanza(), - $self->repoPath(), - new pgBackRest::Protocol::Common::Common - ( - OPTION_DEFAULT_BUFFER_SIZE, # Buffer size - OPTION_DEFAULT_COMPRESS_LEVEL, # Compress level - OPTION_DEFAULT_COMPRESS_LEVEL_NETWORK, # Compress network level - HOST_PROTOCOL_TIMEOUT # Protocol timeout - )); - # Create a placeholder hash for file munging $self->{hInfoFile} = {}; @@ -173,7 +166,7 @@ sub backupBegin (defined($oExpectedManifest) ? " --no-online" : '') . (defined($$oParam{strOptionalParam}) ? " $$oParam{strOptionalParam}" : '') . (defined($$oParam{bStandby}) && $$oParam{bStandby} ? " --backup-standby" : '') . - (defined($oParam->{bRepoLink}) && !$oParam->{bRepoLink} ? ' --no-repo-link' : '') . + (defined($oParam->{strRepoType}) ? " --repo-type=$oParam->{strRepoType}" : '') . ($strType ne 'incr' ? " --type=${strType}" : '') . ' --stanza=' . (defined($oParam->{strStanza}) ? $oParam->{strStanza} : $self->stanza()) . ' backup' . (defined($strTest) ? " --test --test-delay=${fTestDelay} --test-point=" . lc($strTest) . '=y' : ''), @@ -242,84 +235,75 @@ sub backupEnd if (!$self->synthetic()) { $oExpectedManifest = iniParse( - fileStringRead($self->repoPath() . '/backup/' . $self->stanza() . "/${strBackup}/" . FILE_MANIFEST)); + ${storageRepo()->get(storageRepo()->pathGet('backup/' . $self->stanza() . "/${strBackup}/" . FILE_MANIFEST))}); } # Make sure tablespace links are correct - if ($strType eq BACKUP_TYPE_FULL || $self->hardLink()) + if (($strType eq BACKUP_TYPE_FULL || $self->hardLink()) && $self->hasLink()) { - my $hTablespaceManifest = $self->{oFile}->manifest( - PATH_BACKUP_CLUSTER, "${strBackup}/" . MANIFEST_TARGET_PGDATA . '/' . DB_PATH_PGTBLSPC); + my $hTablespaceManifest = storageRepo()->manifest( + STORAGE_REPO_BACKUP . "/${strBackup}/" . MANIFEST_TARGET_PGDATA . '/' . DB_PATH_PGTBLSPC); # Remove . and .. delete($hTablespaceManifest->{'.'}); delete($hTablespaceManifest->{'..'}); - # Only check links if repo links are disabled - if (!defined($oParam->{bRepoLink}) || $oParam->{bRepoLink}) + # Iterate file links + for my $strFile (sort(keys(%{$hTablespaceManifest}))) { - # Iterate file links - for my $strFile (sort(keys(%{$hTablespaceManifest}))) + # Make sure the link is in the expected manifest + my $hManifestTarget = + $oExpectedManifest->{&MANIFEST_SECTION_BACKUP_TARGET}{&MANIFEST_TARGET_PGTBLSPC . "/${strFile}"}; + + if (!defined($hManifestTarget) || $hManifestTarget->{&MANIFEST_SUBKEY_TYPE} ne MANIFEST_VALUE_LINK || + $hManifestTarget->{&MANIFEST_SUBKEY_TABLESPACE_ID} ne $strFile) { - # Make sure the link is in the expected manifest - my $hManifestTarget = - $oExpectedManifest->{&MANIFEST_SECTION_BACKUP_TARGET}{&MANIFEST_TARGET_PGTBLSPC . "/${strFile}"}; - - if (!defined($hManifestTarget) || $hManifestTarget->{&MANIFEST_SUBKEY_TYPE} ne MANIFEST_VALUE_LINK || - $hManifestTarget->{&MANIFEST_SUBKEY_TABLESPACE_ID} ne $strFile) - { - confess &log(ERROR, "'${strFile}' is not in expected manifest as a link with the correct tablespace id"); - } - - # Make sure the link really is a link - if ($hTablespaceManifest->{$strFile}{type} ne 'l') - { - confess &log(ERROR, "'${strFile}' in tablespace directory is not a link"); - } - - # Make sure the link destination is correct - my $strLinkDestination = '../../' . MANIFEST_TARGET_PGTBLSPC . "/${strFile}"; - - if ($hTablespaceManifest->{$strFile}{link_destination} ne $strLinkDestination) - { - confess &log(ERROR, - "'${strFile}' link should reference '${strLinkDestination}' but actually references " . - "'$hTablespaceManifest->{$strFile}{link_destination}'"); - } + confess &log(ERROR, "'${strFile}' is not in expected manifest as a link with the correct tablespace id"); } - # Iterate manifest targets - for my $strTarget (sort(keys(%{$oExpectedManifest->{&MANIFEST_SECTION_BACKUP_TARGET}}))) + # Make sure the link really is a link + if ($hTablespaceManifest->{$strFile}{type} ne 'l') { - my $hManifestTarget = $oExpectedManifest->{&MANIFEST_SECTION_BACKUP_TARGET}{$strTarget}; - my $strTablespaceId = $hManifestTarget->{&MANIFEST_SUBKEY_TABLESPACE_ID}; + confess &log(ERROR, "'${strFile}' in tablespace directory is not a link"); + } - # Make sure the target exists as a link on disk - if ($hManifestTarget->{&MANIFEST_SUBKEY_TYPE} eq MANIFEST_VALUE_LINK && defined($strTablespaceId) && - !defined($hTablespaceManifest->{$strTablespaceId})) - { - confess &log(ERROR, - "target '${strTarget}' does not have a link at '" . DB_PATH_PGTBLSPC. "/${strTablespaceId}'"); - } + # Make sure the link destination is correct + my $strLinkDestination = '../../' . MANIFEST_TARGET_PGTBLSPC . "/${strFile}"; + + if ($hTablespaceManifest->{$strFile}{link_destination} ne $strLinkDestination) + { + confess &log(ERROR, + "'${strFile}' link should reference '${strLinkDestination}' but actually references " . + "'$hTablespaceManifest->{$strFile}{link_destination}'"); } } - # Else make sure the tablespace directory is empty - elsif (keys(%{$hTablespaceManifest}) > 0) + + # Iterate manifest targets + for my $strTarget (sort(keys(%{$oExpectedManifest->{&MANIFEST_SECTION_BACKUP_TARGET}}))) { - confess &log(ERROR, DB_PATH_PGTBLSPC . ' directory should be empty when --no-' . OPTION_REPO_LINK); + my $hManifestTarget = $oExpectedManifest->{&MANIFEST_SECTION_BACKUP_TARGET}{$strTarget}; + my $strTablespaceId = $hManifestTarget->{&MANIFEST_SUBKEY_TABLESPACE_ID}; + + # Make sure the target exists as a link on disk + if ($hManifestTarget->{&MANIFEST_SUBKEY_TYPE} eq MANIFEST_VALUE_LINK && defined($strTablespaceId) && + !defined($hTablespaceManifest->{$strTablespaceId})) + { + confess &log(ERROR, + "target '${strTarget}' does not have a link at '" . DB_PATH_PGTBLSPC. "/${strTablespaceId}'"); + } } } # Else there should not be a tablespace directory at all - elsif ($self->{oFile}->exists(PATH_BACKUP_CLUSTER, "${strBackup}/" . MANIFEST_TARGET_PGDATA . '/' . DB_PATH_PGTBLSPC)) + elsif (storageRepo()->pathExists(STORAGE_REPO_BACKUP . "/${strBackup}/" . MANIFEST_TARGET_PGDATA . '/' . DB_PATH_PGTBLSPC)) { confess &log(ERROR, 'backup must be full or hard-linked to have ' . DB_PATH_PGTBLSPC . ' directory'); } # Check that latest link exists unless repo links are disabled - my $strLatestLink = $self->{oFile}->pathGet(PATH_BACKUP_CLUSTER, LINK_LATEST); - my $bLatestLinkExists = fileExists($strLatestLink); + my $strLatestLink = storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . LINK_LATEST); + my $bLatestLinkExists = storageRepo()->exists($strLatestLink); - if (!defined($oParam->{bRepoLink}) || $oParam->{bRepoLink}) + if ((!defined($oParam->{strRepoType}) || $oParam->{strRepoType} eq REPO_TYPE_POSIX) && $self->hasLink()) { my $strLatestLinkDestination = readlink($strLatestLink); @@ -330,7 +314,7 @@ sub backupEnd } elsif ($bLatestLinkExists) { - confess &log(ERROR, "'" . LINK_LATEST . "' link should not exist when --no-" . OPTION_REPO_LINK); + confess &log(ERROR, "'" . LINK_LATEST . "' link should not exist"); } # Only do compare for synthetic backups since for real backups the expected manifest *is* the actual manifest. @@ -368,8 +352,12 @@ sub backupEnd if ($self->synthetic() && $bManifestCompare) { - $self->{oLogTest}->supplementalAdd($self->{oFile}->pathGet(PATH_BACKUP_CLUSTER, "${strBackup}/" . FILE_MANIFEST)); - $self->{oLogTest}->supplementalAdd($self->repoPath() . '/backup/' . $self->stanza() . '/backup.info'); + $self->{oLogTest}->supplementalAdd( + storageRepo()->pathGet(STORAGE_REPO_BACKUP . "/${strBackup}/" . FILE_MANIFEST), undef, + ${storageRepo->get(STORAGE_REPO_BACKUP . "/${strBackup}/" . FILE_MANIFEST)}); + $self->{oLogTest}->supplementalAdd( + storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO), undef, + ${storageRepo->get(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO)}); } } @@ -441,7 +429,7 @@ sub backupCompare ${$oExpectedManifest}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_LABEL} = $strBackup; my $oActualManifest = new pgBackRest::Manifest( - $self->{oFile}->pathGet(PATH_BACKUP_CLUSTER, "${strBackup}/" . FILE_MANIFEST)); + storageRepo()->pathGet(STORAGE_REPO_BACKUP . "/${strBackup}/" . FILE_MANIFEST)); ${$oExpectedManifest}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TIMESTAMP_START} = $oActualManifest->get(MANIFEST_SECTION_BACKUP, &MANIFEST_KEY_TIMESTAMP_START); @@ -463,7 +451,7 @@ sub backupCompare my $lRepoSize = $oActualManifest->test(MANIFEST_SECTION_TARGET_FILE, $strFileKey, MANIFEST_SUBKEY_REFERENCE) ? $oActualManifest->numericGet(MANIFEST_SECTION_TARGET_FILE, $strFileKey, MANIFEST_SUBKEY_REPO_SIZE, false) : - (fileStat($self->{oFile}->pathGet(PATH_BACKUP_CLUSTER, "${strBackup}/${strFileKey}.gz")))->size; + (storageTest->info(storageRepo()->pathGet(STORAGE_REPO_BACKUP . "/${strBackup}/${strFileKey}.gz")))->size; if (defined($lRepoSize) && $lRepoSize != $oExpectedManifest->{&MANIFEST_SECTION_TARGET_FILE}{$strFileKey}{&MANIFEST_SUBKEY_SIZE}) @@ -495,13 +483,13 @@ sub backupCompare my $strTestPath = $self->testPath(); - fileStringWrite("${strTestPath}/actual.manifest", iniRender($oActualManifest->{oContent})); - fileStringWrite("${strTestPath}/expected.manifest", iniRender($oExpectedManifest)); + storageTest()->put("${strTestPath}/actual.manifest", iniRender($oActualManifest->{oContent})); + storageTest()->put("${strTestPath}/expected.manifest", iniRender($oExpectedManifest)); executeTest("diff ${strTestPath}/expected.manifest ${strTestPath}/actual.manifest"); - fileRemove("${strTestPath}/expected.manifest"); - fileRemove("${strTestPath}/actual.manifest"); + storageTest()->remove("${strTestPath}/expected.manifest"); + storageTest()->remove("${strTestPath}/actual.manifest"); # Return from function and log return values if any return logDebugReturn($strOperation); @@ -587,9 +575,8 @@ sub backupLast { my $self = shift; - my @stryBackup = $self->{oFile}->list( - PATH_BACKUP_CLUSTER, undef, - {strExpression => '[0-9]{8}-[0-9]{6}F(_[0-9]{8}-[0-9]{6}(D|I)){0,1}', strSortOrder => 'reverse'}); + my @stryBackup = storageRepo()->list( + STORAGE_REPO_BACKUP, {strExpression => '[0-9]{8}-[0-9]{6}F(_[0-9]{8}-[0-9]{6}(D|I)){0,1}', strSortOrder => 'reverse'}); if (!defined($stryBackup[0])) { @@ -755,15 +742,19 @@ sub stanzaCreate # If the info file was created, then add it to the expect log if (defined($self->{oLogTest}) && $self->synthetic() && - fileExists($self->repoPath() . '/backup/' . $self->stanza() . '/backup.info')) + storageRepo()->exists('backup/' . $self->stanza() . qw{/} . FILE_BACKUP_INFO)) { - $self->{oLogTest}->supplementalAdd($self->repoPath() . '/backup/' . $self->stanza() . '/backup.info'); + $self->{oLogTest}->supplementalAdd( + storageRepo()->pathGet('backup/' . $self->stanza() . qw{/} . FILE_BACKUP_INFO), undef, + ${storageRepo()->get(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO)}); } if (defined($self->{oLogTest}) && $self->synthetic() && - fileExists($self->repoPath() . '/archive/' . $self->stanza() . '/archive.info')) + storageRepo()->exists('archive/' . $self->stanza() . qw{/} . ARCHIVE_INFO_FILE)) { - $self->{oLogTest}->supplementalAdd($self->repoPath() . '/archive/' . $self->stanza() . '/archive.info'); + $self->{oLogTest}->supplementalAdd( + storageRepo()->pathGet('archive/' . $self->stanza() . qw{/} . ARCHIVE_INFO_FILE), undef, + ${storageRepo()->get(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE)}); } # Return from function and log return values if any @@ -808,15 +799,19 @@ sub stanzaUpgrade # If the info file was created, then add it to the expect log if (defined($self->{oLogTest}) && $self->synthetic() && - fileExists($self->repoPath() . '/backup/' . $self->stanza() . '/backup.info')) + storageRepo()->exists('backup/' . $self->stanza() . qw{/} . FILE_BACKUP_INFO)) { - $self->{oLogTest}->supplementalAdd($self->repoPath() . '/backup/' . $self->stanza() . '/backup.info'); + $self->{oLogTest}->supplementalAdd( + storageRepo()->pathGet('backup/' . $self->stanza() . qw{/} . FILE_BACKUP_INFO), undef, + ${storageRepo()->get(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO)}); } if (defined($self->{oLogTest}) && $self->synthetic() && - fileExists($self->repoPath() . '/archive/' . $self->stanza() . '/archive.info')) + storageRepo()->exists('archive/' . $self->stanza() . qw{/} . ARCHIVE_INFO_FILE)) { - $self->{oLogTest}->supplementalAdd($self->repoPath() . '/archive/' . $self->stanza() . '/archive.info'); + $self->{oLogTest}->supplementalAdd( + storageRepo()->pathGet('archive/' . $self->stanza() . qw{/} . ARCHIVE_INFO_FILE), undef, + ${storageRepo()->get(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE)}); } # Return from function and log return values if any @@ -924,10 +919,12 @@ sub configCreate $oParamHash{&CONFIG_SECTION_GLOBAL}{&OPTION_LOG_LEVEL_FILE} = lc(TRACE); $oParamHash{&CONFIG_SECTION_GLOBAL}{&OPTION_LOG_LEVEL_STDERR} = lc(OFF); - $oParamHash{&CONFIG_SECTION_GLOBAL}{&OPTION_REPO_PATH} = $self->repoPath(); $oParamHash{&CONFIG_SECTION_GLOBAL}{&OPTION_LOG_PATH} = $self->logPath(); $oParamHash{&CONFIG_SECTION_GLOBAL}{&OPTION_LOCK_PATH} = $self->lockPath(); + $oParamHash{&CONFIG_SECTION_GLOBAL}{&OPTION_PROTOCOL_TIMEOUT} = 60; + $oParamHash{&CONFIG_SECTION_GLOBAL}{&OPTION_DB_TIMEOUT} = 45; + if ($self->processMax() > 1) { $oParamHash{&CONFIG_SECTION_GLOBAL}{&OPTION_PROCESS_MAX} = $self->processMax(); @@ -940,6 +937,8 @@ sub configCreate if ($self->isHostBackup()) { + $oParamHash{&CONFIG_SECTION_GLOBAL}{&OPTION_REPO_PATH} = $self->repoPath(); + if (defined($$oParam{bHardlink}) && $$oParam{bHardlink}) { $self->{bHardLink} = true; @@ -1033,7 +1032,7 @@ sub configCreate } # Write out the configuration file - fileStringWrite($self->backrestConfig(), iniRender(\%oParamHash, true)); + storageTest()->put($self->backrestConfig(), iniRender(\%oParamHash, true)); # Modify the file permissions so it can be read/saved by all test users executeTest('sudo chmod 660 ' . $self->backrestConfig()); @@ -1065,7 +1064,7 @@ sub manifestMunge {name => 'bCache', default => true}, ); - $self->infoMunge($self->{oFile}->pathGet(PATH_BACKUP_CLUSTER, "${strBackup}/" . FILE_MANIFEST), $hParam, $bCache); + $self->infoMunge(storageRepo()->pathGet(STORAGE_REPO_BACKUP . "/${strBackup}/" . FILE_MANIFEST), $hParam, $bCache); # Return from function and log return values if any return logDebugReturn($strOperation); @@ -1092,7 +1091,7 @@ sub manifestRestore {name => 'bSave', default => true}, ); - $self->infoRestore($self->{oFile}->pathGet(PATH_BACKUP_CLUSTER, "${strBackup}/" . FILE_MANIFEST), $bSave); + $self->infoRestore(storageRepo()->pathGet(STORAGE_REPO_BACKUP . "/${strBackup}/" . FILE_MANIFEST), $bSave); # Return from function and log return values if any return logDebugReturn($strOperation); @@ -1128,12 +1127,13 @@ sub infoMunge # If the original file content does not exist then load it if (!defined($self->{hInfoFile}{$strFileName})) { - $self->{hInfoFile}{$strFileName} = new pgBackRest::Common::Ini($strFileName); + $self->{hInfoFile}{$strFileName} = new pgBackRest::Common::Ini($strFileName, {oStorage => storageRepo()}); } # Make a copy of the original file contents my $oMungeIni = new pgBackRest::Common::Ini( - $strFileName, {bLoad => false, strContent => iniRender($self->{hInfoFile}{$strFileName}->{oContent})}); + $strFileName, + {bLoad => false, strContent => iniRender($self->{hInfoFile}{$strFileName}->{oContent}), oStorage => storageRepo()}); # Load params foreach my $strSection (keys(%{$hParam})) @@ -1157,15 +1157,15 @@ sub infoMunge } # Modify the file/directory permissions so it can be saved - executeTest("sudo rm -f ${strFileName} && sudo chmod 770 " . dirname($strFileName)); + executeTest("sudo rm -f ${strFileName}* && sudo chmod 770 " . dirname($strFileName)); # Save the munged data to the file $oMungeIni->save(); # Fix permissions - executeTest( - "sudo chmod 640 ${strFileName} && sudo chmod 750 " . dirname($strFileName) . - ' && sudo chown ' . $self->userGet() . " ${strFileName}"); + executeTest( + "sudo chmod 640 ${strFileName}* && sudo chmod 750 " . dirname($strFileName) . + ' && sudo chown ' . $self->userGet() . " ${strFileName}*"); # Clear the cache is requested if (!$bCache) @@ -1207,16 +1207,18 @@ sub infoRestore if ($bSave) { # Modify the file/directory permissions so it can be saved - executeTest("sudo rm -f ${strFileName} && sudo chmod 770 " . dirname($strFileName)); + executeTest("sudo rm -f ${strFileName}* && sudo chmod 770 " . dirname($strFileName)); # Save the munged data to the file $self->{hInfoFile}{$strFileName}->{bModified} = true; $self->{hInfoFile}{$strFileName}->save(); # Fix permissions - executeTest("sudo chmod 640 ${strFileName} && sudo chmod 750 " . dirname($strFileName)); + executeTest( + "sudo chmod 640 ${strFileName} && sudo chmod 750 " . dirname($strFileName) . + ' && sudo chown ' . $self->userGet() . " ${strFileName}*"); + } } - } else { confess &log(ASSERT, "There is no original data cached for $strFileName. infoMunge must be called first."); @@ -1236,6 +1238,7 @@ sub backrestConfig {return shift->{strBackRestConfig}} sub backupDestination {return shift->{strBackupDestination}} sub backrestExe {return testRunGet()->backrestExe()} sub hardLink {return shift->{bHardLink}} +sub hasLink {storageRepo()->driver()->className() eq STORAGE_POSIX_DRIVER} sub isHostBackup {my $self = shift; return $self->backupDestination() eq $self->nameGet()} sub isHostDbMaster {return shift->nameGet() eq HOST_DB_MASTER} sub isHostDbStandby {return shift->nameGet() eq HOST_DB_STANDBY} diff --git a/test/lib/pgBackRestTest/Env/Host/HostBaseTest.pm b/test/lib/pgBackRestTest/Env/Host/HostBaseTest.pm index f06c339d3..665c0f491 100644 --- a/test/lib/pgBackRestTest/Env/Host/HostBaseTest.pm +++ b/test/lib/pgBackRestTest/Env/Host/HostBaseTest.pm @@ -17,7 +17,7 @@ use Exporter qw(import); use File::Basename qw(dirname); use pgBackRest::Common::Log; -use pgBackRest::FileCommon; +use pgBackRest::Protocol::Storage::Helper; use pgBackRest::Version; use pgBackRestTest::Common::ContainerTest; @@ -36,6 +36,8 @@ use constant HOST_DB_STANDBY => 'db-stand push @EXPORT, qw(HOST_DB_STANDBY); use constant HOST_BACKUP => 'backup'; push @EXPORT, qw(HOST_BACKUP); +use constant HOST_S3 => 's3-server'; + push @EXPORT, qw(HOST_S3); #################################################################################################################################### # new @@ -59,7 +61,7 @@ sub new ); my $strTestPath = testRunGet()->testPath() . ($strName eq HOST_BASE ? '' : "/${strName}"); - filePathCreate($strTestPath, '0770'); + storageTest()->pathCreate($strTestPath, {strMode => '0770'}); # Create the host my $strProjectPath = dirname(dirname(abs_path($0))); diff --git a/test/lib/pgBackRestTest/Env/Host/HostDbCommonTest.pm b/test/lib/pgBackRestTest/Env/Host/HostDbCommonTest.pm index a88e920d6..8a1d0d2b1 100644 --- a/test/lib/pgBackRestTest/Env/Host/HostDbCommonTest.pm +++ b/test/lib/pgBackRestTest/Env/Host/HostDbCommonTest.pm @@ -25,15 +25,15 @@ use pgBackRest::Common::String; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; use pgBackRest::Version; use pgBackRestTest::Env::Host::HostBackupTest; use pgBackRestTest::Env::Host::HostBaseTest; use pgBackRestTest::Common::ExecuteTest; use pgBackRestTest::Common::HostGroupTest; +use pgBackRestTest::Common::RunTest; #################################################################################################################################### # Host defaults @@ -84,20 +84,10 @@ sub new $self->{strDbBasePath} = $self->dbPath() . '/' . HOST_PATH_DB_BASE; $self->{strTablespacePath} = $self->dbPath() . '/tablespace'; - filePathCreate($self->dbBasePath(), undef, undef, true); + storageTest()->pathCreate($self->dbBasePath(), {strMode => '0700', bCreateParent => true}); - if ($$oParam{strBackupDestination} ne $self->nameGet()) - { - $self->{strSpoolPath} = $self->testPath() . '/' . HOST_PATH_SPOOL; - $self->{strLogPath} = $self->spoolPath() . '/' . HOST_PATH_LOG; - $self->{strLockPath} = $self->spoolPath() . '/' . HOST_PATH_LOCK; - - filePathCreate($self->spoolPath()); - } - else - { - $self->{strSpoolPath} = $self->repoPath(); - } + $self->{strSpoolPath} = $self->testPath() . '/' . HOST_PATH_SPOOL; + storageTest()->pathCreate($self->spoolPath()); # Initialize linkRemap Hashes $self->{hLinkRemap} = {}; @@ -143,16 +133,10 @@ sub archivePush { $strSourceFile = "${strXlogPath}/" . uc(sprintf('0000000100000001%08x', $iArchiveNo)); - $self->{oFile}->copy( - PATH_DB_ABSOLUTE, $strArchiveTestFile, # Source file - PATH_DB_ABSOLUTE, $strSourceFile, # Destination file - false, # Source is not compressed - false, # Destination is not compressed - undef, undef, undef, # Unused params - true); # Create path if it does not exist + storageTest()->copy($strArchiveTestFile, storageTest()->openWrite($strSourceFile, {bPathCreate => true})); - filePathCreate("${strXlogPath}/archive_status/", undef, true, true); - fileStringWrite("${strXlogPath}/archive_status/" . uc(sprintf('0000000100000001%08x', $iArchiveNo)) . '.ready'); + storageTest()->pathCreate("${strXlogPath}/archive_status/", {bIgnoreExists => true, bCreateParent => true}); + storageTest()->put("${strXlogPath}/archive_status/" . uc(sprintf('0000000100000001%08x', $iArchiveNo)) . '.ready'); } $self->executeSimple( @@ -160,7 +144,7 @@ sub archivePush ' --config=' . $self->backrestConfig() . ' --log-level-console=warn --archive-queue-max=' . int(2 * PG_WAL_SIZE) . ' --stanza=' . $self->stanza() . - (defined($iExpectedError) && $iExpectedError == ERROR_HOST_CONNECT ? ' --backup-host=bogus' : '') . + (defined($iExpectedError) && $iExpectedError == ERROR_FILE_READ ? ' --backup-host=bogus' : '') . ($bAsync ? '' : ' --no-archive-async') . " archive-push" . (defined($strSourceFile) ? " ${strSourceFile}" : ''), {iExpectedExitStatus => $iExpectedError, oLogTest => $self->{oLogTest}, bLogOutput => $self->synthetic()}); @@ -182,7 +166,7 @@ sub configRecovery my $strStanza = $self->stanza(); # Load db config file - my $oConfig = iniParse(fileStringRead($self->backrestConfig()), {bRelaxed => true}); + my $oConfig = iniParse(${storageTest->get($self->backrestConfig())}, {bRelaxed => true}); # Rewrite recovery options my @stryRecoveryOption; @@ -198,7 +182,7 @@ sub configRecovery } # Save db config file - fileStringWrite($self->backrestConfig(), iniRender($oConfig, true)); + storageTest()->put($self->backrestConfig(), iniRender($oConfig, true)); } #################################################################################################################################### @@ -214,7 +198,7 @@ sub configRemap my $strStanza = $self->stanza(); # Load db config file - my $oConfig = iniParse(fileStringRead($self->backrestConfig()), {bRelaxed => true}); + my $oConfig = iniParse(${storageTest()->get($self->backrestConfig())}, {bRelaxed => true}); # Load backup config file my $oRemoteConfig; @@ -224,7 +208,7 @@ sub configRemap if (defined($oHostBackup)) { - $oRemoteConfig = iniParse(fileStringRead($oHostBackup->backrestConfig()), {bRelaxed => true}); + $oRemoteConfig = iniParse(${storageTest()->get($oHostBackup->backrestConfig())}, {bRelaxed => true}); } # Rewrite recovery section @@ -262,7 +246,7 @@ sub configRemap } # Save db config file - fileStringWrite($self->backrestConfig(), iniRender($oConfig, true)); + storageTest()->put($self->backrestConfig(), iniRender($oConfig, true)); # Save backup config file (but not is this is the standby which is not the source of backups) if (defined($oHostBackup)) @@ -271,7 +255,7 @@ sub configRemap executeTest( 'sudo chmod 660 ' . $oHostBackup->backrestConfig() . ' && sudo chmod 770 ' . dirname($oHostBackup->backrestConfig())); - fileStringWrite($oHostBackup->backrestConfig(), iniRender($oRemoteConfig, true)); + storageTest()->put($oHostBackup->backrestConfig(), iniRender($oRemoteConfig, true)); # Fix permissions executeTest( @@ -369,9 +353,10 @@ sub restore { # Load the manifest my $oExpectedManifest = new pgBackRest::Manifest( - $self->{oFile}->pathGet( - PATH_BACKUP_CLUSTER, ($strBackup eq 'latest' ? $oHostBackup->backupLast() : $strBackup) . '/' . FILE_MANIFEST), - true); + storageRepo()->pathGet( + STORAGE_REPO_BACKUP . qw{/} . ($strBackup eq 'latest' ? $oHostBackup->backupLast() : $strBackup) . qw{/} . + FILE_MANIFEST), + true); $oExpectedManifestRef = $oExpectedManifest->{oContent}; @@ -481,17 +466,17 @@ sub restoreCompare { my $oExpectedManifest = new pgBackRest::Manifest( - $self->{oFile}->pathGet( - PATH_BACKUP_CLUSTER, - ($strBackup eq 'latest' ? $oHostBackup->backupLast() : $strBackup) . - '/'. FILE_MANIFEST), true); + storageRepo()->pathGet( + STORAGE_REPO_BACKUP . qw{/} . ($strBackup eq 'latest' ? $oHostBackup->backupLast() : $strBackup) . + '/'. FILE_MANIFEST), + true); $oLastManifest = new pgBackRest::Manifest( - $self->{oFile}->pathGet( - PATH_BACKUP_CLUSTER, - ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_PRIOR} . - '/' . FILE_MANIFEST), true); + storageRepo()->pathGet( + STORAGE_REPO_BACKUP . qw{/} . + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_PRIOR} . qw{/} . FILE_MANIFEST), + true); } # Generate the tablespace map for real backups @@ -553,7 +538,7 @@ sub restoreCompare $$oExpectedManifestRef{&MANIFEST_SECTION_BACKUP_DB}{&MANIFEST_KEY_CATALOG}); $oActualManifest->build( - $self->{oFile}, ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_DB}{&MANIFEST_KEY_DB_VERSION}, $strDbClusterPath, + storageTest(), ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_DB}{&MANIFEST_KEY_DB_VERSION}, $strDbClusterPath, $oLastManifest, false, $oTablespaceMap); my $strSectionPath = $oActualManifest->get(MANIFEST_SECTION_BACKUP_TARGET, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_PATH); @@ -614,13 +599,14 @@ sub restoreCompare if ($oActualManifest->get(MANIFEST_SECTION_TARGET_FILE, $strName, MANIFEST_SUBKEY_SIZE) != 0) { - my $oStat = fileStat($oActualManifest->dbPathGet($strSectionPath, $strName)); + my $oStat = storageTest()->info($oActualManifest->dbPathGet($strSectionPath, $strName)); if ($oStat->blocks > 0 || S_ISLNK($oStat->mode)) { + my ($strHash) = storageTest()->hashSize($oActualManifest->dbPathGet($strSectionPath, $strName)); + $oActualManifest->set( - MANIFEST_SECTION_TARGET_FILE, $strName, MANIFEST_SUBKEY_CHECKSUM, - $self->{oFile}->hash(PATH_DB_ABSOLUTE, $oActualManifest->dbPathGet($strSectionPath, $strName))); + MANIFEST_SECTION_TARGET_FILE, $strName, MANIFEST_SUBKEY_CHECKSUM, $strHash); } else { @@ -723,13 +709,13 @@ sub restoreCompare $self->manifestDefault($oExpectedManifestRef); - fileStringWrite("${strTestPath}/actual.manifest", iniRender($oActualManifest->{oContent})); - fileStringWrite("${strTestPath}/expected.manifest", iniRender($oExpectedManifestRef)); + storageTest()->put("${strTestPath}/actual.manifest", iniRender($oActualManifest->{oContent})); + storageTest()->put("${strTestPath}/expected.manifest", iniRender($oExpectedManifestRef)); executeTest("diff ${strTestPath}/expected.manifest ${strTestPath}/actual.manifest"); - fileRemove("${strTestPath}/expected.manifest"); - fileRemove("${strTestPath}/actual.manifest"); + storageTest()->remove("${strTestPath}/expected.manifest"); + storageTest()->remove("${strTestPath}/actual.manifest"); } #################################################################################################################################### diff --git a/test/lib/pgBackRestTest/Env/Host/HostDbSyntheticTest.pm b/test/lib/pgBackRestTest/Env/Host/HostDbSyntheticTest.pm index 663c1e260..3c54910d8 100644 --- a/test/lib/pgBackRestTest/Env/Host/HostDbSyntheticTest.pm +++ b/test/lib/pgBackRestTest/Env/Host/HostDbSyntheticTest.pm @@ -23,8 +23,8 @@ use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Common::Wait; use pgBackRest::DbVersion; -use pgBackRest::FileCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; use pgBackRest::Version; use pgBackRestTest::Env::Host::HostBackupTest; @@ -222,7 +222,7 @@ sub manifestFileCreate my $strPathFile = $self->dbFileCreate($oManifestRef, $strTarget, $strFile, $strContent, $lTime, $strMode); # Stat the file - my $oStat = fileStat($strPathFile); + my $oStat = storageTest()->info($strPathFile); ${$oManifestRef}{&MANIFEST_SECTION_TARGET_FILE}{$strManifestKey}{&MANIFEST_SUBKEY_GROUP} = getgrgid($oStat->gid); ${$oManifestRef}{&MANIFEST_SECTION_TARGET_FILE}{$strManifestKey}{&MANIFEST_SUBKEY_USER} = getpwuid($oStat->uid); @@ -336,7 +336,7 @@ sub manifestLinkCreate my $strDbFile = $self->dbLinkCreate($oManifestRef, $strPath, $strFile, $strDestination); # Stat the link - my $oStat = fileStat($strDbFile); + my $oStat = storageTest()->info($strDbFile); # Check for errors in stat if (!defined($oStat)) @@ -358,7 +358,7 @@ sub manifestLinkCreate (defined(dirname($strPath)) ? dirname($strPath) : '') . "/${strDestination}"; } - $oStat = fileStat($strDestinationFile); + $oStat = storageTest()->info($strDestinationFile); my $strSection = MANIFEST_SECTION_TARGET_PATH; @@ -367,7 +367,7 @@ sub manifestLinkCreate $strSection = MANIFEST_SECTION_TARGET_FILE; ${$oManifestRef}{$strSection}{$strManifestKey}{&MANIFEST_SUBKEY_SIZE} = $oStat->size; ${$oManifestRef}{$strSection}{$strManifestKey}{&MANIFEST_SUBKEY_TIMESTAMP} = $oStat->mtime; - ${$oManifestRef}{$strSection}{$strManifestKey}{&MANIFEST_SUBKEY_CHECKSUM} = fileHash($strDestinationFile); + (${$oManifestRef}{$strSection}{$strManifestKey}{&MANIFEST_SUBKEY_CHECKSUM}) = storageTest()->hashSize($strDestinationFile); ${$oManifestRef}{$strSection}{$strManifestKey}{&MANIFEST_SUBKEY_MASTER} = defined($bMaster) ? ($bMaster ? JSON::PP::true : JSON::PP::false) : JSON::PP::false; @@ -467,7 +467,7 @@ sub manifestPathCreate my $strManifestKey = $self->manifestKeyGet($oManifestRef, $strPath, $strSubPath); # Create the db path - my $strDbPath = $self->dbPathCreate($oManifestRef, $strPath, $strSubPath, $strMode); + my $strDbPath = $self->dbPathCreate($oManifestRef, $strPath, $strSubPath, defined($strMode) ? $strMode : '0700'); # Stat the file my $oStat = lstat($strDbPath); @@ -554,7 +554,7 @@ sub manifestTablespaceCreate # Load linked path into manifest my $strLinkPath = $self->tablespacePath($iOid); my $strTarget = MANIFEST_TARGET_PGTBLSPC . "/${iOid}"; - my $oStat = fileStat($strLinkPath); + my $oStat = storageTest()->info($strLinkPath); ${$oManifestRef}{&MANIFEST_SECTION_TARGET_PATH}{$strTarget}{&MANIFEST_SUBKEY_GROUP} = getgrgid($oStat->gid); ${$oManifestRef}{&MANIFEST_SECTION_TARGET_PATH}{$strTarget}{&MANIFEST_SUBKEY_USER} = getpwuid($oStat->uid); @@ -576,11 +576,11 @@ sub manifestTablespaceCreate if (!-e $strTablespacePath) { - filePathCreate($strTablespacePath, $strMode); + storageTest()->pathCreate($strTablespacePath, {strMode => defined($strMode) ? $strMode : '0700'}); } # Load tablespace path into manifest - $oStat = fileStat($strTablespacePath); + $oStat = storageTest()->info($strTablespacePath); ${$oManifestRef}{&MANIFEST_SECTION_TARGET_PATH}{&MANIFEST_TARGET_PGTBLSPC} = ${$oManifestRef}{&MANIFEST_SECTION_TARGET_PATH}{&MANIFEST_TARGET_PGDATA}; @@ -597,7 +597,7 @@ sub manifestTablespaceCreate or confess "unable to link ${strLink} to ${strLinkPath}"; # Load link into the manifest - $oStat = fileStat($strLink); + $oStat = storageTest()->info($strLink); my $strLinkTarget = MANIFEST_TARGET_PGDATA . "/${strTarget}"; ${$oManifestRef}{&MANIFEST_SECTION_TARGET_LINK}{$strLinkTarget}{&MANIFEST_SUBKEY_GROUP} = getgrgid($oStat->gid); @@ -677,7 +677,7 @@ sub dbPathCreate # Create the path if (!(-e $strFinalPath)) { - filePathCreate($strFinalPath, $strMode); + storageTest()->pathCreate($strFinalPath, {strMode => $strMode}); } return $strFinalPath; diff --git a/test/lib/pgBackRestTest/Env/Host/HostDbTest.pm b/test/lib/pgBackRestTest/Env/Host/HostDbTest.pm index ec1eff215..91efee6ba 100644 --- a/test/lib/pgBackRestTest/Env/Host/HostDbTest.pm +++ b/test/lib/pgBackRestTest/Env/Host/HostDbTest.pm @@ -21,8 +21,8 @@ use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Common::Wait; use pgBackRest::DbVersion; -use pgBackRest::FileCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; use pgBackRest::Version; use pgBackRestTest::Env::Host::HostBackupTest; @@ -123,7 +123,7 @@ sub new } # Create pg_xlog directory - filePathCreate($self->dbPath() . '/pg_xlog'); + storageTest()->pathCreate($self->dbPath() . '/pg_xlog', {strMode => '0700'}); # Return from function and log return values if any return logDebugReturn @@ -476,13 +476,13 @@ sub clusterStop } # Grep for errors in postgresql.log - if (!$bIgnoreLogError && fileExists($self->pgLogFile())) + if (!$bIgnoreLogError && storageTest()->exists($self->pgLogFile())) { $self->executeSimple('grep ERROR ' . $self->pgLogFile(), {iExpectedExitStatus => 1}); } # Remove the log file - fileRemove($self->pgLogFile(), true); + storageTest()->remove($self->pgLogFile(), {bIgnoreMissing => true}); } #################################################################################################################################### diff --git a/test/lib/pgBackRestTest/Env/HostEnvTest.pm b/test/lib/pgBackRestTest/Env/HostEnvTest.pm index f7dd866de..0745c6983 100644 --- a/test/lib/pgBackRestTest/Env/HostEnvTest.pm +++ b/test/lib/pgBackRestTest/Env/HostEnvTest.pm @@ -13,11 +13,11 @@ use Carp qw(confess); use Exporter qw(import); our @EXPORT = qw(); +use Storable qw(dclone); use pgBackRest::Common::Log; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; +use pgBackRest::Protocol::Storage::Helper; use pgBackRestTest::Env::Host::HostBackupTest; use pgBackRestTest::Env::Host::HostBaseTest; @@ -25,6 +25,7 @@ use pgBackRestTest::Env::Host::HostDbCommonTest; use pgBackRestTest::Env::Host::HostDbTest; use pgBackRestTest::Env::Host::HostDbSyntheticTest; use pgBackRestTest::Common::HostGroupTest; +use pgBackRestTest::Common::RunTest; #################################################################################################################################### # Constants @@ -46,16 +47,6 @@ use constant WAL_VERSION_95 => '95'; use constant WAL_VERSION_95_SYS_ID => 6392579261579036436; push @EXPORT, qw(WAL_VERSION_95_SYS_ID); -#################################################################################################################################### -# initModule -#################################################################################################################################### -sub initModule -{ - # Set file and path modes - pathModeDefaultSet('0700'); - fileModeDefaultSet('0600'); -} - #################################################################################################################################### # setup #################################################################################################################################### @@ -115,21 +106,6 @@ sub setup $oHostGroup->hostAdd($oHostDbStandby); } - # Create the local file object - my $oFile = - new pgBackRest::File - ( - $oHostDbMaster->stanza(), - $oHostDbMaster->repoPath(), - new pgBackRest::Protocol::Common::Common - ( - OPTION_DEFAULT_BUFFER_SIZE, # Buffer size - OPTION_DEFAULT_COMPRESS_LEVEL, # Compress level - OPTION_DEFAULT_COMPRESS_LEVEL_NETWORK, # Compress network level - HOST_PROTOCOL_TIMEOUT # Protocol timeout - ) - ); - # Create db master config $oHostDbMaster->configCreate({ strBackupSource => $$oConfigParam{strBackupSource}, @@ -160,7 +136,14 @@ sub setup bArchiveAsync => $$oConfigParam{bArchiveAsync}}); } - return $oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile; + # Set options needed for storage helper + my $oOption = {}; + $self->optionSetTest($oOption, OPTION_DB_PATH, $oHostDbMaster->dbBasePath()); + $self->optionSetTest($oOption, OPTION_REPO_PATH, $oHostBackup->repoPath()); + $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); + $self->testResult(sub {$self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH)}, '', 'config load'); + + return $oHostDbMaster, $oHostDbStandby, $oHostBackup; } #################################################################################################################################### @@ -171,7 +154,6 @@ sub setup sub archiveGenerate { my $self = shift; - my $oFile = shift; my $strXlogPath = shift; my $iSourceNo = shift; my $iArchiveNo = shift; @@ -184,10 +166,7 @@ sub archiveGenerate my $strSourceFile = "${strXlogPath}/${strArchiveFile}"; - $oFile->copy(PATH_DB_ABSOLUTE, $strArchiveTestFile, # Source file - PATH_DB_ABSOLUTE, $strSourceFile, # Destination file - false, # Source is not compressed - false); # Destination is not compressed + storageTest()->copy($strArchiveTestFile, $strSourceFile); return $strArchiveFile, $strSourceFile; } @@ -215,7 +194,6 @@ sub walSegment sub walGenerate { my $self = shift; - my $oFile = shift; my $strWalPath = shift; my $strPgVersion = shift; my $iSourceNo = shift; @@ -225,12 +203,9 @@ sub walGenerate my $strWalFile = "${strWalPath}/${strWalSegment}" . (defined($bPartial) && $bPartial ? '.partial' : ''); my $strArchiveTestFile = $self->dataPath() . "/backup.wal${iSourceNo}_${strPgVersion}.bin"; - $oFile->copy(PATH_DB_ABSOLUTE, $strArchiveTestFile, # Source file - PATH_DB_ABSOLUTE, $strWalFile, # Destination file - false, # Source is not compressed - false); # Destination is not compressed + storageTest()->copy($strArchiveTestFile, $strWalFile); - fileStringWrite("${strWalPath}/archive_status/${strWalSegment}.ready"); + storageTest()->put("${strWalPath}/archive_status/${strWalSegment}.ready"); return $strWalFile; } @@ -246,8 +221,8 @@ sub walRemove my $strWalPath = shift; my $strWalFile = shift; - fileRemove("$self->{strWalPath}/${strWalFile}"); - fileRemove("$self->{strWalPath}/archive_status/${strWalFile}.ready"); + storageTest()->remove("$self->{strWalPath}/${strWalFile}"); + storageTest()->remove("$self->{strWalPath}/archive_status/${strWalFile}.ready"); } 1; diff --git a/test/lib/pgBackRestTest/Module/Archive/ArchiveGetTest.pm b/test/lib/pgBackRestTest/Module/Archive/ArchiveGetTest.pm index 3c4510c97..1f88e2d43 100644 --- a/test/lib/pgBackRestTest/Module/Archive/ArchiveGetTest.pm +++ b/test/lib/pgBackRestTest/Module/Archive/ArchiveGetTest.pm @@ -21,12 +21,14 @@ use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Base; +use pgBackRest::Storage::Filter::Gzip; use pgBackRestTest::Env::HostEnvTest; use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Common::FileTest; use pgBackRestTest::Common::RunTest; #################################################################################################################################### @@ -49,16 +51,16 @@ sub run # Increment the run, log, and decide whether this unit test should be run if (!$self->begin("rmt ${bRemote}, cmp ${bCompress}, exists ${bExists}")) {next} - # Create hosts, file object, and config - my ($oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile) = $self->setup( + # Create hosts and config + my ($oHostDbMaster, $oHostDbStandby, $oHostBackup) = $self->setup( true, $self->expect(), {bHostBackup => $bRemote, bCompress => $bCompress}); # Create the xlog path my $strXlogPath = $oHostDbMaster->dbBasePath() . '/pg_xlog'; - filePathCreate($strXlogPath, undef, false, true); + storageDb()->pathCreate($strXlogPath, {bCreateParent => true}); # Create the test path for pg_control and copy pg_control for stanza-create - filePathCreate(($oHostDbMaster->dbBasePath() . '/' . DB_PATH_GLOBAL), undef, false, true); + storageDb()->pathCreate($oHostDbMaster->dbBasePath() . '/' . DB_PATH_GLOBAL, {bCreateParent => true}); executeTest( 'cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin ' . $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); @@ -78,7 +80,9 @@ sub run if (defined($self->expect())) { - $self->expect()->supplementalAdd($oFile->pathGet(PATH_BACKUP_ARCHIVE) . '/archive.info'); + $self->expect()->supplementalAdd( + storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE), undef, + ${storageRepo()->get(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE)}); } if ($bExists) @@ -107,20 +111,29 @@ sub run } # Change the directory permissions to enable file creation - executeTest('sudo chmod 770 ' . dirname($oFile->pathGet(PATH_BACKUP_ARCHIVE, PG_VERSION_94 . "-1"))); - filePathCreate( - dirname( - $oFile->pathGet(PATH_BACKUP_ARCHIVE, PG_VERSION_94 . "-1/${strSourceFile}")), '0770', true, true); + forceStorageMode(storageRepo(), STORAGE_REPO_ARCHIVE, '770'); - $oFile->copy( - PATH_DB_ABSOLUTE, $strArchiveTestFile, # Source file $strArchiveTestFile - PATH_BACKUP_ARCHIVE, PG_VERSION_94 . # Destination file - "-1/${strSourceFile}", - false, # Source is not compressed - $bCompress, # Destination compress based on test - undef, undef, # Unused params - '0660', # Mode - true); # Create path if it does not exist + storageRepo()->pathCreate( + STORAGE_REPO_ARCHIVE . qw{/} . PG_VERSION_94 . '-1/' . substr($strArchiveFile, 0, 16), + {strMode => '0770', bIgnoreExists => true, bCreateParent => true}); + + storageTest()->copy( + $strArchiveTestFile, + storageRepo()->openWrite( + STORAGE_REPO_ARCHIVE . qw{/} . PG_VERSION_94 . "-1/${strSourceFile}", + {rhyFilter => $bCompress ? [{strClass => STORAGE_FILTER_GZIP}] : undef, + strMode => '0660', bCreateParent => true})); + + my ($strActualChecksum) = storageRepo()->hashSize( + storageRepo()->openRead( + STORAGE_REPO_ARCHIVE . qw{/} . PG_VERSION_94 . "-1/${strSourceFile}", + {rhyFilter => $bCompress ? + [{strClass => STORAGE_FILTER_GZIP, rxyParam => [{strCompressType => STORAGE_DECOMPRESS}]}] : undef})); + + if ($strActualChecksum ne $strArchiveChecksum) + { + confess "archive file hash '${strActualChecksum}' does not match expected '${strArchiveChecksum}'"; + } my $strDestinationFile = "${strXlogPath}/${strArchiveFile}"; @@ -130,16 +143,18 @@ sub run {oLogTest => $self->expect()}); # Check that the destination file exists - if ($oFile->exists(PATH_DB_ABSOLUTE, $strDestinationFile)) + if (storageDb()->exists($strDestinationFile)) { - if ($oFile->hash(PATH_DB_ABSOLUTE, $strDestinationFile) ne $strArchiveChecksum) + my ($strActualChecksum) = storageDb()->hashSize($strDestinationFile); + + if ($strActualChecksum ne $strArchiveChecksum) { - confess "archive file hash does not match ${strArchiveChecksum}"; + confess "recovered file hash '${strActualChecksum}' does not match expected '${strArchiveChecksum}'"; } } else { - confess 'archive file is not in destination'; + confess "archive file '${strDestinationFile}' is not in destination"; } } } diff --git a/test/lib/pgBackRestTest/Module/Archive/ArchivePushTest.pm b/test/lib/pgBackRestTest/Module/Archive/ArchivePushTest.pm index 03d0bf99d..5d54f2ff0 100644 --- a/test/lib/pgBackRestTest/Module/Archive/ArchivePushTest.pm +++ b/test/lib/pgBackRestTest/Module/Archive/ArchivePushTest.pm @@ -21,9 +21,9 @@ use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; use pgBackRestTest::Env::HostEnvTest; use pgBackRestTest::Common::ExecuteTest; @@ -37,7 +37,6 @@ use pgBackRestTest::Common::RunTest; sub archiveCheck { my $self = shift; - my $oFile = shift; my $strArchiveFile = shift; my $strArchiveChecksum = shift; my $bCompress = shift; @@ -56,18 +55,18 @@ sub archiveCheck do { - $bFound = $oFile->exists(PATH_BACKUP_ARCHIVE, $strArchiveCheck); + $bFound = storageRepo()->exists(STORAGE_REPO_ARCHIVE . "/${strArchiveCheck}"); } while (!$bFound && waitMore($oWait)); if (!$bFound) { - confess 'unable to find ' . $oFile->pathGet(PATH_BACKUP_ARCHIVE, $strArchiveCheck); + confess 'unable to find ' . storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . "/${strArchiveCheck}"); } if (defined($strSpoolPath)) { - fileRemove("${strSpoolPath}/archive/" . $self->stanza() . "/out/${strArchiveFile}.ok"); + storageTest()->remove("${strSpoolPath}/archive/" . $self->stanza() . "/out/${strArchiveFile}.ok"); } } @@ -91,20 +90,20 @@ sub run if (!$self->begin("rmt ${bRemote}, cmp ${bCompress}, arc_async ${bArchiveAsync}", $self->processMax() == 1)) {next} # Create hosts, file object, and config - my ($oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile) = $self->setup( + my ($oHostDbMaster, $oHostDbStandby, $oHostBackup) = $self->setup( true, $self->expect(), {bHostBackup => $bRemote, bCompress => $bCompress, bArchiveAsync => $bArchiveAsync}); # Create the xlog path my $strXlogPath = $oHostDbMaster->dbBasePath() . '/pg_xlog'; - filePathCreate($strXlogPath, undef, false, true); + storageTest()->pathCreate($strXlogPath, {bCreateParent => true}); # Create the test path for pg_control - filePathCreate(($oHostDbMaster->dbBasePath() . '/' . DB_PATH_GLOBAL), undef, false, true); + storageTest()->pathCreate($oHostDbMaster->dbBasePath() . '/' . DB_PATH_GLOBAL, {bCreateParent => true}); # Copy pg_control for stanza-create - executeTest( - 'cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin ' . $oHostDbMaster->dbBasePath() . '/' . - DB_FILE_PGCONTROL); + storageTest()->copy( + $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin', + $oHostDbMaster->dbBasePath() . qw{/} . DB_FILE_PGCONTROL); my $strCommand = $oHostDbMaster->backrestExe() . ' --config=' . $oHostDbMaster->backrestConfig() . @@ -113,12 +112,13 @@ sub run # Test missing archive.info file &log(INFO, ' test archive.info missing'); my $strSourceFile1 = $self->walSegment(1, 1, 1); - filePathCreate("${strXlogPath}/archive_status"); - my $strArchiveFile1 = $self->walGenerate($oFile, $strXlogPath, WAL_VERSION_94, 1, $strSourceFile1); + storageTest()->pathCreate("${strXlogPath}/archive_status"); + my $strArchiveFile1 = $self->walGenerate($strXlogPath, WAL_VERSION_94, 1, $strSourceFile1); $oHostDbMaster->executeSimple($strCommand . " ${strXlogPath}/${strSourceFile1} --archive-max-mb=24", {iExpectedExitStatus => ERROR_FILE_MISSING, oLogTest => $self->expect()}); - fileRemove($oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile1}.error") if $bArchiveAsync; + storageTest()->remove($oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile1}.error") + if $bArchiveAsync; # Create the archive info file $oHostBackup->stanzaCreate('create required data for stanza', @@ -145,13 +145,14 @@ sub run } $strSourceFile = $self->walSegment(1, 1, $iArchiveNo); - $strArchiveFile = $self->walGenerate($oFile, $strXlogPath, WAL_VERSION_94, 2, $strSourceFile); + $strArchiveFile = $self->walGenerate($strXlogPath, WAL_VERSION_94, 2, $strSourceFile); &log(INFO, ' backup ' . sprintf('%02d', $iBackup) . ', archive ' .sprintf('%02x', $iArchive) . " - ${strArchiveFile}"); - my $strArchiveTmp = undef; + # Create a temp file to make sure it is deleted later + my $strArchiveTmp; if ($iBackup == 1 && $iArchive == 2) { @@ -160,11 +161,11 @@ sub run $strArchiveTmp = $oHostBackup->repoPath() . '/archive/' . $self->stanza() . '/' . PG_VERSION_94 . '-1/' . - substr($strSourceFile, 0, 16) . "/${strSourceFile}" . - ($bCompress ? ".$oFile->{strCompressExtension}" : '') . '.pgbackrest.tmp'; + substr($strSourceFile, 0, 16) . "/${strSourceFile}-${strArchiveChecksum}" . ($bCompress ? qw{.} . + COMPRESS_EXT : '') . qw{.} . STORAGE_TEMP_EXT; executeTest('sudo chmod 770 ' . dirname($strArchiveTmp)); - fileStringWrite($strArchiveTmp, 'JUNK'); + storageTest()->put($strArchiveTmp, 'JUNK'); if ($bRemote) { @@ -178,9 +179,9 @@ sub run {oLogTest => $self->expect()}); push( @stryExpectedWAL, "${strSourceFile}-${strArchiveChecksum}" . - ($bCompress ? ".$oFile->{strCompressExtension}" : '')); + ($bCompress ? qw{.} . COMPRESS_EXT : '')); - # Make sure the temp file no longer exists + # Make sure the temp file no longer exists if it was created if (defined($strArchiveTmp)) { my $oWait = waitInit(5); @@ -188,7 +189,7 @@ sub run do { - $bFound = fileExists($strArchiveTmp); + $bFound = storageTest()->exists($strArchiveTmp); } while ($bFound && waitMore($oWait)); @@ -200,34 +201,40 @@ sub run if ($iArchive == $iBackup) { - fileRemove($oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.ok") if $bArchiveAsync; + storageTest()->remove( + $oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.ok") + if $bArchiveAsync; &log(INFO, ' test db version mismatch error'); $oHostBackup->infoMunge( - $oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE), + storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE), {&INFO_ARCHIVE_SECTION_DB => {&INFO_ARCHIVE_KEY_DB_VERSION => '8.0'}}); $oHostDbMaster->executeSimple( $strCommand . " ${strXlogPath}/${strSourceFile}", {iExpectedExitStatus => ERROR_ARCHIVE_MISMATCH, oLogTest => $self->expect()}); - fileRemove($oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.error") if $bArchiveAsync; + storageTest()->remove( + $oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.error") + if $bArchiveAsync; &log(INFO, ' test db system-id mismatch error'); $oHostBackup->infoMunge( - $oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE), - {&INFO_ARCHIVE_SECTION_DB => {&INFO_BACKUP_KEY_SYSTEM_ID => 5000900090001855000}}); + storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE), + {&INFO_ARCHIVE_SECTION_DB => {&INFO_BACKUP_KEY_SYSTEM_ID => 5000900090001855000}}); $oHostDbMaster->executeSimple( $strCommand . " ${strXlogPath}/${strSourceFile}", {iExpectedExitStatus => ERROR_ARCHIVE_MISMATCH, oLogTest => $self->expect()}); - fileRemove($oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.error") if $bArchiveAsync;; + storageTest()->remove( + $oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.error") + if $bArchiveAsync; # Restore the file to its original condition - $oHostBackup->infoRestore($oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE)); + $oHostBackup->infoRestore(storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE)); # Fail because the process was killed if ($iBackup == 1 && !$bCompress) @@ -264,70 +271,75 @@ sub run $oHostDbMaster->executeSimple($strCommand . " ${strXlogPath}/${strSourceFile}", {oLogTest => $self->expect()}); - fileRemove($oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.ok") if $bArchiveAsync; + storageTest()->remove( + $oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.ok") + if $bArchiveAsync; # Now it should break on archive duplication (because checksum is different &log(INFO, " test archive duplicate error"); - $strArchiveFile = $self->walGenerate($oFile, $strXlogPath, WAL_VERSION_94, 1, $strSourceFile); + $strArchiveFile = $self->walGenerate($strXlogPath, WAL_VERSION_94, 1, $strSourceFile); $oHostDbMaster->executeSimple( $strCommand . " ${strXlogPath}/${strSourceFile}", {iExpectedExitStatus => ERROR_ARCHIVE_DUPLICATE, oLogTest => $self->expect()}); - fileRemove($oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.error") if $bArchiveAsync; + storageTest()->remove( + $oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.error") + if $bArchiveAsync; # Test .partial archive &log(INFO, " test .partial archive"); - $strArchiveFile = $self->walGenerate($oFile, $strXlogPath, WAL_VERSION_94, 2, "${strSourceFile}.partial"); + $strArchiveFile = $self->walGenerate($strXlogPath, WAL_VERSION_94, 2, "${strSourceFile}.partial"); $oHostDbMaster->executeSimple( - $strCommand . " --no-" . OPTION_REPO_SYNC . " ${strXlogPath}/${strSourceFile}.partial", + $strCommand . " ${strXlogPath}/${strSourceFile}.partial", {oLogTest => $self->expect()}); - $self->archiveCheck( - $oFile, "${strSourceFile}.partial", $strArchiveChecksum, $bCompress, + $self->archiveCheck("${strSourceFile}.partial", $strArchiveChecksum, $bCompress, $bArchiveAsync ? $oHostDbMaster->spoolPath() : undef); push( @stryExpectedWAL, "${strSourceFile}.partial-${strArchiveChecksum}" . - ($bCompress ? ".$oFile->{strCompressExtension}" : '')); + ($bCompress ? qw{.} . COMPRESS_EXT : '')); # Test .partial archive duplicate &log(INFO, ' test .partial archive duplicate'); $oHostDbMaster->executeSimple( $strCommand . " ${strXlogPath}/${strSourceFile}.partial", {oLogTest => $self->expect()}); $self->archiveCheck( - $oFile, "${strSourceFile}.partial", $strArchiveChecksum, $bCompress, + "${strSourceFile}.partial", $strArchiveChecksum, $bCompress, $bArchiveAsync ? $oHostDbMaster->spoolPath() : undef); # Test .partial archive with different checksum &log(INFO, ' test .partial archive with different checksum'); - $strArchiveFile = $self->walGenerate($oFile, $strXlogPath, WAL_VERSION_94, 1, "${strSourceFile}.partial"); + $strArchiveFile = $self->walGenerate($strXlogPath, WAL_VERSION_94, 1, "${strSourceFile}.partial"); $oHostDbMaster->executeSimple( $strCommand . " ${strXlogPath}/${strSourceFile}.partial", {iExpectedExitStatus => ERROR_ARCHIVE_DUPLICATE, oLogTest => $self->expect()}); - fileRemove($oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.error") if $bArchiveAsync; + storageTest()->remove( + $oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.error") + if $bArchiveAsync; } else { $self->archiveCheck( - $oFile, $strSourceFile, $strArchiveChecksum, $bCompress, - $bArchiveAsync ? $oHostDbMaster->spoolPath() : undef); + $strSourceFile, $strArchiveChecksum, $bCompress, $bArchiveAsync ? $oHostDbMaster->spoolPath() : undef); } } } #--------------------------------------------------------------------------------------------------------------------------- $self->testResult( - sub {$oFile->list(PATH_BACKUP_ARCHIVE, PG_VERSION_94 . '-1/0000000100000001')}, + sub {storageRepo()->list(STORAGE_REPO_ARCHIVE . qw{/} . PG_VERSION_94 . '-1/0000000100000001')}, '(' . join(', ', @stryExpectedWAL) . ')', 'all WAL in archive', {iWaitSeconds => 5}); #--------------------------------------------------------------------------------------------------------------------------- if (defined($self->expect())) { - sleep(1); # Ugly hack to ensure repo is stable before checking files - replace in new tests - $self->expect()->supplementalAdd($oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE)); + $self->expect()->supplementalAdd( + storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE), undef, + ${storageRepo()->get(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE)}); } } } diff --git a/test/lib/pgBackRestTest/Module/Archive/ArchivePushUnitTest.pm b/test/lib/pgBackRestTest/Module/Archive/ArchivePushUnitTest.pm index adc4af2dc..c57f54689 100644 --- a/test/lib/pgBackRestTest/Module/Archive/ArchivePushUnitTest.pm +++ b/test/lib/pgBackRestTest/Module/Archive/ArchivePushUnitTest.pm @@ -20,14 +20,13 @@ use pgBackRest::Archive::ArchivePush; use pgBackRest::Archive::ArchivePushAsync; use pgBackRest::Archive::ArchivePushFile; use pgBackRest::Common::Exception; -use pgBackRest::Common::Lock ; +use pgBackRest::Common::Lock; use pgBackRest::Common::Log; use pgBackRest::Config::Config; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; use pgBackRestTest::Env::HostEnvTest; use pgBackRestTest::Common::ExecuteTest; @@ -48,21 +47,6 @@ sub initModule $self->{strRepoPath} = $self->testPath() . '/repo'; $self->{strArchivePath} = "$self->{strRepoPath}/archive/" . $self->stanza(); $self->{strSpoolPath} = "$self->{strArchivePath}/out"; - - # Create the local file object - $self->{oFile} = - new pgBackRest::File - ( - $self->stanza(), - $self->{strRepoPath}, - new pgBackRest::Protocol::Common::Common - ( - OPTION_DEFAULT_BUFFER_SIZE, # Buffer size - OPTION_DEFAULT_COMPRESS_LEVEL, # Compress level - OPTION_DEFAULT_COMPRESS_LEVEL_NETWORK, # Compress network level - HOST_PROTOCOL_TIMEOUT # Protocol timeout - ) - ); } #################################################################################################################################### @@ -73,21 +57,23 @@ sub initTest my $self = shift; # Create WAL path - filePathCreate($self->{strWalStatusPath}, undef, true, true); + storageTest()->pathCreate($self->{strWalStatusPath}, {bIgnoreExists => true, bCreateParent => true}); # Create archive info - filePathCreate($self->{strArchivePath}, undef, true, true); + storageTest()->pathCreate($self->{strArchivePath}, {bIgnoreExists => true, bCreateParent => true}); - my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($self->{strArchivePath}, false); + my $oOption = $self->initOption(); + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH); logEnable(); + my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($self->{strArchivePath}, false, {bIgnoreMissing => true}); $oArchiveInfo->create(PG_VERSION_94, WAL_VERSION_94_SYS_ID, true); $self->{strArchiveId} = $oArchiveInfo->archiveId(); } #################################################################################################################################### -# run +# initOption #################################################################################################################################### -sub run +sub initOption { my $self = shift; @@ -103,6 +89,18 @@ sub run $self->optionSetTest($oOption, OPTION_PROTOCOL_TIMEOUT, 6); $self->optionSetTest($oOption, OPTION_ARCHIVE_TIMEOUT, 3); + return $oOption; +} + +#################################################################################################################################### +# run +#################################################################################################################################### +sub run +{ + my $self = shift; + + my $oOption = $self->initOption(); + ################################################################################################################################ if ($self->begin("ArchivePushFile::archivePushCheck")) { @@ -112,76 +110,74 @@ sub run my $strWalSegment = '000000010000000100000001'; $self->testResult(sub {archivePushCheck( - $self->{oFile}, $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strWalSegment}")}, + $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strWalSegment}")}, '(9.4-1, [undef], [undef])', "${strWalSegment} WAL not found"); #--------------------------------------------------------------------------------------------------------------------------- my $strWalMajorPath = "$self->{strArchivePath}/9.4-1/" . substr($strWalSegment, 0, 16); my $strWalSegmentHash = "${strWalSegment}-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27"; - $self->walGenerate( - $self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strWalSegment); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strWalSegment); - filePathCreate($strWalMajorPath, undef, false, true); - fileStringWrite("${strWalMajorPath}/${strWalSegmentHash}"); + storageTest()->pathCreate($strWalMajorPath, {bCreateParent => true}); + storageTest()->put("${strWalMajorPath}/${strWalSegmentHash}"); $self->testResult(sub {archivePushCheck( - $self->{oFile}, $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strWalSegment}")}, + $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strWalSegment}")}, '(9.4-1, 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27,' . " WAL segment ${strWalSegment} already exists in the archive with the same checksum\n" . 'HINT: this is valid in some recovery scenarios but may also indicate a problem.)', "${strWalSegment} WAL found"); - fileRemove("${strWalMajorPath}/${strWalSegmentHash}"); + storageTest()->remove("${strWalMajorPath}/${strWalSegmentHash}"); #--------------------------------------------------------------------------------------------------------------------------- $strWalSegmentHash = "${strWalSegment}-10be15a0ab8e1653dfab18c83180e74f1507cab1"; - fileStringWrite("${strWalMajorPath}/${strWalSegmentHash}"); + storageTest()->put("${strWalMajorPath}/${strWalSegmentHash}"); $self->testException(sub {archivePushCheck( - $self->{oFile}, $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strWalSegment}")}, + $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strWalSegment}")}, ERROR_ARCHIVE_DUPLICATE, "WAL segment ${strWalSegment} already exists in the archive"); #--------------------------------------------------------------------------------------------------------------------------- $strWalSegment = "${strWalSegment}.partial"; $strWalSegmentHash = "${strWalSegment}-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27"; - $self->walGenerate( - $self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strWalSegment); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strWalSegment); - fileStringWrite("${strWalMajorPath}/${strWalSegmentHash}"); + storageTest()->put("${strWalMajorPath}/${strWalSegmentHash}"); $self->testResult(sub {archivePushCheck( - $self->{oFile}, $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strWalSegment}")}, + $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strWalSegment}")}, '(9.4-1, 1e34fa1c833090d94b9bb14f2a8d3153dca6ea27,' . " WAL segment ${strWalSegment} already exists in the archive with the same checksum\n" . 'HINT: this is valid in some recovery scenarios but may also indicate a problem.)', "${strWalSegment} WAL found"); - fileRemove("${strWalMajorPath}/${strWalSegmentHash}"); + storageTest()->remove("${strWalMajorPath}/${strWalSegmentHash}"); #--------------------------------------------------------------------------------------------------------------------------- $strWalSegmentHash = "${strWalSegment}-10be15a0ab8e1653dfab18c83180e74f1507cab1"; - fileStringWrite("${strWalMajorPath}/${strWalSegmentHash}"); + storageTest()->put("${strWalMajorPath}/${strWalSegmentHash}"); $self->testException(sub {archivePushCheck( - $self->{oFile}, $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strWalSegment}")}, + $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strWalSegment}")}, ERROR_ARCHIVE_DUPLICATE, "WAL segment ${strWalSegment} already exists in the archive"); #--------------------------------------------------------------------------------------------------------------------------- $self->testException(sub {archivePushCheck( - $self->{oFile}, $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID)}, - ERROR_ASSERT, "strFile is required in File->hash"); + $strWalSegment, PG_VERSION_94, WAL_VERSION_94_SYS_ID)}, + ERROR_ASSERT, "xFileExp is required in Storage::Local->hashSize"); #--------------------------------------------------------------------------------------------------------------------------- my $strHistoryFile = "00000001.history"; - fileStringWrite("$self->{strArchivePath}/9.4-1/${strHistoryFile}"); + storageTest()->put("$self->{strArchivePath}/9.4-1/${strHistoryFile}"); $self->testResult(sub {archivePushCheck( - $self->{oFile}, $strHistoryFile, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strHistoryFile}")}, + $strHistoryFile, PG_VERSION_94, WAL_VERSION_94_SYS_ID, "$self->{strWalPath}/${strHistoryFile}")}, '(9.4-1, [undef], [undef])', "history file ${strHistoryFile} found"); } @@ -196,20 +192,18 @@ sub run $self->optionSetTest($oOption, OPTION_BACKUP_USER, $self->pgUser()); logDisable(); $self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH); logEnable(); - # Create the file object - my $oRemoteFile = new pgBackRest::File( - $self->stanza(), $self->{strRepoPath}, protocolGet(BACKUP, undef, {strBackRestBin => $self->backrestExe()})); + protocolGet(BACKUP, undef, {strBackRestBin => $self->backrestExe()}); # Generate a normal segment my $strSegment = $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++); - $self->walGenerate($self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); $self->testResult( - sub {archivePushFile($oRemoteFile, $self->{strWalPath}, $strSegment, false, false)}, '[undef]', + sub {archivePushFile($self->{strWalPath}, $strSegment, false, false)}, '[undef]', "${strSegment} WAL segment to remote"); $self->testResult( - sub {archivePushFile($oRemoteFile, $self->{strWalPath}, $strSegment, false, false)}, + sub {archivePushFile($self->{strWalPath}, $strSegment, false, false)}, "WAL segment 000000010000000100000001 already exists in the archive with the same checksum\n" . 'HINT: this is valid in some recovery scenarios but may also indicate a problem.', "${strSegment} WAL duplicate segment to remote"); @@ -226,6 +220,8 @@ sub run if ($self->begin("ArchivePush->readyList()")) { my $oPushAsync = new pgBackRest::Archive::ArchivePushAsync($self->{strWalPath}, $self->{strSpoolPath}); + $self->optionBoolSetTest($oOption, OPTION_ARCHIVE_ASYNC, true); + $self->optionSetTest($oOption, OPTION_SPOOL_PATH, $self->{strRepoPath}); logDisable(); $self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH); logEnable(); $oPushAsync->initServer(); @@ -234,35 +230,31 @@ sub run my $iWalMinor = 1; #--------------------------------------------------------------------------------------------------------------------------- - fileStringWrite( - "$self->{strWalStatusPath}/" . $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++) . '.done'); + storageTest()->put("$self->{strWalStatusPath}/" . $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++) . '.done'); $self->testResult( sub {$oPushAsync->readyList()}, '()', 'ignore files without .ready extension'); #--------------------------------------------------------------------------------------------------------------------------- - $self->walGenerate( - $self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++)); - $self->walGenerate( - $self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++)); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++)); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++)); $self->testResult( sub {$oPushAsync->readyList()}, '(000000010000000100000002, 000000010000000100000003)', '.ready files are found'); - fileStringWrite("$self->{strSpoolPath}/000000010000000100000002.ok"); - fileStringWrite("$self->{strSpoolPath}/000000010000000100000003.ok"); + storageTest()->put("$self->{strSpoolPath}/000000010000000100000002.ok"); + storageTest()->put("$self->{strSpoolPath}/000000010000000100000003.ok"); #--------------------------------------------------------------------------------------------------------------------------- - $self->walGenerate( - $self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++)); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++)); $self->testResult( sub {$oPushAsync->readyList()}, '(000000010000000100000004)', 'new .ready files are found and duplicates ignored'); - fileStringWrite("$self->{strSpoolPath}/000000010000000100000004.ok"); + storageTest()->put("$self->{strSpoolPath}/000000010000000100000004.ok"); #--------------------------------------------------------------------------------------------------------------------------- $self->testResult( @@ -273,32 +265,33 @@ sub run $iWalTimeline++; $iWalMinor = 1; - fileStringWrite("$self->{strWalStatusPath}/00000002.history.ready"); + storageTest()->put("$self->{strWalStatusPath}/00000002.history.ready"); $self->testResult( sub {$oPushAsync->readyList()}, '(00000002.history)', 'history .ready file'); - fileStringWrite("$self->{strSpoolPath}/00000002.history.ok"); + storageTest()->put("$self->{strSpoolPath}/00000002.history.ok"); #--------------------------------------------------------------------------------------------------------------------------- - fileStringWrite( + storageTest()->put( "$self->{strWalStatusPath}/" . $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++) . '.00000028.backup.ready'); $self->testResult( sub {$oPushAsync->readyList()}, '(000000020000000100000001.00000028.backup)', 'backup .ready file'); - fileStringWrite("$self->{strSpoolPath}/000000020000000100000001.00000028.backup.ok"); + storageTest()->put("$self->{strSpoolPath}/000000020000000100000001.00000028.backup.ok"); #--------------------------------------------------------------------------------------------------------------------------- - fileRemove("$self->{strWalStatusPath}/00000002.history.ready"); + storageTest()->remove("$self->{strWalStatusPath}/00000002.history.ready"); $self->testResult( sub {$oPushAsync->readyList()}, '()', 'remove 00000002.history.ok file'); $self->testResult( - sub {fileExists("$self->{strWalStatusPath}/00000002.history.ready")}, false, '00000002.history.ok is removed'); + sub {storageTest()->exists("$self->{strWalStatusPath}/00000002.history.ready")}, false, + '00000002.history.ok is removed'); } ################################################################################################################################ @@ -313,12 +306,9 @@ sub run my $iWalMinor = 1; #--------------------------------------------------------------------------------------------------------------------------- - fileStringWrite( - "$self->{strWalStatusPath}/" . $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++) . '.ready'); - fileStringWrite( - "$self->{strWalStatusPath}/" . $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++) . '.ready'); - fileStringWrite( - "$self->{strWalStatusPath}/" . $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++) . '.ready'); + storageTest()->put("$self->{strWalStatusPath}/" . $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++) . '.ready'); + storageTest()->put("$self->{strWalStatusPath}/" . $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++) . '.ready'); + storageTest()->put("$self->{strWalStatusPath}/" . $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++) . '.ready'); $self->testResult( sub {$oPushAsync->dropList($oPushAsync->readyList())}, '()', @@ -365,7 +355,7 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- # Generate a bogus warning ok (if content is present there must be two lines) $strSegment = $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++); - fileStringWrite("$self->{strSpoolPath}/${strSegment}.ok", "Test Warning"); + storageTest()->put("$self->{strSpoolPath}/${strSegment}.ok", "Test Warning"); # Check status $self->testException( @@ -393,7 +383,7 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- # Generate an invalid error - fileStringWrite("$self->{strSpoolPath}/${strSegment}.error"); + storageTest()->put("$self->{strSpoolPath}/${strSegment}.error"); # Check status (will error because there are now two status files) $self->testException( @@ -403,7 +393,7 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- # Remove the ok file - fileRemove("$self->{strSpoolPath}/${strSegment}.ok"); + storageTest()->remove("$self->{strSpoolPath}/${strSegment}.ok"); # Check status $self->testException( @@ -421,7 +411,7 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- # Change the error file to an ok file - fileMove("$self->{strSpoolPath}/${strSegment}.error", "$self->{strSpoolPath}/${strSegment}.ok"); + storageTest()->move("$self->{strSpoolPath}/${strSegment}.error", "$self->{strSpoolPath}/${strSegment}.ok"); # Check status $self->testResult( @@ -445,7 +435,11 @@ sub run { my $oPushAsync = new pgBackRest::Archive::ArchivePushAsync( $self->{strWalPath}, $self->{strSpoolPath}, $self->backrestExe()); + + $self->optionBoolSetTest($oOption, OPTION_ARCHIVE_ASYNC, true); + $self->optionSetTest($oOption, OPTION_SPOOL_PATH, $self->{strRepoPath}); logDisable(); $self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH); logEnable(); + $oPushAsync->initServer(); my $iWalTimeline = 1; @@ -455,26 +449,26 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- # Generate a normal segment my $strSegment = $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++); - $self->walGenerate($self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); # Generate an error (.ready file withough a corresponding WAL file) my $strSegmentError = $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++); - fileStringWrite("$self->{strWalStatusPath}/$strSegmentError.ready"); + storageTest()->put("$self->{strWalStatusPath}/$strSegmentError.ready"); # Process and check results $self->testResult(sub {$oPushAsync->processQueue()}, '(2, 0, 1, 1)', "process ${strSegment}, ${strSegmentError}"); $self->testResult( - sub {fileList($self->{strSpoolPath})}, "(${strSegment}.ok, ${strSegmentError}.error)", + sub {storageSpool->list($self->{strSpoolPath})}, "(${strSegment}.ok, ${strSegmentError}.error)", "${strSegment} pushed, ${strSegmentError} errored"); $self->testResult( - sub {walSegmentFind($self->{oFile}, $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}", + sub {walSegmentFind(storageRepo(), $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}", "${strSegment} WAL in archive"); $self->testResult( - sub {fileStringRead("$self->{strSpoolPath}/$strSegmentError.error")}, - ERROR_FILE_OPEN . "\nraised on local-1 host: unable to open $self->{strWalPath}/${strSegmentError}", + sub {${storageSpool()->get("$self->{strSpoolPath}/$strSegmentError.error")}}, + ERROR_FILE_OPEN . "\nraised on 'local-1' host: unable to open $self->{strWalPath}/${strSegmentError}", "test ${strSegmentError}.error contents"); # Remove pushed WAL file @@ -482,16 +476,16 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- # Fix errored WAL file by providing a valid segment - $self->walGenerate($self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strSegmentError); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strSegmentError); # Process and check results $self->testResult(sub {$oPushAsync->processQueue()}, '(1, 0, 1, 0)', "process ${strSegment}, ${strSegmentError}"); $self->testResult( - sub {walSegmentFind($self->{oFile}, $self->{strArchiveId}, $strSegmentError)}, "${strSegmentError}-$self->{strWalHash}", + sub {walSegmentFind(storageRepo(), $self->{strArchiveId}, $strSegmentError)}, "${strSegmentError}-$self->{strWalHash}", "${strSegmentError} WAL in archive"); - $self->testResult(sub {fileList($self->{strSpoolPath})}, "${strSegmentError}.ok", "${strSegmentError} pushed"); + $self->testResult(sub {storageSpool()->list($self->{strSpoolPath})}, "${strSegmentError}.ok", "${strSegmentError} pushed"); #--------------------------------------------------------------------------------------------------------------------------- # Remove previously errored WAL file @@ -500,7 +494,7 @@ sub run # Process and check results $self->testResult(sub {$oPushAsync->processQueue()}, '(0, 0, 0, 0)', "remove ${strSegmentError}.ready"); - $self->testResult(sub {fileList($self->{strSpoolPath})}, "[undef]", "${strSegmentError} removed"); + $self->testResult(sub {storageSpool()->list($self->{strSpoolPath})}, "[undef]", "${strSegmentError} removed"); #--------------------------------------------------------------------------------------------------------------------------- # Enable compression @@ -510,46 +504,46 @@ sub run # Create history file my $strHistoryFile = "00000001.history"; - fileStringWrite("$self->{strWalPath}/${strHistoryFile}"); - fileStringWrite("$self->{strWalStatusPath}/$strHistoryFile.ready"); + storageTest()->put("$self->{strWalPath}/${strHistoryFile}"); + storageTest()->put("$self->{strWalStatusPath}/$strHistoryFile.ready"); # Create backup file my $strBackupFile = "${strSegment}.00000028.backup"; - fileStringWrite("$self->{strWalPath}/${strBackupFile}"); - fileStringWrite("$self->{strWalStatusPath}/$strBackupFile.ready"); + storageTest()->put("$self->{strWalPath}/${strBackupFile}"); + storageTest()->put("$self->{strWalStatusPath}/$strBackupFile.ready"); # Process and check results $self->testResult(sub {$oPushAsync->processQueue()}, '(2, 0, 2, 0)', "end processing ${strHistoryFile}, ${strBackupFile}"); $self->testResult( - sub {fileList($self->{strSpoolPath})}, "(${strHistoryFile}.ok, ${strBackupFile}.ok)", + sub {storageSpool()->list($self->{strSpoolPath})}, "(${strHistoryFile}.ok, ${strBackupFile}.ok)", "${strHistoryFile}, ${strBackupFile} pushed"); $self->testResult( - sub {$self->{oFile}->exists(PATH_BACKUP_ARCHIVE, "$self->{strArchiveId}/${strHistoryFile}")}, true, + sub {storageRepo()->exists(STORAGE_REPO_ARCHIVE . "/$self->{strArchiveId}/${strHistoryFile}")}, true, "${strHistoryFile} in archive"); $self->testResult( - sub {$self->{oFile}->exists(PATH_BACKUP_ARCHIVE, "$self->{strArchiveId}/${strBackupFile}")}, true, + sub {storageRepo()->exists(STORAGE_REPO_ARCHIVE . "/$self->{strArchiveId}/${strBackupFile}")}, true, "${strBackupFile} in archive"); # Remove history and backup files - fileRemove("$self->{strWalPath}/${strHistoryFile}"); - fileRemove("$self->{strWalStatusPath}/$strHistoryFile.ready"); - fileRemove("$self->{strWalPath}/${strBackupFile}"); - fileRemove("$self->{strWalStatusPath}/$strBackupFile.ready"); + storageTest()->remove("$self->{strWalPath}/${strHistoryFile}"); + storageTest()->remove("$self->{strWalStatusPath}/$strHistoryFile.ready"); + storageTest()->remove("$self->{strWalPath}/${strBackupFile}"); + storageTest()->remove("$self->{strWalStatusPath}/$strBackupFile.ready"); #--------------------------------------------------------------------------------------------------------------------------- # Generate a normal segment $strSegment = $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++); - $self->walGenerate($self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); # Process and check results $self->testResult(sub {$oPushAsync->processQueue()}, '(1, 0, 1, 0)', "processing ${strSegment}.gz"); $self->testResult( - sub {walSegmentFind($self->{oFile}, $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}.gz", + sub {walSegmentFind(storageRepo(), $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}.gz", "${strSegment} WAL in archive"); # Remove the WAL and process so the .ok file is removed @@ -557,24 +551,24 @@ sub run $self->testResult(sub {$oPushAsync->processQueue()}, '(0, 0, 0, 0)', "remove ${strSegment}.ready"); - $self->testResult(sub {fileList($self->{strSpoolPath})}, "[undef]", "${strSegment}.ok removed"); + $self->testResult(sub {storageSpool()->list($self->{strSpoolPath})}, "[undef]", "${strSegment}.ok removed"); # Generate the same WAL again - $self->walGenerate($self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); # Process and check results $self->testResult(sub {$oPushAsync->processQueue()}, '(1, 0, 1, 0)', "processed duplicate ${strSegment}.gz"); - $self->testResult(sub {fileList($self->{strSpoolPath})}, "${strSegment}.ok", "${strSegment} pushed"); + $self->testResult(sub {storageSpool()->list($self->{strSpoolPath})}, "${strSegment}.ok", "${strSegment} pushed"); $self->testResult( - sub {fileStringRead("$self->{strSpoolPath}/${strSegment}.ok")}, + sub {${storageSpool()->get("$self->{strSpoolPath}/${strSegment}.ok")}}, "0\nWAL segment ${strSegment} already exists in the archive with the same checksum\n" . 'HINT: this is valid in some recovery scenarios but may also indicate a problem.', "${strSegment}.ok warning status"); $self->testResult( - sub {walSegmentFind($self->{oFile}, $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}.gz", + sub {walSegmentFind(storageRepo(), $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}.gz", "${strSegment} WAL in archive"); # Remove the WAL @@ -598,21 +592,21 @@ sub run foreach my $strSegment (@strySegment) { - $self->walGenerate($self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); } # Process and check results $self->testResult(sub {$oPushAsync->processQueue()}, '(3, 3, 1, 0)', "process and drop files"); $self->testResult( - sub {fileList($self->{strSpoolPath})}, '(' . join('.ok, ', @strySegment) . '.ok)', + sub {storageSpool()->list($self->{strSpoolPath})}, '(' . join('.ok, ', @strySegment) . '.ok)', join(', ', @strySegment) . " ok drop files written"); foreach my $strSegment (@strySegment) { $self->testResult( - sub {fileStringRead("$self->{strSpoolPath}/${strSegment}.ok")}, - $strSegment eq $strySegment[0] ? '' : + sub {${storageSpool()->get("$self->{strSpoolPath}/${strSegment}.ok")}}, + $strSegment eq $strySegment[0] ? undef : "0\ndropped WAL file ${strSegment} because archive queue exceeded " . optionGet(OPTION_ARCHIVE_QUEUE_MAX) . ' bytes', "verify ${strSegment} status"); @@ -626,7 +620,7 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- $self->testResult(sub {$oPushAsync->processQueue()}, '(0, 0, 0, 0)', "final process to remove ok files"); - $self->testResult(sub {fileList($self->{strSpoolPath})}, "[undef]", "ok files removed"); + $self->testResult(sub {storageSpool()->list($self->{strSpoolPath})}, "[undef]", "ok files removed"); } ################################################################################################################################ @@ -634,6 +628,10 @@ sub run { my $oPush = new pgBackRest::Archive::ArchivePush($self->backrestExe()); + $self->optionReset($oOption, OPTION_ARCHIVE_ASYNC); + $self->optionReset($oOption, OPTION_SPOOL_PATH); + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH); logEnable(); + my $iWalTimeline = 1; my $iWalMajor = 1; my $iWalMinor = 1; @@ -656,12 +654,12 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- my $strSegment = $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++); - $self->walGenerate($self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); $self->testResult(sub {$oPush->process("pg_xlog/${strSegment}")}, 0, "${strSegment} WAL pushed (with relative path)"); $self->testResult( - sub {walSegmentFind($self->{oFile}, $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}", + sub {walSegmentFind(storageRepo(), $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}", "${strSegment} WAL in archive"); $self->walRemove($self->{strWalPath}, $strSegment); @@ -672,11 +670,11 @@ sub run logDisable(); $self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH); logEnable(); $strSegment = $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++); - $self->walGenerate($self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); $self->testResult(sub {$oPush->process("$self->{strWalPath}/${strSegment}")}, 0, "${strSegment} WAL dropped"); $self->testResult( - sub {walSegmentFind($self->{oFile}, $self->{strArchiveId}, $strSegment)}, '[undef]', + sub {walSegmentFind(storageRepo(), $self->{strArchiveId}, $strSegment)}, '[undef]', "${strSegment} WAL in archive"); # Set more realistic queue max and allow segment to push @@ -685,7 +683,7 @@ sub run $self->testResult(sub {$oPush->process("$self->{strWalPath}/${strSegment}")}, 0, "${strSegment} WAL pushed"); $self->testResult( - sub {walSegmentFind($self->{oFile}, $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}", + sub {walSegmentFind(storageRepo(), $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}", "${strSegment} WAL in archive"); $self->walRemove($self->{strWalPath}, $strSegment); @@ -702,8 +700,8 @@ sub run # Write an error file and verify that it doesn't error the first time around $strSegment = $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++); - filePathCreate($self->{strSpoolPath}, undef, undef, true); - fileStringWrite("$self->{strSpoolPath}/${strSegment}.error", ERROR_ARCHIVE_TIMEOUT . "\ntest error"); + storageTest()->pathCreate($self->{strSpoolPath}, {bCreateParent => true}); + storageTest()->put("$self->{strSpoolPath}/${strSegment}.error", ERROR_ARCHIVE_TIMEOUT . "\ntest error"); $self->testException( sub {$oPush->process("$self->{strWalPath}/${strSegment}")}, ERROR_ARCHIVE_TIMEOUT, @@ -712,31 +710,31 @@ sub run $self->testResult($oPush->{bConfessOnError}, true, "went through error loop"); $self->testResult( - sub {walSegmentFind($self->{oFile}, $self->{strArchiveId}, $strSegment)}, '[undef]', + sub {walSegmentFind(storageRepo(), $self->{strArchiveId}, $strSegment)}, '[undef]', "${strSegment} WAL not in archive"); #--------------------------------------------------------------------------------------------------------------------------- # Write an OK file so the async process is not actually started $strSegment = $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++); - fileStringWrite("$self->{strSpoolPath}/${strSegment}.ok"); + storageTest()->put("$self->{strSpoolPath}/${strSegment}.ok"); $self->testResult( sub {$oPush->process("$self->{strWalPath}/${strSegment}")}, 0, "${strSegment} WAL pushed async from synthetic ok file"); $self->testResult( - sub {walSegmentFind($self->{oFile}, $self->{strArchiveId}, $strSegment)}, '[undef]', + sub {walSegmentFind(storageRepo(), $self->{strArchiveId}, $strSegment)}, '[undef]', "${strSegment} WAL not in archive"); #--------------------------------------------------------------------------------------------------------------------------- $strSegment = $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++); - $self->walGenerate($self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); $self->testResult(sub {$oPush->process("$self->{strWalPath}/${strSegment}")}, 0, "${strSegment} WAL pushed async"); exit if ($iProcessId != $PID); $self->testResult( - sub {walSegmentFind($self->{oFile}, $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}", + sub {walSegmentFind(storageRepo(), $self->{strArchiveId}, $strSegment)}, "${strSegment}-$self->{strWalHash}", "${strSegment} WAL in archive"); $self->walRemove($self->{strWalPath}, $strSegment); @@ -754,7 +752,7 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- $strSegment = $self->walSegment($iWalTimeline, $iWalMajor, $iWalMinor++); - $self->walGenerate($self->{oFile}, $self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); + $self->walGenerate($self->{strWalPath}, WAL_VERSION_94, 1, $strSegment); $self->optionSetTest($oOption, OPTION_BACKUP_HOST, BOGUS); $self->optionSetTest($oOption, OPTION_PROTOCOL_TIMEOUT, 60); @@ -762,8 +760,8 @@ sub run logDisable(); $self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH); logEnable(); $self->testException( - sub {$oPush->process("$self->{strWalPath}/${strSegment}")}, ERROR_HOST_CONNECT, - 'remote process terminated on ' . BOGUS . ' host.*'); + sub {$oPush->process("$self->{strWalPath}/${strSegment}")}, ERROR_FILE_READ, + "process '" . BOGUS . " remote' terminated.*"); exit if ($iProcessId != $PID); # Disable async archiving diff --git a/test/lib/pgBackRestTest/Module/Archive/ArchiveStopTest.pm b/test/lib/pgBackRestTest/Module/Archive/ArchiveStopTest.pm index b3d7bfe3c..d07c3a813 100644 --- a/test/lib/pgBackRestTest/Module/Archive/ArchiveStopTest.pm +++ b/test/lib/pgBackRestTest/Module/Archive/ArchiveStopTest.pm @@ -21,9 +21,9 @@ use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; use pgBackRestTest::Env::HostEnvTest; use pgBackRestTest::Common::ExecuteTest; @@ -48,21 +48,23 @@ sub run if (!$self->begin("rmt ${bRemote}, cmp ${bCompress}, error " . ($iError ? 'connect' : 'version'))) {next} # Create hosts, file object, and config - my ($oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile) = $self->setup( + my ($oHostDbMaster, $oHostDbStandby, $oHostBackup) = $self->setup( true, $self->expect(), {bHostBackup => $bRemote, bCompress => $bCompress, bArchiveAsync => true}); + my $oStorage = storageRepo(); + # Create compression extension - my $strCompressExt = $bCompress ? ".$oFile->{strCompressExtension}" : ''; + my $strCompressExt = $bCompress ? qw{.} . COMPRESS_EXT : ''; # Create the xlog path my $strXlogPath = $oHostDbMaster->dbBasePath() . '/pg_xlog'; - filePathCreate($strXlogPath, undef, false, true); + $oStorage->pathCreate($strXlogPath, {bCreateParent => true}); # Create the test path for pg_control and copy pg_control for stanza-create - filePathCreate(($oHostDbMaster->dbBasePath() . '/' . DB_PATH_GLOBAL), undef, false, true); - executeTest( - 'cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin ' . $oHostDbMaster->dbBasePath() . '/' . - DB_FILE_PGCONTROL); + storageTest()->pathCreate($oHostDbMaster->dbBasePath() . '/' . DB_PATH_GLOBAL, {bCreateParent => true}); + storageTest()->copy( + $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin', + $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); # Create the archive info file $oHostBackup->stanzaCreate('create required data for stanza', {strOptionalParam => '--no-' . OPTION_ONLINE}); @@ -74,16 +76,16 @@ sub run if ($iError == 0) { $oHostBackup->infoMunge( - $oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE), + $oStorage->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE), {&INFO_ARCHIVE_SECTION_DB => {&INFO_ARCHIVE_KEY_DB_VERSION => '8.0'}}); } # Push two more segments with errors to exceed archive-max-mb $oHostDbMaster->archivePush( - $strXlogPath, $strArchiveTestFile, 2, $iError ? ERROR_HOST_CONNECT : ERROR_ARCHIVE_MISMATCH); + $strXlogPath, $strArchiveTestFile, 2, $iError ? ERROR_FILE_READ : ERROR_ARCHIVE_MISMATCH); $oHostDbMaster->archivePush( - $strXlogPath, $strArchiveTestFile, 3, $iError ? ERROR_HOST_CONNECT : ERROR_ARCHIVE_MISMATCH); + $strXlogPath, $strArchiveTestFile, 3, $iError ? ERROR_FILE_READ : ERROR_ARCHIVE_MISMATCH); # Now this segment will get dropped $oHostDbMaster->archivePush($strXlogPath, $strArchiveTestFile, 4); @@ -91,13 +93,14 @@ sub run # Fix the database version if ($iError == 0) { - $oHostBackup->infoRestore($oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE)); + $oHostBackup->infoRestore($oStorage->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE)); } #--------------------------------------------------------------------------------------------------------------------------- $self->testResult( - sub {$oFile->list( - PATH_BACKUP_ARCHIVE, PG_VERSION_94 . '-1/0000000100000001', {strExpression => '^(?!000000010000000100000002).+'})}, + sub {$oStorage->list( + STORAGE_REPO_ARCHIVE . qw{/} . PG_VERSION_94 . '-1/0000000100000001', + {strExpression => '^(?!000000010000000100000002).+'})}, "000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7${strCompressExt}", 'segment 2-4 not pushed (2 is pushed sometimes when remote but ignore)', {iWaitSeconds => 5}); @@ -105,8 +108,9 @@ sub run $oHostDbMaster->archivePush($strXlogPath, $strArchiveTestFile, 5); $self->testResult( - sub {$oFile->list( - PATH_BACKUP_ARCHIVE, PG_VERSION_94 . '-1/0000000100000001', {strExpression => '^(?!000000010000000100000002).+'})}, + sub {$oStorage->list( + STORAGE_REPO_ARCHIVE . qw{/} . PG_VERSION_94 . '-1/0000000100000001', + {strExpression => '^(?!000000010000000100000002).+'})}, "(000000010000000100000001-72b9da071c13957fb4ca31f05dbd5c644297c2f7${strCompressExt}, " . "000000010000000100000005-72b9da071c13957fb4ca31f05dbd5c644297c2f7${strCompressExt})", 'segment 5 is pushed', {iWaitSeconds => 5}); diff --git a/test/lib/pgBackRestTest/Module/Archive/ArchiveUnitTest.pm b/test/lib/pgBackRestTest/Module/Archive/ArchiveUnitTest.pm index c194363b6..6ee805f28 100644 --- a/test/lib/pgBackRestTest/Module/Archive/ArchiveUnitTest.pm +++ b/test/lib/pgBackRestTest/Module/Archive/ArchiveUnitTest.pm @@ -11,14 +11,13 @@ use strict; use warnings FATAL => qw(all); use Carp qw(confess); -use File::Basename qw(dirname); +use Storable qw(dclone); use pgBackRest::Archive::ArchiveCommon; use pgBackRest::Common::Exception; use pgBackRest::Common::Log; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; +use pgBackRest::Protocol::Storage::Helper; use pgBackRestTest::Env::Host::HostBackupTest; @@ -95,58 +94,54 @@ sub run ################################################################################################################################ if ($self->begin("${strModule}::walSegmentFind()")) { - my $strArchiveId = '9.4-1'; - my $oFile = new pgBackRest::File( - $self->stanza(), - $self->testPath(), - new pgBackRest::Protocol::Common::Common( - OPTION_DEFAULT_BUFFER_SIZE, # Buffer size - OPTION_DEFAULT_COMPRESS_LEVEL, # Compress level - OPTION_DEFAULT_COMPRESS_LEVEL_NETWORK, # Compress network level - HOST_PROTOCOL_TIMEOUT # Protocol timeout - )); + my $oOption = {}; + $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); + $self->optionSetTest($oOption, OPTION_REPO_PATH, $self->testPath()); + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH); logEnable(); - my $strArchivePath = $oFile->pathGet(PATH_BACKUP_ARCHIVE, $strArchiveId);; + my $strArchiveId = '9.4-1'; + my $strArchivePath = storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . "/${strArchiveId}"); #--------------------------------------------------------------------------------------------------------------------------- my $strWalSegment = '000000010000000100000001ZZ'; $self->testException( - sub {walSegmentFind($oFile, $strArchiveId, $strWalSegment)}, ERROR_ASSERT, "${strWalSegment} is not a WAL segment"); + sub {walSegmentFind(storageRepo(), $strArchiveId, $strWalSegment)}, ERROR_ASSERT, + "${strWalSegment} is not a WAL segment"); #--------------------------------------------------------------------------------------------------------------------------- $strWalSegment = '000000010000000100000001'; $self->testResult( - sub {walSegmentFind($oFile, $strArchiveId, $strWalSegment)}, undef, "${strWalSegment} WAL not found"); + sub {walSegmentFind(storageRepo(), $strArchiveId, $strWalSegment)}, undef, "${strWalSegment} WAL not found"); #--------------------------------------------------------------------------------------------------------------------------- $self->testException( - sub {walSegmentFind($oFile, $strArchiveId, $strWalSegment, .1)}, ERROR_ARCHIVE_TIMEOUT, + sub {walSegmentFind(storageRepo(), $strArchiveId, $strWalSegment, .1)}, ERROR_ARCHIVE_TIMEOUT, "could not find WAL segment ${strWalSegment} after 0.1 second(s)"); #--------------------------------------------------------------------------------------------------------------------------- my $strWalMajorPath = "${strArchivePath}/" . substr($strWalSegment, 0, 16); my $strWalSegmentHash = "${strWalSegment}-53aa5d59515aa7288ae02ba414c009aed1ca73ad"; - filePathCreate($strWalMajorPath, undef, false, true); - fileStringWrite("${strWalMajorPath}/${strWalSegmentHash}"); + storageRepo()->pathCreate($strWalMajorPath, {bCreateParent => true}); + storageRepo()->put("${strWalMajorPath}/${strWalSegmentHash}"); $self->testResult( - sub {walSegmentFind($oFile, $strArchiveId, $strWalSegment)}, $strWalSegmentHash, "${strWalSegment} WAL found"); + sub {walSegmentFind(storageRepo(), $strArchiveId, $strWalSegment)}, $strWalSegmentHash, "${strWalSegment} WAL found"); #--------------------------------------------------------------------------------------------------------------------------- $self->testResult( - sub {walSegmentFind($oFile, $strArchiveId, substr($strWalSegment, 8, 16))}, $strWalSegmentHash, + sub {walSegmentFind(storageRepo(), $strArchiveId, substr($strWalSegment, 8, 16))}, $strWalSegmentHash, "${strWalSegment} WAL found without timeline"); #--------------------------------------------------------------------------------------------------------------------------- my $strWalSegmentHash2 = "${strWalSegment}-a0b0d38b8aa263e25b8ff52a0a4ba85b6be97f9b.gz"; - fileStringWrite("${strWalMajorPath}/${strWalSegmentHash2}"); + storageRepo()->put("${strWalMajorPath}/${strWalSegmentHash2}"); $self->testException( - sub {walSegmentFind($oFile, $strArchiveId, $strWalSegment)}, ERROR_ARCHIVE_DUPLICATE, + sub {walSegmentFind(storageRepo(), $strArchiveId, $strWalSegment)}, ERROR_ARCHIVE_DUPLICATE, "duplicates found in archive for WAL segment ${strWalSegment}: ${strWalSegmentHash}, ${strWalSegmentHash2}"); #--------------------------------------------------------------------------------------------------------------------------- @@ -154,31 +149,31 @@ sub run my $strWalSegmentHash3 = "${strWalSegment3}-dcdd09246e1918e88c67cf44b35edc23b803d879"; my $strWalMajorPath3 = "${strArchivePath}/" . substr($strWalSegment3, 0, 16); - filePathCreate($strWalMajorPath3, undef, false, true); - fileStringWrite("${strWalMajorPath3}/${strWalSegmentHash3}"); + storageRepo()->pathCreate($strWalMajorPath3, {bCreateParent => true}); + storageRepo()->put("${strWalMajorPath3}/${strWalSegmentHash3}"); $self->testException( - sub {walSegmentFind($oFile, $strArchiveId, substr($strWalSegment, 8, 16))}, ERROR_ARCHIVE_DUPLICATE, + sub {walSegmentFind(storageRepo(), $strArchiveId, substr($strWalSegment, 8, 16))}, ERROR_ARCHIVE_DUPLICATE, "duplicates found in archive for WAL segment XXXXXXXX" . substr($strWalSegment, 8, 16) . ": ${strWalSegmentHash}, ${strWalSegmentHash2}, ${strWalSegmentHash3}"); - fileRemove("${strWalMajorPath}/${strWalSegmentHash}"); - fileRemove("${strWalMajorPath3}/${strWalSegmentHash3}"); + storageRepo()->remove("${strWalMajorPath}/${strWalSegmentHash}"); + storageRepo()->remove("${strWalMajorPath3}/${strWalSegmentHash3}"); #--------------------------------------------------------------------------------------------------------------------------- $self->testResult( - sub {walSegmentFind($oFile, $strArchiveId, $strWalSegment)}, $strWalSegmentHash2, + sub {walSegmentFind(storageRepo(), $strArchiveId, $strWalSegment)}, $strWalSegmentHash2, "${strWalSegment} WAL found with compressed extension"); - fileRemove("${strWalMajorPath}/${strWalSegmentHash2}"); + storageRepo()->remove("${strWalMajorPath}/${strWalSegmentHash2}"); #--------------------------------------------------------------------------------------------------------------------------- $strWalSegment = $strWalSegment . '.partial'; $strWalSegmentHash = "${strWalSegment}-996195c807713ef9262170043e7222cb150aef70"; - fileStringWrite("${strWalMajorPath}/${strWalSegmentHash}"); + storageRepo()->put("${strWalMajorPath}/${strWalSegmentHash}"); $self->testResult( - sub {walSegmentFind($oFile, $strArchiveId, $strWalSegment)}, $strWalSegmentHash, "${strWalSegment} WAL found"); + sub {walSegmentFind(storageRepo(), $strArchiveId, $strWalSegment)}, $strWalSegmentHash, "${strWalSegment} WAL found"); } } diff --git a/test/lib/pgBackRestTest/Module/Backup/BackupInfoUnitTest.pm b/test/lib/pgBackRestTest/Module/Backup/BackupInfoUnitTest.pm index f9e6929f4..8c5977120 100644 --- a/test/lib/pgBackRestTest/Module/Backup/BackupInfoUnitTest.pm +++ b/test/lib/pgBackRestTest/Module/Backup/BackupInfoUnitTest.pm @@ -19,13 +19,11 @@ use pgBackRest::Backup::Info; use pgBackRest::Common::Exception; use pgBackRest::Common::Lock; use pgBackRest::Common::Log; +use pgBackRest::Config::Config; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::InfoCommon; use pgBackRest::Manifest; -use pgBackRest::Protocol::Common::Common; -use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; use pgBackRestTest::Env::HostEnvTest; use pgBackRestTest::Common::ExecuteTest; @@ -39,11 +37,7 @@ sub initModule { my $self = shift; - $self->{strDbPath} = $self->testPath() . '/db'; $self->{strRepoPath} = $self->testPath() . '/repo'; - $self->{strArchivePath} = "$self->{strRepoPath}/archive/" . $self->stanza(); - $self->{strBackupPath} = "$self->{strRepoPath}/backup/" . $self->stanza(); - $self->{strSpoolPath} = "$self->{strArchivePath}/out"; } #################################################################################################################################### @@ -53,19 +47,17 @@ sub initTest { my $self = shift; - # Create archive info path - filePathCreate($self->{strArchivePath}, undef, true, true); + # Load options + my $oOption = {}; + $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); + $self->optionSetTest($oOption, OPTION_REPO_PATH, $self->testPath() . '/repo'); + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH); logEnable(); + + # Create the local file object + $self->{oStorage} = storageRepo(); # Create backup info path - filePathCreate($self->{strBackupPath}, undef, true, true); - - # Create pg_control path - filePathCreate(($self->{strDbPath} . '/' . DB_PATH_GLOBAL), undef, false, true); - - # Copy a pg_control file into the pg_control path - executeTest( - 'cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin ' . $self->{strDbPath} . '/' . - DB_FILE_PGCONTROL); + $self->{oStorage}->pathCreate(STORAGE_REPO_BACKUP, {bCreateParent => true}); } #################################################################################################################################### @@ -79,7 +71,8 @@ sub run ################################################################################################################################ if ($self->begin("BackupInfo::confirmDb()")) { - my $oBackupInfo = new pgBackRest::Backup::Info($self->{strBackupPath}, false, false); + my $oBackupInfo = new pgBackRest::Backup::Info($self->{oStorage}->pathGet(STORAGE_REPO_BACKUP), false, false, + {bIgnoreMissing => true}); $oBackupInfo->create(PG_VERSION_93, WAL_VERSION_93_SYS_ID, '937', '201306121', true); my $strBackupLabel = "20170403-175647F"; diff --git a/test/lib/pgBackRestTest/Module/Backup/BackupUnitTest.pm b/test/lib/pgBackRestTest/Module/Backup/BackupUnitTest.pm index 3d9cd52b4..07e083009 100644 --- a/test/lib/pgBackRestTest/Module/Backup/BackupUnitTest.pm +++ b/test/lib/pgBackRestTest/Module/Backup/BackupUnitTest.pm @@ -12,6 +12,7 @@ use warnings FATAL => qw(all); use Carp qw(confess); use File::Basename qw(dirname); +use Storable qw(dclone); use pgBackRest::Backup::Common; use pgBackRest::Common::Exception; @@ -19,11 +20,10 @@ use pgBackRest::Common::Log; use pgBackRest::Common::String; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; -use pgBackRest::Protocol::Common::Common; -use pgBackRest::Protocol::Helper; use pgBackRest::Manifest; +use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; use pgBackRestTest::Common::ExecuteTest; use pgBackRestTest::Env::Host::HostBackupTest; @@ -116,44 +116,31 @@ sub run ################################################################################################################################ if ($self->begin('backupLabel()')) { - # Create the local file object - my $strRepoPath = $self->testPath() . '/repo'; - - my $oFile = - new pgBackRest::File - ( - $self->stanza(), - $strRepoPath, - new pgBackRest::Protocol::Common::Common - ( - OPTION_DEFAULT_BUFFER_SIZE, # Buffer size - OPTION_DEFAULT_COMPRESS_LEVEL, # Compress level - OPTION_DEFAULT_COMPRESS_LEVEL_NETWORK, # Compress network level - HOST_PROTOCOL_TIMEOUT # Protocol timeout - ) - ); + my $oOption = {}; + $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); + $self->optionSetTest($oOption, OPTION_REPO_PATH, $self->testPath() . '/repo'); + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH); logEnable(); #--------------------------------------------------------------------------------------------------------------------------- my $lTime = time(); my $strFullLabel = backupLabelFormat(BACKUP_TYPE_FULL, undef, $lTime); - $oFile->pathCreate(PATH_BACKUP_CLUSTER, $strFullLabel, undef, undef, true); + storageRepo()->pathCreate(STORAGE_REPO_BACKUP . "/${strFullLabel}", {bCreateParent => true}); - my $strNewFullLabel = backupLabel($oFile, BACKUP_TYPE_FULL, undef, $lTime); + my $strNewFullLabel = backupLabel(storageRepo(), BACKUP_TYPE_FULL, undef, $lTime); $self->testResult(sub {$strFullLabel ne $strNewFullLabel}, true, 'new full label <> existing full backup dir'); #--------------------------------------------------------------------------------------------------------------------------- - executeTest('rmdir ' . $oFile->pathGet(PATH_BACKUP_CLUSTER, $strFullLabel)); + executeTest('rmdir ' . storageRepo()->pathGet(STORAGE_REPO_BACKUP . "/${strFullLabel}")); - $oFile->pathCreate( - PATH_BACKUP_CLUSTER, PATH_BACKUP_HISTORY . '/' . timestampFormat('%4d', $lTime), undef, undef, true); - fileStringWrite($oFile->pathGet( - PATH_BACKUP_CLUSTER, - PATH_BACKUP_HISTORY . '/' . timestampFormat('%4d', $lTime) . - "/${strFullLabel}.manifest.$oFile->{strCompressExtension}")); + storageRepo()->pathCreate( + STORAGE_REPO_BACKUP . qw(/) . PATH_BACKUP_HISTORY . '/' . timestampFormat('%4d', $lTime), {bCreateParent => true}); + storageRepo()->put( + STORAGE_REPO_BACKUP . qw{/} . PATH_BACKUP_HISTORY . '/' . timestampFormat('%4d', $lTime) . + "/${strFullLabel}.manifest." . COMPRESS_EXT); - $strNewFullLabel = backupLabel($oFile, BACKUP_TYPE_FULL, undef, $lTime); + $strNewFullLabel = backupLabel(storageRepo(), BACKUP_TYPE_FULL, undef, $lTime); $self->testResult(sub {$strFullLabel ne $strNewFullLabel}, true, 'new full label <> existing full history file'); @@ -161,7 +148,7 @@ sub run $lTime = time() + 1000; $strFullLabel = backupLabelFormat(BACKUP_TYPE_FULL, undef, $lTime); - $strNewFullLabel = backupLabel($oFile, BACKUP_TYPE_FULL, undef, $lTime); + $strNewFullLabel = backupLabel(storageRepo(), BACKUP_TYPE_FULL, undef, $lTime); $self->testResult(sub {$strFullLabel eq $strNewFullLabel}, true, 'new full label in future'); @@ -170,23 +157,23 @@ sub run $strFullLabel = backupLabelFormat(BACKUP_TYPE_FULL, undef, $lTime); my $strDiffLabel = backupLabelFormat(BACKUP_TYPE_DIFF, $strFullLabel, $lTime); - $oFile->pathCreate(PATH_BACKUP_CLUSTER, $strDiffLabel, undef, undef, true); + storageRepo()->pathCreate(STORAGE_REPO_BACKUP . "/${strDiffLabel}", {bCreateParent => true}); - my $strNewDiffLabel = backupLabel($oFile, BACKUP_TYPE_DIFF, $strFullLabel, $lTime); + my $strNewDiffLabel = backupLabel(storageRepo(), BACKUP_TYPE_DIFF, $strFullLabel, $lTime); $self->testResult(sub {$strDiffLabel ne $strNewDiffLabel}, true, 'new diff label <> existing diff backup dir'); #--------------------------------------------------------------------------------------------------------------------------- - executeTest('rmdir ' . $oFile->pathGet(PATH_BACKUP_CLUSTER, $strDiffLabel)); + executeTest('rmdir ' . storageRepo()->pathGet(STORAGE_REPO_BACKUP . "/${strDiffLabel}")); - $oFile->pathCreate( - PATH_BACKUP_CLUSTER, PATH_BACKUP_HISTORY . '/' . timestampFormat('%4d', $lTime), undef, true, true); - fileStringWrite($oFile->pathGet( - PATH_BACKUP_CLUSTER, - PATH_BACKUP_HISTORY . '/' . timestampFormat('%4d', $lTime) . - "/${strDiffLabel}.manifest.$oFile->{strCompressExtension}")); + storageRepo()->pathCreate( + STORAGE_REPO_BACKUP . qw(/) . PATH_BACKUP_HISTORY . '/' . timestampFormat('%4d', $lTime), + {bIgnoreExists => true, bCreateParent => true}); + storageRepo()->put( + STORAGE_REPO_BACKUP . qw{/} . PATH_BACKUP_HISTORY . '/' . timestampFormat('%4d', $lTime) . + "/${strDiffLabel}.manifest." . COMPRESS_EXT); - $strNewDiffLabel = backupLabel($oFile, BACKUP_TYPE_DIFF, $strFullLabel, $lTime); + $strNewDiffLabel = backupLabel(storageRepo(), BACKUP_TYPE_DIFF, $strFullLabel, $lTime); $self->testResult(sub {$strDiffLabel ne $strNewDiffLabel}, true, 'new full label <> existing diff history file'); @@ -194,7 +181,7 @@ sub run $lTime = time() + 1000; $strDiffLabel = backupLabelFormat(BACKUP_TYPE_DIFF, $strFullLabel, $lTime); - $strNewDiffLabel = backupLabel($oFile, BACKUP_TYPE_DIFF, $strFullLabel, $lTime); + $strNewDiffLabel = backupLabel(storageRepo(), BACKUP_TYPE_DIFF, $strFullLabel, $lTime); $self->testResult(sub {$strDiffLabel eq $strNewDiffLabel}, true, 'new diff label in future'); } diff --git a/test/lib/pgBackRestTest/Module/Common/CommonIniTest.pm b/test/lib/pgBackRestTest/Module/Common/CommonIniTest.pm index 0e6a54822..a3066242f 100644 --- a/test/lib/pgBackRestTest/Module/Common/CommonIniTest.pm +++ b/test/lib/pgBackRestTest/Module/Common/CommonIniTest.pm @@ -15,7 +15,6 @@ use English '-no_match_vars'; use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; -use pgBackRest::FileCommon; use pgBackRest::Version; use pgBackRestTest::Common::ExecuteTest; @@ -100,56 +99,77 @@ sub run ################################################################################################################################ if ($self->begin("Ini->new()")) { + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {(new pgBackRest::Common::Ini($strTestFile, {bIgnoreMissing => true}))->exists()}, false, 'ignore missing'); + #--------------------------------------------------------------------------------------------------------------------------- my $oIni = new pgBackRest::Common::Ini( $strTestFile, {bLoad => false, iInitFormat => 4, strInitVersion => '1.01'}); $self->testResult($oIni->exists(), false, 'file does not exist'); - $oIni->save(); + $oIni->saveCopy(); + + $self->testResult($oIni->exists(), false, 'file does not exist after saveCopy()'); $self->testResult( - sub {fileStringRead($strTestFile)}, + sub {${storageTest()->get($strTestFile . INI_COPY_EXT)}}, $self->iniHeader(undef, 4, '1.01', '488e5ca1a018cd7cd6d4e15150548f39f493dacd'), 'empty with synthetic format and version'); #--------------------------------------------------------------------------------------------------------------------------- - fileStringWrite($strTestFile); - $self->testException(sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_CONFIG, 'no key/value pairs found'); + $oIni = new pgBackRest::Common::Ini($strTestFile, {bLoad => false}); + $oIni->saveCopy(); + + $self->testResult( + sub {${storageTest()->get($strTestFile . INI_COPY_EXT)}}, + $self->iniHeader(undef, BACKREST_FORMAT, BACKREST_VERSION, $oIni->hash()), + 'empty with default format and version'); #--------------------------------------------------------------------------------------------------------------------------- - $oIni = new pgBackRest::Common::Ini($strTestFile, {bLoad => false}); + $self->testResult( + sub {storageTest()->list($self->testPath())}, + 'test.ini.copy', + 'only copy is saved'); + $oIni->save(); $self->testResult( - sub {fileStringRead($strTestFile)}, - $self->iniHeader(undef, BACKREST_FORMAT, BACKREST_VERSION, $oIni->hash()), - 'empty with default format and version'); + sub {storageTest()->list($self->testPath())}, + '(test.ini, test.ini.copy)', + 'both versions are saved'); + + $self->testException( + sub {$oIni->saveCopy()}, ERROR_ASSERT, + "cannot save copy only when '${strTestFile}' exists"); #--------------------------------------------------------------------------------------------------------------------------- $self->testResult(sub {new pgBackRest::Common::Ini($strTestFile)}, '[object]', 'normal load'); #--------------------------------------------------------------------------------------------------------------------------- - my $hIni = iniParse(fileStringRead($strTestFile)); + my $hIni = iniParse(${storageTest()->get($strTestFile)}); $hIni->{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM} = BOGUS; - fileStringWrite($strTestFile, iniRender($hIni)); - fileStringWrite($strTestFileCopy, iniRender($hIni)); + storageTest()->put($strTestFile, iniRender($hIni)); + storageTest()->put($strTestFileCopy, iniRender($hIni)); $self->testException( - sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_CHECKSUM, - "invalid checksum in '${strTestFile}', expected '" . - $oIni->get(INI_SECTION_BACKREST, INI_KEY_CHECKSUM) . "' but found 'bogus'"); + sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_FILE_MISSING, + "unable to open ${strTestFile} or ${strTestFile}" . INI_COPY_EXT); + # "invalid checksum in '${strTestFile}', expected '" . + # $oIni->get(INI_SECTION_BACKREST, INI_KEY_CHECKSUM) . "' but found 'bogus'"); $hIni->{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM} = $oIni->hash(); - fileStringWrite($strTestFile, iniRender($hIni)); + storageTest()->put($strTestFile, iniRender($hIni)); #--------------------------------------------------------------------------------------------------------------------------- $oIni->numericSet(INI_SECTION_BACKREST, INI_KEY_FORMAT, undef, BACKREST_FORMAT - 1); $oIni->save(); $self->testException( - sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_FORMAT, - "invalid format in '${strTestFile}', expected " . BACKREST_FORMAT . ' but found ' . (BACKREST_FORMAT - 1)); + sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_FILE_MISSING, + "unable to open ${strTestFile} or ${strTestFile}" . INI_COPY_EXT); + # "invalid format in '${strTestFile}', expected " . BACKREST_FORMAT . ' but found ' . (BACKREST_FORMAT - 1)); $oIni->numericSet(INI_SECTION_BACKREST, INI_KEY_FORMAT, undef, BACKREST_FORMAT); $oIni->save(); @@ -159,17 +179,17 @@ sub run $oIni->save(); $self->testResult( - sub {fileStringRead($strTestFile)}, + sub {${storageTest()->get($strTestFile . INI_COPY_EXT)}}, $self->iniHeader($oIni, undef, '1.01'), 'verify old version was written'); $oIni = new pgBackRest::Common::Ini($strTestFile); $self->testResult(sub {$oIni->get(INI_SECTION_BACKREST, INI_KEY_VERSION)}, BACKREST_VERSION, 'version is updated on load'); - $self->testResult(sub {$oIni->save()}, true, 'save changes'); + $oIni->save(); $self->testResult( - sub {fileStringRead($strTestFile)}, + sub {${storageTest()->get($strTestFile . INI_COPY_EXT)}}, $self->iniHeader($oIni, undef, BACKREST_VERSION), 'verify version is updated on load'); @@ -177,65 +197,89 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- $self->testResult( - sub {new pgBackRest::Common::Ini($strTestFile, {bLoad => false, strContent => fileStringRead($strTestFile)})}, + sub {new pgBackRest::Common::Ini($strTestFile, {bLoad => false, strContent => ${storageTest()->get($strTestFile)}})}, '[object]', 'new() passing content as a string'); #--------------------------------------------------------------------------------------------------------------------------- executeTest("rm -rf ${strTestFile}*"); $self->testException( - sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_UNKNOWN, - "unable to open ${strTestFile}"); + sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_FILE_MISSING, + "unable to open ${strTestFile} or ${strTestFile}" . INI_COPY_EXT); #--------------------------------------------------------------------------------------------------------------------------- - fileStringWrite($strTestFileCopy, BOGUS); + storageTest()->put($strTestFileCopy, BOGUS); $self->testException( - sub {new pgBackRest::Common::Ini($strTestFileCopy)}, ERROR_CONFIG, - "key/value pair 'bogus' found outside of a section"); + sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_FILE_MISSING, + "unable to open ${strTestFile} or ${strTestFile}" . INI_COPY_EXT); + # "key/value pair 'bogus' found outside of a section"); #--------------------------------------------------------------------------------------------------------------------------- - $oIni = new pgBackRest::Common::Ini($strTestFile, {bLoad => false}); + my $oIniSource = new pgBackRest::Common::Ini($strTestFile, {bLoad => false}); - fileStringWrite($strTestFileCopy, iniRender($oIni->{oContent})); + storageTest()->put($strTestFileCopy, iniRender($oIniSource->{oContent})); $self->testException( - sub {new pgBackRest::Common::Ini($strTestFileCopy)}, ERROR_CHECKSUM, - "invalid checksum in '${strTestFileCopy}', expected '" . - $oIni->hash() . "' but found [undef]"); + sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_FILE_MISSING, + "unable to open ${strTestFile} or ${strTestFile}" . INI_COPY_EXT); + # "invalid checksum in '${strTestFileCopy}', expected '" . + # $oIniSource->hash() . "' but found [undef]"); #--------------------------------------------------------------------------------------------------------------------------- - $oIni = new pgBackRest::Common::Ini($strTestFile, {bLoad => false}); - $oIni->{oContent}->{&INI_SECTION_BACKREST}{&INI_KEY_FORMAT} = 0; + $oIniSource = new pgBackRest::Common::Ini($strTestFile, {bLoad => false}); + $oIniSource->save(); - $self->testResult( - sub {$oIni->headerCheck({bIgnoreInvalid => true})}, false, - 'ignore invalid header'); + storageTest()->put($strTestFile, BOGUS); + + # main invalid, copy ok + $self->testResult(sub {new pgBackRest::Common::Ini($strTestFile)}, '[object]', 'invalid main - load copy'); #--------------------------------------------------------------------------------------------------------------------------- - fileRemove($strTestFileCopy); + storageTest()->remove($strTestFileCopy); - fileStringWrite($strTestFile, "[section]\n" . BOGUS); + storageTest()->put($strTestFile, "[section]\n" . BOGUS); - $self->testException(sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_CONFIG, "unable to find '=' in 'bogus'"); + # main invalid, copy missing + $self->testException + (sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_FILE_MISSING, + "unable to open ${strTestFile} or ${strTestFile}" . INI_COPY_EXT); + #"unable to find '=' in 'bogus'"); #--------------------------------------------------------------------------------------------------------------------------- - $self->testResult( - sub {iniParse("[section]\n" . BOGUS, {bIgnoreInvalid => true})}, undef, 'ignore invalid content'); + storageTest()->put($strTestFile, iniRender($oIniSource->{oContent})); + + $self->testResult(sub {new pgBackRest::Common::Ini($strTestFile)}, '[object]', 'main ok, copy missing'); #--------------------------------------------------------------------------------------------------------------------------- - fileStringWrite($strTestFile, BOGUS); + storageTest()->put($strTestFileCopy, BOGUS); + + # main ok, copy invalid + $self->testResult(sub {new pgBackRest::Common::Ini($strTestFile)}, '[object]', 'main ok, copy invalid'); + + #--------------------------------------------------------------------------------------------------------------------------- + storageTest()->put($strTestFile, BOGUS); # main invalid, copy invalid $self->testException( - sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_CONFIG, "key/value pair 'bogus' found outside of a section"); + sub {new pgBackRest::Common::Ini($strTestFile)}, ERROR_FILE_MISSING, + "unable to open ${strTestFile} or ${strTestFile}" . INI_COPY_EXT); + # "key/value pair 'bogus' found outside of a section"); #--------------------------------------------------------------------------------------------------------------------------- - fileStringWrite($strTestFile, iniRender($hIni)); + storageTest()->put($strTestFile, iniRender($hIni)); $hIni->{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM} = BOGUS; - fileStringWrite($strTestFileCopy, iniRender($hIni)); + storageTest()->put($strTestFileCopy, iniRender($hIni)); - $self->testResult(sub {new pgBackRest::Common::Ini($strTestFile)}, '[object]', 'invalid header - load main'); + $self->testResult(sub {new pgBackRest::Common::Ini($strTestFile)}, '[object]', 'invalid copy header - load main'); + + #--------------------------------------------------------------------------------------------------------------------------- + $hIni->{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM} = $oIni->hash(); + storageTest()->put($strTestFileCopy, iniRender($hIni)); + $hIni->{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM} = BOGUS; + storageTest()->put($strTestFile, iniRender($hIni)); + + $self->testResult(sub {new pgBackRest::Common::Ini($strTestFile)}, '[object]', 'invalid main header - load copy'); } ################################################################################################################################ diff --git a/test/lib/pgBackRestTest/Module/Common/CommonIoBufferedTest.pm b/test/lib/pgBackRestTest/Module/Common/CommonIoBufferedTest.pm new file mode 100644 index 000000000..b2d64db82 --- /dev/null +++ b/test/lib/pgBackRestTest/Module/Common/CommonIoBufferedTest.pm @@ -0,0 +1,259 @@ +#################################################################################################################################### +# CommonIoBufferedTest.pm - tests for Common::Io::Buffered module +#################################################################################################################################### +package pgBackRestTest::Module::Common::CommonIoBufferedTest; +use parent 'pgBackRestTest::Common::RunTest'; + +#################################################################################################################################### +# Perl includes +#################################################################################################################################### +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use IO::Socket::UNIX; +use Time::HiRes qw(usleep); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Io::Buffered; +use pgBackRest::Common::Log; +use pgBackRest::Common::Wait; + +use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Common::RunTest; + +#################################################################################################################################### +# socketServer +#################################################################################################################################### +sub socketServer +{ + my $self = shift; + my $strSocketFile = shift; + my $fnServer = shift; + + # Fork off the server + if (fork() == 0) + { + # Open the domain socket + my $oSocketServer = IO::Socket::UNIX->new(Type => SOCK_STREAM(), Local => $strSocketFile, Listen => 1); + &log(INFO, " * socket server open"); + + # Wait for a connection and create IO object + my $oConnection = $oSocketServer->accept(); + my $oIoHandle = new pgBackRest::Common::Io::Handle('socket server', $oConnection, $oConnection); + &log(INFO, " * socket server connected"); + + # Run server function + $fnServer->($oIoHandle); + + # Shutdown server + $oSocketServer->close(); + &log(INFO, " * socket server closed"); + unlink($strSocketFile); + exit 0; + } + + # Wait for client socket + my $oWait = waitInit(5); + while (!-e $strSocketFile && waitMore($oWait)) {}; + + # Open the client socket + my $oClient = IO::Socket::UNIX->new(Type => SOCK_STREAM(), Peer => $strSocketFile); + + if (!defined($oClient)) + { + logErrorResult(ERROR_FILE_OPEN, 'unable to open client socket', $OS_ERROR); + } + + &log(INFO, " * socket client connected"); + + return $oClient; +} + +#################################################################################################################################### +# run +#################################################################################################################################### +sub run +{ + my $self = shift; + + # Test data + my $strSocketFile = $self->testPath() . qw{/} . 'domain.socket'; + + ################################################################################################################################ + if ($self->begin('new() & timeout() & bufferMax()')) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $oIoBuffered = $self->testResult( + sub {new pgBackRest::Common::Io::Buffered( + new pgBackRest::Common::Io::Handle('test'), 10, 2048)}, '[object]', 'new - no handles'); + + $self->testResult(sub {$oIoBuffered->timeout()}, 10, ' check timeout'); + $self->testResult(sub {$oIoBuffered->bufferMax()}, 2048, ' check buffer max'); + } + + ################################################################################################################################ + if ($self->begin('readLine() & writeLine()')) + { + my $oClient = $self->socketServer($strSocketFile, sub + { + my $oIoHandle = shift; + + my $tResponse = ''; + my $tData; + + # Ack after timeout + while (length($tResponse) != 1) {$oIoHandle->read(\$tResponse, 1)}; + + # Write 8 char line + $tResponse = ''; + $tData = "12345678\n"; + $oIoHandle->write(\$tData); + while (length($tResponse) != 1) {$oIoHandle->read(\$tResponse, 1)}; + + # Write 3 lines + $tResponse = ''; + $tData = "1\n2\n345678\n"; + $oIoHandle->write(\$tData); + while (length($tResponse) != 1) {$oIoHandle->read(\$tResponse, 1)}; + + # Write blank line + $tResponse = ''; + $tData = "\n"; + $oIoHandle->write(\$tData); + while (length($tResponse) != 1) {$oIoHandle->read(\$tResponse, 1)}; + + # Write char with no linefeed + $tResponse = ''; + $tData = "A"; + $oIoHandle->write(\$tData); + while (length($tResponse) != 1) {$oIoHandle->read(\$tResponse, 1)}; + + # Write linefeed + $tResponse = ''; + $tData = "\n"; + $oIoHandle->write(\$tData); + while (length($tResponse) != 1) {$oIoHandle->read(\$tResponse, 1)}; + }); + + #--------------------------------------------------------------------------------------------------------------------------- + my $oIoBuffered = $self->testResult( + sub {new pgBackRest::Common::Io::Buffered( + new pgBackRest::Common::Io::Handle('socket client', $oClient, $oClient), 1, 4)}, '[object]', 'open'); + + $self->testException( + sub {$oIoBuffered->readLine()}, ERROR_FILE_READ, 'unable to read line after 1 second(s) from socket client'); + + $oIoBuffered->writeLine(); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$oIoBuffered->readLine()}, '12345678', 'read 8 char line'); + $oIoBuffered->writeLine(); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$oIoBuffered->readLine()}, '1', 'read 1 char line'); + $self->testResult(sub {$oIoBuffered->readLine()}, '2', 'read 1 char line'); + $self->testResult(sub {$oIoBuffered->readLine()}, '345678', 'read 6 char line'); + $oIoBuffered->writeLine(); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$oIoBuffered->readLine()}, '', 'read blank line'); + $oIoBuffered->writeLine(); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$oIoBuffered->readLine(undef, false)}, undef, 'read ignoring error'); + + $self->testException( + sub {$oIoBuffered->readLine(undef, true)}, ERROR_FILE_READ, + 'unable to read line after 1 second(s) from socket client'); + + # Clear buffer so EOF tests pass + $oIoBuffered->writeLine(); + $oIoBuffered->readLine(); + $oIoBuffered->writeLine(); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException(sub {$oIoBuffered->readLine()}, ERROR_FILE_READ, 'unexpected EOF reading line from socket client'); + + $self->testException( + sub {$oIoBuffered->readLine(false)}, ERROR_FILE_READ, 'unexpected EOF reading line from socket client'); + + $self->testResult(sub {$oIoBuffered->readLine(true)}, undef, 'ignore EOF'); + } + + ################################################################################################################################ + if ($self->begin('read')) + { + my $tBuffer; + + my $oClient = $self->socketServer($strSocketFile, sub + { + my $oIoHandle = shift; + + my $tResponse = ''; + my $tData; + + # Ack after timeout + while (length($tResponse) != 1) {$oIoHandle->read(\$tResponse, 1)}; + + # Write mixed buffer + $tResponse = ''; + $tData = "123\n123\n1"; + $oIoHandle->write(\$tData); + while (length($tResponse) != 1) {$oIoHandle->read(\$tResponse, 1)}; + + # Write buffer + $tResponse = ''; + $tData = "23456789"; + $oIoHandle->write(\$tData); + + # Wait before writing the rest to force client to loop + usleep(500); + $tData = "0"; + $oIoHandle->write(\$tData); + while (length($tResponse) != 1) {$oIoHandle->read(\$tResponse, 1)}; + }); + + #--------------------------------------------------------------------------------------------------------------------------- + my $oIoBuffered = $self->testResult( + sub {new pgBackRest::Common::Io::Buffered( + new pgBackRest::Common::Io::Handle('socket client', $oClient, $oClient), 1, 8)}, '[object]', 'open'); + + $self->testException( + sub {$oIoBuffered->read(\$tBuffer, 1, true)}, ERROR_FILE_READ, + 'unable to read 1 byte(s) after 1 second(s) from socket client'); + + $self->testResult(sub {$oIoBuffered->read(\$tBuffer, 1)}, 0, ' read 0 char buffer'); + + $oIoBuffered->writeLine(); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$oIoBuffered->readLine()}, '123', ' read 3 char line'); + + undef($tBuffer); + $self->testResult(sub {$oIoBuffered->read(\$tBuffer, 1)}, 1, ' read 1 char buffer'); + $self->testResult(sub {$tBuffer}, '1', ' check 1 char buffer'); + + $self->testResult(sub {$oIoBuffered->read(\$tBuffer, 3)}, 3, ' read 3 char buffer'); + $self->testResult(sub {$tBuffer}, "123\n", ' check 3 char buffer'); + + $oIoBuffered->writeLine(); + + #--------------------------------------------------------------------------------------------------------------------------- + undef($tBuffer); + $self->testResult(sub {$oIoBuffered->read(\$tBuffer, 10)}, 10, ' read 10 char buffer'); + $self->testResult(sub {$tBuffer}, '1234567890', ' check 10 char buffer'); + + $oIoBuffered->writeLine(); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$oIoBuffered->read(\$tBuffer, 5)}, 0, ' expect EOF'); + + $self->testException( + sub {$oIoBuffered->read(\$tBuffer, 5, true)}, ERROR_FILE_READ, + 'unable to read 5 byte(s) due to EOF from socket client'); + } +} + +1; diff --git a/test/lib/pgBackRestTest/Module/Common/CommonIoHandleTest.pm b/test/lib/pgBackRestTest/Module/Common/CommonIoHandleTest.pm new file mode 100644 index 000000000..de4c94737 --- /dev/null +++ b/test/lib/pgBackRestTest/Module/Common/CommonIoHandleTest.pm @@ -0,0 +1,216 @@ +#################################################################################################################################### +# CommonIoHandleTest.pm - tests for Common::Io::Handle module +#################################################################################################################################### +package pgBackRestTest::Module::Common::CommonIoHandleTest; +use parent 'pgBackRestTest::Common::RunTest'; + +#################################################################################################################################### +# Perl includes +#################################################################################################################################### +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Fcntl qw(O_RDONLY O_WRONLY O_CREAT O_TRUNC O_NONBLOCK); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Io::Base; +use pgBackRest::Common::Io::Handle; +use pgBackRest::Common::Log; + +use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Common::RunTest; + +#################################################################################################################################### +# run +#################################################################################################################################### +sub run +{ + my $self = shift; + + # Test data + my $strFile = $self->testPath() . qw{/} . 'file.txt'; + my $strFileContent = 'TESTDATA'; + my $iFileLength = length($strFileContent); + my $iFileLengthHalf = int($iFileLength / 2); + + ################################################################################################################################ + if ($self->begin('new() & handleRead() & handleReadSet() & handleWrite() & handleWriteSet()')) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $oIoHandle = $self->testResult( + sub {new pgBackRest::Common::Io::Handle('test', undef, undef)}, '[object]', 'new - no handles'); + + $self->testResult(sub {$oIoHandle->id()}, 'test', ' check error msg'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$oIoHandle->handleReadSet(1)}, 1, ' set read handle'); + $self->testResult(sub {$oIoHandle->handleRead()}, 1, ' check read handle'); + $self->testResult(sub {$oIoHandle->handleWrite()}, undef, ' check write handle'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$oIoHandle->handleWriteSet(2)}, 2, ' set write handle'); + $self->testResult(sub {$oIoHandle->handleRead()}, 1, ' check read handle'); + $self->testResult(sub {$oIoHandle->handleWrite()}, 2, ' check write handle'); + + #--------------------------------------------------------------------------------------------------------------------------- + $oIoHandle = $self->testResult( + sub {new pgBackRest::Common::Io::Handle('test', 1, undef)}, '[object]', 'new - read handle'); + + $self->testResult(sub {$oIoHandle->handleRead()}, 1, ' check read handle'); + $self->testResult(sub {$oIoHandle->handleWrite()}, undef, ' check write handle'); + + #--------------------------------------------------------------------------------------------------------------------------- + $oIoHandle = $self->testResult( + sub {new pgBackRest::Common::Io::Handle('test', undef, 2)}, '[object]', 'new - write handle'); + + $self->testResult(sub {$oIoHandle->handleRead()}, undef, ' check read handle'); + $self->testResult(sub {$oIoHandle->handleWrite()}, 2, ' check write handle'); + + #--------------------------------------------------------------------------------------------------------------------------- + $oIoHandle = $self->testResult( + sub {new pgBackRest::Common::Io::Handle('test', 1, 2)}, '[object]', 'new - read/write handle'); + + $self->testResult(sub {$oIoHandle->handleRead()}, 1, ' check read handle'); + $self->testResult(sub {$oIoHandle->handleWrite()}, 2, ' check write handle'); + } + + ################################################################################################################################ + if ($self->begin('read()')) + { + my $tContent; + my $fhRead; + + #--------------------------------------------------------------------------------------------------------------------------- + executeTest("echo -n '${strFileContent}' | tee ${strFile}"); + + sysopen($fhRead, $strFile, O_RDONLY) + or confess &log(ERROR, "unable to open '${strFile}'"); + + my $oIoHandle = $self->testResult(sub {new pgBackRest::Common::Io::Handle("'$strFile'", $fhRead)}, '[object]', 'open'); + $self->testException( + sub {$oIoHandle->read(\$tContent, -1)}, ERROR_FILE_READ, "unable to read from '${strFile}': Negative length"); + + #--------------------------------------------------------------------------------------------------------------------------- + $tContent = undef; + + sysopen($fhRead, $strFile, O_RDONLY) + or confess &log(ERROR, "unable to open '${strFile}'"); + + $oIoHandle = $self->testResult(sub {new pgBackRest::Common::Io::Handle("'$strFile'", $fhRead)}, '[object]', 'open'); + + $self->testResult(sub {$oIoHandle->read(\$tContent, $iFileLengthHalf)}, $iFileLengthHalf, ' read part 1'); + $self->testResult($tContent, substr($strFileContent, 0, $iFileLengthHalf), ' check read'); + + $self->testResult( + sub {$oIoHandle->read( + \$tContent, $iFileLength - $iFileLengthHalf)}, $iFileLength - $iFileLengthHalf, ' read part 2'); + $self->testResult($tContent, $strFileContent, ' check read'); + + $self->testResult(sub {$oIoHandle->read(\$tContent, 1)}, 0, ' eof'); + } + + ################################################################################################################################ + if ($self->begin('write()')) + { + my $tContent; + my $fhRead; + my $fhWrite; + + #--------------------------------------------------------------------------------------------------------------------------- + sysopen($fhWrite, $strFile, O_WRONLY | O_CREAT | O_TRUNC) + or confess &log(ERROR, "unable to open '${strFile}'"); + + my $oIoHandle = $self->testResult( + sub {new pgBackRest::Common::Io::Handle("'$strFile'", undef, $fhWrite)}, '[object]', 'open write'); + + $self->testException( + sub {$oIoHandle->write(undef)}, ERROR_FILE_WRITE, + "unable to write to '${strFile}': Can't use an undefined value as a SCALAR reference"); + + #--------------------------------------------------------------------------------------------------------------------------- + $tContent = substr($strFileContent, 0, $iFileLengthHalf); + $self->testResult(sub {$oIoHandle->write(\$tContent)}, $iFileLengthHalf, ' write part 1'); + $self->testResult(sub {$oIoHandle->size()}, $iFileLengthHalf, ' check part 1 size'); + + $tContent = substr($strFileContent, $iFileLengthHalf); + $self->testResult(sub {$oIoHandle->write(\$tContent)}, $iFileLength - $iFileLengthHalf, ' write part 2'); + $self->testResult(sub {$oIoHandle->size()}, $iFileLength, ' check part 2 size'); + $self->testResult(sub {$oIoHandle->close()}, true, ' close'); + + sysopen($fhRead, $strFile, O_RDONLY) + or confess &log(ERROR, "unable to open '${strFile}'"); + + $oIoHandle = $self->testResult(sub {new pgBackRest::Common::Io::Handle("'$strFile'", $fhRead)}, '[object]', 'open read'); + + $tContent = undef; + $self->testResult(sub {$oIoHandle->read(\$tContent, $iFileLength)}, $iFileLength, ' read'); + $self->testResult($tContent, $strFileContent, ' check write content'); + } + + ################################################################################################################################ + if ($self->begin('result() & resultSet()')) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $oIoHandle = $self->testResult( + sub {new pgBackRest::Common::Io::Handle('test', undef, undef)}, '[object]', 'new - no handles'); + + $self->testResult(sub {$oIoHandle->resultSet('Module::1', 1)}, 1, ' set int result'); + $self->testResult(sub {$oIoHandle->resultSet('Module::2', {value => 2})}, '{value => 2}', ' set hash result'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$oIoHandle->result('Module::1')}, 1, ' check int result'); + $self->testResult(sub {$oIoHandle->result('Module::2')}, '{value => 2}', ' check hash result'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$oIoHandle->{rhResult}}, '{Module::1 => 1, Module::2 => {value => 2}}', ' check all results'); + } + + ################################################################################################################################ + if ($self->begin('isA()')) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $oIoHandle = $self->testResult( + sub {new pgBackRest::Common::Io::Handle('test', undef, undef)}, '[object]', 'new - no handles'); + + $self->testResult( + sub {$oIoHandle->isA()}, '(' . COMMON_IO_HANDLE . ', ' . COMMON_IO_BASE . ')', ' check isA'); + } + + ################################################################################################################################ + if ($self->begin('className()')) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $oIoHandle = $self->testResult( + sub {new pgBackRest::Common::Io::Handle('test', undef, undef)}, '[object]', 'new - no handles'); + + $self->testResult(sub {$oIoHandle->className()}, COMMON_IO_HANDLE, ' check class name'); + } + + ################################################################################################################################ + if ($self->begin('close()')) + { + my $tContent; + my $fhRead; + + #--------------------------------------------------------------------------------------------------------------------------- + executeTest("echo -n '${strFileContent}' | tee ${strFile}"); + + sysopen($fhRead, $strFile, O_RDONLY) + or confess &log(ERROR, "unable to open '${strFile}'"); + + my $oIoHandle = $self->testResult(sub {new pgBackRest::Common::Io::Handle("'$strFile'", $fhRead)}, '[object]', 'open read'); + $self->testResult(sub {$oIoHandle->read(\$tContent, $iFileLengthHalf)}, $iFileLengthHalf, ' read'); + $self->testResult(sub {$oIoHandle->close()}, true, ' close'); + + $self->testResult(sub {$oIoHandle->result(COMMON_IO_HANDLE)}, $iFileLengthHalf, ' check result'); + + # Destroy and to make sure close runs again + undef($oIoHandle); + } +} + +1; diff --git a/test/lib/pgBackRestTest/Module/File/FileLinkTest.pm b/test/lib/pgBackRestTest/Module/Common/CommonIoProcessTest.pm similarity index 55% rename from test/lib/pgBackRestTest/Module/File/FileLinkTest.pm rename to test/lib/pgBackRestTest/Module/Common/CommonIoProcessTest.pm index 5eca13c34..9099509da 100644 --- a/test/lib/pgBackRestTest/Module/File/FileLinkTest.pm +++ b/test/lib/pgBackRestTest/Module/Common/CommonIoProcessTest.pm @@ -1,8 +1,8 @@ #################################################################################################################################### -# FileLinkTest.pm - Tests for FileCommon::fileLinkDestination +# CommonIoProcessTest.pm - tests for Common::Io::Process module #################################################################################################################################### -package pgBackRestTest::Module::File::FileLinkTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; +package pgBackRestTest::Module::Common::CommonIoProcessTest; +use parent 'pgBackRestTest::Common::RunTest'; #################################################################################################################################### # Perl includes @@ -12,12 +12,10 @@ use warnings FATAL => qw(all); use Carp qw(confess); use English '-no_match_vars'; -use Fcntl qw(:mode); -use File::stat; - use pgBackRest::Common::Exception; +use pgBackRest::Common::Io::Buffered; +use pgBackRest::Common::Io::Process; use pgBackRest::Common::Log; -use pgBackRest::FileCommon; use pgBackRestTest::Common::ExecuteTest; use pgBackRestTest::Common::RunTest; @@ -29,29 +27,32 @@ sub run { my $self = shift; + # Test data + my $strFile = $self->testPath() . qw{/} . 'file.txt'; + my $strFileContent = 'TESTDATA'; + ################################################################################################################################ - if ($self->begin("FileCommon::fileLinkDestination()")) + if ($self->begin('new() & processId()')) { #--------------------------------------------------------------------------------------------------------------------------- - my $strTestLink = $self->testPath() . '/public_dir_link'; - - $self->testException( - sub {fileLinkDestination($strTestLink)}, ERROR_FILE_MISSING, - "unable to get destination for link ${strTestLink}: No such file or directory"); + my $oIoProcess = $self->testResult(sub { + new pgBackRest::Common::Io::Process( + new pgBackRest::Common::Io::Buffered( + new pgBackRest::Common::Io::Handle('test'), 1, 32), "echo '${strFileContent}'")}, '[object]', 'new - echo'); + $self->testResult(sub {defined($oIoProcess->processId())}, true, ' process id defined'); + } + ################################################################################################################################ + if ($self->begin('close() & error()')) + { #--------------------------------------------------------------------------------------------------------------------------- - my $strTestPath = $self->testPath() . '/public_dir'; - filePathCreate($strTestPath); - + my $oIoProcess = + new pgBackRest::Common::Io::Process( + new pgBackRest::Common::Io::Buffered( + new pgBackRest::Common::Io::Handle('test'), 1, 32), "echo '${strFileContent}'"); + $oIoProcess->close(); $self->testException( - sub {fileLinkDestination($strTestPath)}, ERROR_FILE_OPEN, - "unable to get destination for link ${strTestPath}: Invalid argument"); - - #--------------------------------------------------------------------------------------------------------------------------- - symlink($strTestPath, $strTestLink) - or confess &log(ERROR, "unable to create symlink from ${strTestPath} to ${strTestLink}"); - - $self->testResult(sub {fileLinkDestination($strTestLink)}, $strTestPath, 'get link destination'); + sub {$oIoProcess->error()}, ERROR_ASSERT, 'cannot call error() after process has been closed'); } } diff --git a/test/lib/pgBackRestTest/Module/Config/ConfigConfigTest.pm b/test/lib/pgBackRestTest/Module/Config/ConfigConfigTest.pm index 00235d89d..e033f1af4 100644 --- a/test/lib/pgBackRestTest/Module/Config/ConfigConfigTest.pm +++ b/test/lib/pgBackRestTest/Module/Config/ConfigConfigTest.pm @@ -15,7 +15,6 @@ use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Config::Config; -use pgBackRest::FileCommon; use pgBackRestTest::Common::RunTest; @@ -72,7 +71,7 @@ sub run { $oConfig = {}; $$oConfig{$self->stanza() . ':' . &CMD_BACKUP}{&OPTION_PROCESS_MAX} = 2; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -86,7 +85,7 @@ sub run { $oConfig = {}; $$oConfig{$self->stanza()}{&OPTION_PROCESS_MAX} = 3; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -100,7 +99,7 @@ sub run { $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL . ':' . &CMD_BACKUP}{'thread-max'} = 2; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -114,7 +113,7 @@ sub run { $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL}{&OPTION_PROCESS_MAX} = 5; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -127,7 +126,7 @@ sub run if ($self->begin('default - option ' . OPTION_PROCESS_MAX)) { $oConfig = {}; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -141,7 +140,7 @@ sub run { $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL}{&OPTION_PROCESS_MAX} = 9; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -156,7 +155,7 @@ sub run { $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL . ':' . &CMD_BACKUP}{&OPTION_HARDLINK} = 'Y'; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -169,7 +168,7 @@ sub run { $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL}{&OPTION_LOG_LEVEL_CONSOLE} = BOGUS; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -182,7 +181,7 @@ sub run { $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL}{&OPTION_LOG_LEVEL_CONSOLE} = lc(INFO); - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -203,7 +202,7 @@ sub run { $oConfig = {}; $$oConfig{$self->stanza() . ':' . &CMD_EXPIRE}{&OPTION_RETENTION_FULL} = 2; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_CONFIG, $strConfigFile); @@ -216,7 +215,7 @@ sub run { $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL . ':' . &CMD_BACKUP}{&OPTION_COMPRESS} = 'n'; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -230,7 +229,7 @@ sub run { $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL . ':' . &CMD_RESTORE}{&OPTION_RESTORE_RECOVERY_OPTION} = 'bogus='; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -243,7 +242,7 @@ sub run { $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL . ':' . &CMD_RESTORE}{&OPTION_RESTORE_RECOVERY_OPTION} = '=bogus'; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -257,7 +256,7 @@ sub run $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL . ':' . &CMD_RESTORE}{&OPTION_RESTORE_RECOVERY_OPTION} = 'archive-command=/path/to/pgbackrest'; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -271,7 +270,7 @@ sub run { $oConfig = {}; $$oConfig{$self->stanza()}{&OPTION_RESTORE_RECOVERY_OPTION} = ['standby-mode=on', 'a=b']; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -286,7 +285,7 @@ sub run { $oConfig = {}; $$oConfig{$self->stanza()}{&OPTION_DB_PATH} = '/path/to/db'; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_CONFIG, $strConfigFile); @@ -299,7 +298,7 @@ sub run { $oConfig = {}; $$oConfig{$self->stanza()}{&OPTION_DB_PATH} = '/path/to/db'; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_CONFIG, $strConfigFile); @@ -314,7 +313,7 @@ sub run { $oConfig = {}; $$oConfig{$self->stanza()}{&OPTION_DB_PATH} = '/path/to/db'; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_CONFIG, $strConfigFile); @@ -327,7 +326,7 @@ sub run { $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL}{&OPTION_REPO_PATH} = '/repo'; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); @@ -341,7 +340,7 @@ sub run { $oConfig = {}; $$oConfig{&CONFIG_SECTION_GLOBAL}{&OPTION_REPO_PATH} = ['/repo', '/repo2']; - fileStringWrite($strConfigFile, iniRender($oConfig, true)); + storageTest()->put($strConfigFile, iniRender($oConfig, true)); $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, '/db'); diff --git a/test/lib/pgBackRestTest/Module/Config/ConfigOptionTest.pm b/test/lib/pgBackRestTest/Module/Config/ConfigOptionTest.pm index 2254e4dd7..4df02d8de 100644 --- a/test/lib/pgBackRestTest/Module/Config/ConfigOptionTest.pm +++ b/test/lib/pgBackRestTest/Module/Config/ConfigOptionTest.pm @@ -220,12 +220,12 @@ sub run $self->configLoadExpect($oOption, CMD_RESTORE); } - if ($self->begin('invalid ' . OPTION_BUFFER_SIZE)) + if ($self->begin('invalid ' . OPTION_COMPRESS_LEVEL)) { $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); - $self->optionSetTest($oOption, OPTION_BUFFER_SIZE, '512'); + $self->optionSetTest($oOption, OPTION_COMPRESS_LEVEL, '12'); - $self->configLoadExpect($oOption, CMD_RESTORE, ERROR_OPTION_INVALID_RANGE, '512', OPTION_BUFFER_SIZE); + $self->configLoadExpect($oOption, CMD_RESTORE, ERROR_OPTION_INVALID_RANGE, '12', OPTION_COMPRESS_LEVEL); } if ($self->begin(CMD_BACKUP . ' invalid value ' . OPTION_RETENTION_ARCHIVE_TYPE)) diff --git a/test/lib/pgBackRestTest/Module/Config/ConfigUnitTest.pm b/test/lib/pgBackRestTest/Module/Config/ConfigUnitTest.pm index 4fa3e7906..778f46402 100644 --- a/test/lib/pgBackRestTest/Module/Config/ConfigUnitTest.pm +++ b/test/lib/pgBackRestTest/Module/Config/ConfigUnitTest.pm @@ -28,7 +28,7 @@ sub run my $oConfig = {}; my $strConfigFile = $self->testPath() . '/pgbackrest.conf'; optionSet(OPTION_CONFIG, $strConfigFile, true); - commandSet(CMD_LOCAL); + commandSet(CMD_ARCHIVE_GET); if ($self->begin('Config::configFileValidate()')) { diff --git a/test/lib/pgBackRestTest/Module/Expire/ExpireExpireTest.pm b/test/lib/pgBackRestTest/Module/Expire/ExpireExpireTest.pm index 2694363fe..f02b33f62 100644 --- a/test/lib/pgBackRestTest/Module/Expire/ExpireExpireTest.pm +++ b/test/lib/pgBackRestTest/Module/Expire/ExpireExpireTest.pm @@ -23,14 +23,13 @@ use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; use pgBackRest::Expire; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; -use pgBackRestTest::Env::HostEnvTest; use pgBackRestTest::Common::ExecuteTest; use pgBackRestTest::Common::RunTest; use pgBackRestTest::Env::ExpireEnvTest; +use pgBackRestTest::Env::HostEnvTest; #################################################################################################################################### # initStanzaOption @@ -68,14 +67,14 @@ sub run if ($self->begin("local")) { # Create hosts, file object, and config - my ($oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile) = $self->setup(true, $self->expect()); + my ($oHostDbMaster, $oHostDbStandby, $oHostBackup) = $self->setup(true, $self->expect()); $self->initStanzaOption($oOption, $oHostDbMaster->dbBasePath(), $oHostBackup->{strRepoPath}); $self->configLoadExpect(dclone($oOption), CMD_STANZA_CREATE); # Create the test object - my $oExpireTest = new pgBackRestTest::Env::ExpireEnvTest($oHostBackup, $self->backrestExe(), $oFile, $self->expect(), - $self); + my $oExpireTest = new pgBackRestTest::Env::ExpireEnvTest( + $oHostBackup, $self->backrestExe(), storageRepo(), $self->expect(), $self); $oExpireTest->stanzaCreate($self->stanza(), PG_VERSION_92); @@ -165,14 +164,14 @@ sub run if ($self->begin("Expire::stanzaUpgrade")) { # Create hosts, file object, and config - my ($oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile) = $self->setup(true, $self->expect()); + my ($oHostDbMaster, $oHostDbStandby, $oHostBackup) = $self->setup(true, $self->expect()); $self->initStanzaOption($oOption, $oHostDbMaster->dbBasePath(), $oHostBackup->{strRepoPath}); $self->configLoadExpect(dclone($oOption), CMD_STANZA_CREATE); # Create the test object - my $oExpireTest = new pgBackRestTest::Env::ExpireEnvTest($oHostBackup, $self->backrestExe(), $oFile, $self->expect(), - $self); + my $oExpireTest = new pgBackRestTest::Env::ExpireEnvTest( + $oHostBackup, $self->backrestExe(), storageRepo(), $self->expect(), $self); $oExpireTest->stanzaCreate($self->stanza(), PG_VERSION_92); @@ -226,7 +225,7 @@ sub run my $oExpire = new pgBackRest::Expire(); # Mismatched version - $oHostBackup->infoMunge($oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE), + $oHostBackup->infoMunge(storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE), {&INFO_ARCHIVE_SECTION_DB => {&INFO_ARCHIVE_KEY_DB_VERSION => PG_VERSION_93, &INFO_ARCHIVE_KEY_DB_SYSTEM_ID => WAL_VERSION_95_SYS_ID}, &INFO_ARCHIVE_SECTION_DB_HISTORY => @@ -239,10 +238,10 @@ sub run "HINT: has a stanza-upgrade been performed?"); # Restore the info file - $oHostBackup->infoRestore($oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE)); + $oHostBackup->infoRestore(storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE)); # Mismatched system ID - $oHostBackup->infoMunge($oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE), + $oHostBackup->infoMunge(storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE), {&INFO_ARCHIVE_SECTION_DB => {&INFO_ARCHIVE_KEY_DB_SYSTEM_ID => 6999999999999999999}, &INFO_ARCHIVE_SECTION_DB_HISTORY => @@ -255,7 +254,7 @@ sub run "HINT: has a stanza-upgrade been performed?"); # Restore the info file - $oHostBackup->infoRestore($oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE)); + $oHostBackup->infoRestore(storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE)); } } diff --git a/test/lib/pgBackRestTest/Module/File/FileCommonTest.pm b/test/lib/pgBackRestTest/Module/File/FileCommonTest.pm deleted file mode 100644 index 1ee42ee7a..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileCommonTest.pm +++ /dev/null @@ -1,125 +0,0 @@ -#################################################################################################################################### -# FileCommonTest.pm - Common code for File tests -#################################################################################################################################### -package pgBackRestTest::Module::File::FileCommonTest; -use parent 'pgBackRestTest::Common::RunTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use pgBackRest::Common::Log; -use pgBackRest::Config::Config; -use pgBackRest::FileCommon; -use pgBackRest::Protocol::Common::Common; -use pgBackRest::Protocol::Remote::Master; - -use pgBackRestTest::Env::Host::HostBackupTest; -use pgBackRestTest::Common::ExecuteTest; - -#################################################################################################################################### -# initModule -# -# Common objects and variables used by all tests. -#################################################################################################################################### -sub initModule -{ - my $self = shift; - - # Create the repo path so the remote won't complain that it's missing - my $strRepoPath = $self->testPath() . '/repo'; - - mkdir($strRepoPath, oct('0770')) - or confess "Unable to create repo directory: ${strRepoPath}"; - - # Create local - $self->{oLocal} = new pgBackRest::Protocol::Common::Common( - 262144, - 1, - OPTION_DEFAULT_COMPRESS_LEVEL_NETWORK, - HOST_PROTOCOL_TIMEOUT); - - # Create remote - $self->{oRemote} = new pgBackRest::Protocol::Remote::Master( - BACKUP, - OPTION_DEFAULT_CMD_SSH, - $self->backrestExeOriginal() . ' --stanza=' . $self->stanza() . - " --type=backup --repo-path=${strRepoPath} --no-config --command=test remote", - 262144, - OPTION_DEFAULT_COMPRESS_LEVEL, - OPTION_DEFAULT_COMPRESS_LEVEL_NETWORK, - $self->host(), - $self->backrestUser(), - HOST_PROTOCOL_TIMEOUT); - - rmdir($strRepoPath) - or confess "Unable to remove repo directory: ${strRepoPath}"; -} - -#################################################################################################################################### -# cleanModule -# -# Close objects created for tests. -#################################################################################################################################### -sub cleanModule -{ - my $self = shift; - - $self->remote()->close(); -} - -#################################################################################################################################### -# setup -# -# Setup directories for file tests. -#################################################################################################################################### -sub setup -{ - my $self = shift; - my $bRemote = shift; - my $bPrivate = shift; - - # Remove the backrest private directory - if (fileExists($self->testPath() . '/private')) - { - executeTest( - 'ssh ' . $self->backrestUser() . '\@' . $self->host() . ' rm -rf ' . $self->testPath() . '/private', - {bSuppressStdErr => true}); - } - - # Remove contents of the test directory - executeTest('rm -rf ' . $self->testPath() . '/*'); - - # Create the private directories - if (defined($bPrivate) && $bPrivate) - { - executeTest( - 'ssh ' . $self->backrestUser() . '\@' . $self->host() . ' mkdir -m 700 ' . $self->testPath() . '/backrest_private', - {bSuppressStdErr => true}); - - executeTest('mkdir -m 700 ' . $self->testPath() . '/user_private'); - } - - # Create the file object - my $oFile = new pgBackRest::File - ( - $self->stanza(), - $self->testPath(), - $bRemote ? $self->remote() : $self->local() - ); - - return $oFile; -} - -#################################################################################################################################### -# Getters -#################################################################################################################################### -sub host {return '127.0.0.1'} -sub local {return shift->{oLocal}} -sub remote {return shift->{oRemote}} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileCompressTest.pm b/test/lib/pgBackRestTest/Module/File/FileCompressTest.pm deleted file mode 100644 index 3bfe925f6..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileCompressTest.pm +++ /dev/null @@ -1,101 +0,0 @@ -#################################################################################################################################### -# FileCompressTest.pm - Tests for File->compress() -#################################################################################################################################### -package pgBackRestTest::Module::File::FileCompressTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use pgBackRest::Common::Log; -use pgBackRest::File; - -use pgBackRestTest::Common::ExecuteTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - # Loop through local/remote ??? enable remote tests and have them throw an error - foreach my $bRemote (false) - { - # Loop through exists - foreach my $bExists (false, true) - { - # Loop through error - foreach my $bError (false, true) - { - if (!$self->begin("rmt ${bRemote}, exists ${bExists}, err ${bError}")) {next} - - # Setup test directory and get file object - my $oFile = $self->setup($bRemote, $bError); - - my $strFile = $self->testPath() . '/test.txt'; - my $strSourceHash; - my $iSourceSize; - - if ($bError) - { - $strFile = $self->testPath() . '/' . ($bRemote ? 'user' : 'backrest') . '_private/test.txt'; - } - elsif ($bExists) - { - executeTest("echo 'TESTDATA' > ${strFile}"); - ($strSourceHash, $iSourceSize) = $oFile->hashSize(PATH_BACKUP_ABSOLUTE, $strFile); - } - - # Execute in eval in case of error - eval - { - $oFile->compress(PATH_BACKUP_ABSOLUTE, $strFile); - return true; - } - or do - { - if (!$bExists || $bError) - { - next; - } - - confess $EVAL_ERROR; - }; - - if (!$bExists || $bError) - { - confess 'expected error'; - } - - my $strDestinationFile = $strFile . '.gz'; - - if (-e $strFile) - { - confess 'source file still exists'; - } - - unless (-e $strDestinationFile) - { - confess 'file was not compressed'; - } - - executeTest("gzip -d ${strDestinationFile}"); - - my ($strDestinationHash, $iDestinationSize) = $oFile->hashSize(PATH_BACKUP_ABSOLUTE, $strFile); - - if ($strSourceHash ne $strDestinationHash) - { - confess "source ${strSourceHash} and destination ${strDestinationHash} file hashes do not match"; - } - } - } - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileCopyTest.pm b/test/lib/pgBackRestTest/Module/File/FileCopyTest.pm deleted file mode 100644 index 53e628b1c..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileCopyTest.pm +++ /dev/null @@ -1,244 +0,0 @@ -#################################################################################################################################### -# FileCopyTest.pm - Tests for File->copy() -#################################################################################################################################### -package pgBackRestTest::Module::File::FileCopyTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use pgBackRest::Common::Exception; -use pgBackRest::Common::Log; -use pgBackRest::File; - -use pgBackRestTest::Common::ExecuteTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - # Loop through small/large - for (my $iLarge = 0; $iLarge <= 3; $iLarge++) - { - # Loop through possible remotes - foreach my $strRemote ($iLarge ? (undef, 'db') : (undef, 'backup', 'db')) - { - # Loop through source path types - foreach my $strSourcePathType ($iLarge ? (PATH_BACKUP_ABSOLUTE) : (PATH_BACKUP_ABSOLUTE, PATH_DB_ABSOLUTE)) - { - # Loop through destination path types - foreach my $strDestinationPathType ($iLarge ? (PATH_DB_ABSOLUTE) : (PATH_BACKUP_ABSOLUTE, PATH_DB_ABSOLUTE)) - { - # Loop through source missing/present - foreach my $bSourceMissing ($iLarge ? (false) : (false, true)) - { - # Loop through source ignore/require - foreach my $bSourceIgnoreMissing ($bSourceMissing ? (false, true) : (false)) - { - # Loop through checksum append - foreach my $bChecksumAppend ($bSourceMissing || $iLarge ? (false) : (false, true)) - { - # Loop through source compression - foreach my $bSourceCompressed ($bSourceMissing ? (false) : (false, true)) - { - # Loop through destination compression - foreach my $bDestinationCompress ($bSourceMissing ? (false) : (false, true)) - { - my $strSourcePath = $strSourcePathType eq PATH_DB_ABSOLUTE ? 'db' : 'backup'; - my $strDestinationPath = $strDestinationPathType eq PATH_DB_ABSOLUTE ? 'db' : 'backup'; - - if (!$self->begin( - "lrg ${iLarge}, rmt " . - (defined($strRemote) && ($strRemote eq $strSourcePath || $strRemote eq $strDestinationPath) ? 1 : 0) . - ', srcpth ' . (defined($strRemote) && $strRemote eq $strSourcePath ? 'rmt' : 'lcl') . - ":${strSourcePath}, srcmiss ${bSourceMissing}, srcignmiss ${bSourceIgnoreMissing}, srccmp $bSourceCompressed, " . - 'dstpth ' . (defined($strRemote) && $strRemote eq $strDestinationPath ? 'rmt' : 'lcl') . - ":${strDestinationPath}, chkapp ${bChecksumAppend}, dstcmp $bDestinationCompress")) {next} - - # Setup test directory and get file object - my $oFile = $self->setup(defined($strRemote), false); - executeTest('mkdir ' . $self->testPath() . '/backup'); - executeTest('mkdir ' . $self->testPath() . '/db'); - - my $strSourceFile = $self->testPath() . "/${strSourcePath}/test-source"; - my $strDestinationFile = $self->testPath() . "/${strDestinationPath}/test-destination"; - - my $strCopyHash; - my $iCopySize; - - # Create the compressed or uncompressed test file - my $strSourceHash; - my $iSourceSize; - - if (!$bSourceMissing) - { - if ($iLarge) - { - $strSourceFile .= '.bin'; - $strDestinationFile .= '.bin'; - - if ($iLarge < 3) - { - executeTest('cp ' . $self->dataPath() . "/filecopy.archive${iLarge}.bin ${strSourceFile}"); - } - else - { - for (my $iTableSizeIdx = 0; $iTableSizeIdx < 25; $iTableSizeIdx++) - { - executeTest('cat ' . $self->dataPath() . "/filecopy.table.bin >> ${strSourceFile}"); - } - } - } - else - { - $strSourceFile .= '.txt'; - $strDestinationFile .= '.txt'; - - system("echo 'TESTDATA' > ${strSourceFile}"); - } - - if ($iLarge == 1) - { - $strSourceHash = '4518a0fdf41d796760b384a358270d4682589820'; - $iSourceSize = 16777216; - } - elsif ($iLarge == 2) - { - $strSourceHash = '1c7e00fd09b9dd11fc2966590b3e3274645dd031'; - $iSourceSize = 16777216; - } - elsif ($iLarge == 3) - { - $strSourceHash = 'b2055a6ba15bf44359c18fbbf23c68b50a670eb0'; - $iSourceSize = 26214400; - } - else - { - $strSourceHash = '06364afe79d801433188262478a76d19777ef351'; - $iSourceSize = 9; - } - - if ($bSourceCompressed) - { - system("gzip ${strSourceFile}"); - $strSourceFile .= '.gz'; - } - } - - if ($bDestinationCompress) - { - $strDestinationFile .= '.gz'; - } - - # Run file copy in an eval block because some errors are expected - my $bReturn; - - eval - { - ($bReturn, $strCopyHash, $iCopySize) = - $oFile->copy($strSourcePathType, $strSourceFile, - $strDestinationPathType, $strDestinationFile, - $bSourceCompressed, $bDestinationCompress, - $bSourceIgnoreMissing, undef, '0770', false, undef, undef, - $bChecksumAppend); - - return true; - } - # Check for errors after copy - or do - { - my $oException = $EVAL_ERROR; - - if (isException($oException)) - { - if ($bSourceMissing && !$bSourceIgnoreMissing) - { - next; - } - - confess $oException; - } - - confess $oException; - }; - - if ($bSourceMissing) - { - if ($bSourceIgnoreMissing) - { - if ($bReturn) - { - confess 'copy() returned ' . $bReturn . ' when ignore missing set'; - } - - next; - } - - confess 'expected source file missing error'; - } - - if (!defined($strCopyHash)) - { - confess 'copy hash must be defined'; - } - - if ($bChecksumAppend) - { - if ($bDestinationCompress) - { - $strDestinationFile = - substr($strDestinationFile, 0, length($strDestinationFile) -3) . "-${strSourceHash}.gz"; - } - else - { - $strDestinationFile .= '-' . $strSourceHash; - } - } - - unless (-e $strDestinationFile) - { - confess "could not find destination file ${strDestinationFile}"; - } - - my $strDestinationTest = $strDestinationFile; - - if ($bDestinationCompress) - { - $strDestinationTest = substr($strDestinationFile, 0, length($strDestinationFile) - 3) . '.test'; - - system("gzip -dc ${strDestinationFile} > ${strDestinationTest}") == 0 - or die "could not decompress ${strDestinationFile}"; - } - - my ($strDestinationHash, $iDestinationSize) = $oFile->hashSize(PATH_ABSOLUTE, $strDestinationTest); - - if ($strSourceHash ne $strDestinationHash || $strSourceHash ne $strCopyHash) - { - confess - "source ${strSourceHash}, copy ${strCopyHash} and destination ${strDestinationHash} file hashes do not match"; - } - - if ($iSourceSize != $iDestinationSize || $iSourceSize != $iCopySize) - { - confess "source ${iSourceSize}, copy ${iCopySize} and destination ${iDestinationSize} sizes do not match"; - } - } - } - } - } - } - } - } - } - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileExistsTest.pm b/test/lib/pgBackRestTest/Module/File/FileExistsTest.pm deleted file mode 100644 index 4bafdb33d..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileExistsTest.pm +++ /dev/null @@ -1,91 +0,0 @@ -#################################################################################################################################### -# FileExistsTest.pm - Tests for File->exists() -#################################################################################################################################### -package pgBackRestTest::Module::File::FileExistsTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use pgBackRest::Common::Exception; -use pgBackRest::Common::Log; -use pgBackRest::File; - -use pgBackRestTest::Common::ExecuteTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - # Loop through local/remote - foreach my $bRemote (false, true) - { - # Loop through exists - foreach my $bExists (false, true) - { - # Loop through exists - foreach my $bError ($bExists ? (false, true) : (false)) - { - if (!$self->begin("rmt ${bRemote}, err ${bError}, exists ${bExists}")) {next} - - # Setup test directory and get file object - my $oFile = $self->setup($bRemote, $bError); - - my $strFile = $self->testPath() . '/test.txt'; - - if ($bError) - { - $strFile = $self->testPath() . '/private/test.txt'; - } - elsif ($bExists) - { - executeTest("echo 'TESTDATA' > ${strFile}"); - } - - # Execute in eval in case of error - eval - { - if ($oFile->exists(PATH_BACKUP_ABSOLUTE, $strFile) != $bExists) - { - confess "bExists is set to ${bExists}, but exists() returned " . !$bExists; - } - - return true; - } - or do - { - my $oException = $@; - my $iCode; - my $strMessage; - - if (isException($oException)) - { - $iCode = $oException->code(); - $strMessage = $oException->message(); - } - else - { - $strMessage = $oException; - } - - if ($bError) - { - next; - } - - confess 'error raised: ' . $strMessage . "\n"; - }; - } - } - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileHashTest.pm b/test/lib/pgBackRestTest/Module/File/FileHashTest.pm deleted file mode 100644 index 8207096cb..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileHashTest.pm +++ /dev/null @@ -1,100 +0,0 @@ -#################################################################################################################################### -# FileHashTest.pm - Tests for File->hash() -#################################################################################################################################### -package pgBackRestTest::Module::File::FileHashTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use pgBackRest::Common::Log; -use pgBackRest::File; - -use pgBackRestTest::Common::ExecuteTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - # Loop through local/remote - foreach my $bRemote (false, true) - { - # Loop through error - foreach my $bError (false, true) - { - # Loop through exists - foreach my $bExists (false, true) - { - # Loop through exists - foreach my $bCompressed (false, true) - { - if (!$self->begin("rmt ${bRemote}, err ${bError}, exists ${bExists}, cmp ${bCompressed}")) {next} - - # Setup test directory and get file object - my $oFile = $self->setup($bRemote, $bError); - - my $strFile = $self->testPath() . '/test.txt'; - - if ($bError) - { - $strFile = $self->testPath() . '/' . ($bRemote ? 'user' : 'backrest') . '_private/test.txt'; - } - elsif (!$bExists) - { - $strFile = $self->testPath() . '/error.txt'; - } - else - { - executeTest("echo 'TESTDATA' > ${strFile}"); - - if ($bCompressed && !$bRemote) - { - $oFile->compress(PATH_BACKUP_ABSOLUTE, $strFile); - $strFile = $strFile . '.gz'; - } - } - - # Execute in eval in case of error - my $strHash; - my $iSize; - my $bErrorExpected = !$bExists || $bError || $bRemote; - - eval - { - ($strHash, $iSize) = $oFile->hashSize(PATH_BACKUP_ABSOLUTE, $strFile, $bCompressed); - return true; - } - or do - { - if ($bErrorExpected) - { - next; - } - - confess $EVAL_ERROR; - }; - - if ($bErrorExpected) - { - confess 'error was expected'; - } - - if ($strHash ne '06364afe79d801433188262478a76d19777ef351') - { - confess 'hashes do not match'; - } - } - } - } - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileListTest.pm b/test/lib/pgBackRestTest/Module/File/FileListTest.pm deleted file mode 100644 index 192433caf..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileListTest.pm +++ /dev/null @@ -1,124 +0,0 @@ -#################################################################################################################################### -# FileListTest.pm - Tests for File->list() -#################################################################################################################################### -package pgBackRestTest::Module::File::FileListTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use pgBackRest::Common::Log; -use pgBackRest::File; - -use pgBackRestTest::Common::ExecuteTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - # Loop through local/remote - foreach my $bRemote (false, true) - { - # Loop through sort - foreach my $strSort ('reverse', undef) - { - # Loop through expression - foreach my $strExpression (undef, "^test2\\..*\$", "^du\$") - { - # Loop through exists - foreach my $bExists (false, true) - { - # Loop through ignore missing - for (my $bIgnoreMissing = false; $bIgnoreMissing <= $bExists; $bIgnoreMissing++) - { - # Loop through error - foreach my $bError (false, true) - { - if (!$self->begin( - "rmt ${bRemote}, err ${bError}, exist ${bExists}, ignmis ${bIgnoreMissing}, " . - 'exp ' . (defined($strExpression) ? $strExpression : '[undef]') . ', ' . - 'srt ' . (defined($strSort) ? $strSort : '[undef]'))) {next} - - # Setup test directory and get file object - my $oFile = $self->setup($bRemote, $bError); - - my $strPath = $self->testPath(); - - if ($bError) - { - $strPath = $self->testPath() . '/' . ($bRemote ? 'user' : 'backrest') . '_private'; - } - elsif (!$bExists) - { - $strPath = $self->testPath() . '/error'; - } - else - { - executeTest("echo 'TESTDATA' > ${strPath}/test.txt"); - executeTest("echo 'TESTDATA2' > ${strPath}/test2.txt"); - } - - my @stryFileCompare = split(/\n/, "test.txt\ntest2.txt"); - - # Execute in eval in case of error - my @stryFileList; - my $bErrorExpected = (!$bExists && !$bIgnoreMissing) || $bError; - - eval - { - @stryFileList = $oFile->list( - PATH_BACKUP_ABSOLUTE, $strPath, - {strExpression => $strExpression, strSortOrder => $strSort, bIgnoreMissing => $bIgnoreMissing}); - return true; - } - or do - { - if ($bErrorExpected) - { - next; - } - - confess $EVAL_ERROR; - }; - - if ($bErrorExpected) - { - confess 'error was expected'; - } - - # Validate the list - if (defined($strExpression)) - { - @stryFileCompare = grep(/$strExpression/i, @stryFileCompare); - } - - if (defined($strSort)) - { - @stryFileCompare = sort {$b cmp $a} @stryFileCompare; - } - - my $strFileList = sprintf("@stryFileList"); - my $strFileCompare = sprintf("@stryFileCompare"); - - if ($strFileList ne $strFileCompare) - { - confess "list (${strFileList})[" . @stryFileList . - "] does not match compare (${strFileCompare})[" . @stryFileCompare . ']'; - } - } - } - } - } - } - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileManifestTest.pm b/test/lib/pgBackRestTest/Module/File/FileManifestTest.pm deleted file mode 100644 index 7fd5c36ba..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileManifestTest.pm +++ /dev/null @@ -1,215 +0,0 @@ -#################################################################################################################################### -# FileManifestTest.pm - Tests for File->manifest() -#################################################################################################################################### -package pgBackRestTest::Module::File::FileManifestTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use File::Basename qw(basename dirname); -use IO::Socket::UNIX; - -use pgBackRest::Common::Log; -use pgBackRest::Common::Exception; -use pgBackRest::File; -use pgBackRest::FileCommon; - -use pgBackRestTest::Common::ExecuteTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - ################################################################################################################################ - if ($self->begin("FileCommon::fileManifestStat()")) - { - #--------------------------------------------------------------------------------------------------------------------------- - my $strFile = $self->testPath() . '/test.txt'; - - $self->testResult(sub {pgBackRest::FileCommon::fileManifestStat($strFile)}, '[undef]', 'ignore missing file'); - - #--------------------------------------------------------------------------------------------------------------------------- - fileStringWrite($strFile, "TEST"); - utime(1111111111, 1111111111, $strFile); - executeTest('chmod 1640 ' . $strFile); - - $self->testResult( - sub {pgBackRest::FileCommon::fileManifestStat($strFile)}, - '{group => ' . $self->group() . - ', mode => 1640, modification_time => 1111111111, size => 4, type => f, user => ' . $self->pgUser() . '}', - 'stat file'); - - #--------------------------------------------------------------------------------------------------------------------------- - my $strSocketFile = $self->testPath() . '/test.socket'; - - # Create a socket to test invalid files - my $oSocket = IO::Socket::UNIX->new(Type => SOCK_STREAM(), Local => $strSocketFile, Listen => 1); - - $self->testException( - sub {pgBackRest::FileCommon::fileManifestStat($strSocketFile)}, ERROR_FILE_INVALID, - "${strSocketFile} is not of type directory, file, or link"); - - # Cleanup socket - $oSocket->close(); - fileRemove($strSocketFile); - - #--------------------------------------------------------------------------------------------------------------------------- - my $strTestPath = $self->testPath() . '/public_dir'; - filePathCreate($strTestPath, '0750'); - - $self->testResult( - sub {pgBackRest::FileCommon::fileManifestStat($strTestPath)}, - '{group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}', - 'stat directory'); - - #--------------------------------------------------------------------------------------------------------------------------- - my $strTestLink = $self->testPath() . '/public_dir_link'; - - symlink($strTestPath, $strTestLink) - or confess &log(ERROR, "unable to create symlink from ${strTestPath} to ${strTestLink}"); - - $self->testResult( - sub {pgBackRest::FileCommon::fileManifestStat($strTestLink)}, - '{group => ' . $self->group() . ", link_destination => ${strTestPath}, type => l, user => " . $self->pgUser() . '}', - 'stat link'); - } - - ################################################################################################################################ - if ($self->begin("FileCommon::fileManifestList()")) - { - #--------------------------------------------------------------------------------------------------------------------------- - my @stryFile = ('.', 'test.txt'); - - $self->testResult( - sub {pgBackRest::FileCommon::fileManifestList($self->testPath(), \@stryFile)}, - '{. => {group => ' . $self->group() . ', mode => 0770, type => d, user => ' . $self->pgUser() . '}}', - 'skip missing file'); - } - - ################################################################################################################################ - if ($self->begin("FileCommon::fileManifestRecurse()")) - { - #--------------------------------------------------------------------------------------------------------------------------- - my $strTestPath = $self->testPath() . '/public_dir'; - my $strTestFile = "${strTestPath}/test.txt"; - - $self->testException( - sub {my $hManifest = {}; pgBackRest::FileCommon::fileManifestRecurse($strTestFile, undef, 0, $hManifest); $hManifest}, - ERROR_FILE_MISSING, "unable to stat ${strTestFile}: No such file or directory"); - - #--------------------------------------------------------------------------------------------------------------------------- - filePathCreate($strTestPath, '0750'); - - $self->testResult( - sub {my $hManifest = {}; pgBackRest::FileCommon::fileManifestRecurse($strTestPath, undef, 0, $hManifest); $hManifest}, - '{. => {group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}}', - 'empty directory manifest'); - - #--------------------------------------------------------------------------------------------------------------------------- - fileStringWrite($strTestFile, "TEST"); - utime(1111111111, 1111111111, $strTestFile); - executeTest('chmod 0750 ' . $strTestFile); - - filePathCreate("${strTestPath}/sub", '0750'); - - $self->testResult( - sub {my $hManifest = {}; pgBackRest::FileCommon::fileManifestRecurse( - $self->testPath(), basename($strTestPath), 1, $hManifest); $hManifest}, - '{public_dir => {group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}, ' . - 'public_dir/sub => {group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}, ' . - 'public_dir/' . basename($strTestFile) . ' => {group => ' . $self->group() . - ', mode => 0750, modification_time => 1111111111, size => 4, type => f, user => ' . $self->pgUser() . '}}', - 'directory and file manifest'); - - #--------------------------------------------------------------------------------------------------------------------------- - $self->testResult( - sub {my $hManifest = {}; pgBackRest::FileCommon::fileManifestRecurse($strTestFile, undef, 0, $hManifest); $hManifest}, - '{' . basename($strTestFile) . ' => {group => ' . $self->group() . - ', mode => 0750, modification_time => 1111111111, size => 4, type => f, user => ' . $self->pgUser() . '}}', - 'single file manifest'); - } - - # Loop through local/remote - for (my $bRemote = false; $bRemote <= true; $bRemote++) - { - if (!$self->begin('File->manifest() => ' . ($bRemote ? 'remote' : 'local'))) {next} - - # Create the file object - my $oFile = new pgBackRest::File - ( - $self->stanza(), - $self->testPath(), - $bRemote ? $self->remote() : $self->local() - ); - - #--------------------------------------------------------------------------------------------------------------------------- - my $strMissingFile = $self->testPath() . '/missing'; - - $self->testException( - sub {$oFile->manifest(PATH_BACKUP_ABSOLUTE, $strMissingFile)}, - ERROR_FILE_MISSING, "unable to stat ${strMissingFile}: No such file or directory"); - - #--------------------------------------------------------------------------------------------------------------------------- - # Setup test data - executeTest('mkdir -m 750 ' . $self->testPath() . '/sub1'); - executeTest('mkdir -m 750 ' . $self->testPath() . '/sub1/sub2'); - - executeTest("echo 'TESTDATA' > " . $self->testPath() . '/test.txt'); - utime(1111111111, 1111111111, $self->testPath() . '/test.txt'); - executeTest('chmod 1640 ' . $self->testPath() . '/test.txt'); - - executeTest("echo 'TESTDATA_' > ". $self->testPath() . '/sub1/test-sub1.txt'); - utime(1111111112, 1111111112, $self->testPath() . '/sub1/test-sub1.txt'); - executeTest('chmod 0640 ' . $self->testPath() . '/sub1/test-sub1.txt'); - - executeTest("echo 'TESTDATA__' > " . $self->testPath() . '/sub1/sub2/test-sub2.txt'); - utime(1111111113, 1111111113, $self->testPath() . '/sub1/sub2/test-sub2.txt'); - executeTest('chmod 0646 ' . $self->testPath() . '/sub1/test-sub1.txt'); - - executeTest('ln ' . $self->testPath() . '/test.txt ' . $self->testPath() . '/sub1/test-hardlink.txt'); - executeTest('ln ' . $self->testPath() . '/test.txt ' . $self->testPath() . '/sub1/sub2/test-hardlink.txt'); - - executeTest('ln -s .. ' . $self->testPath() . '/sub1/test'); - executeTest('chmod 0700 ' . $self->testPath() . '/sub1/test'); - executeTest('ln -s ../.. ' . $self->testPath() . '/sub1/sub2/test'); - executeTest('chmod 0750 ' . $self->testPath() . '/sub1/sub2/test'); - - executeTest('chmod 0770 ' . $self->testPath()); - - $self->testResult( - sub {$oFile->manifest(PATH_BACKUP_ABSOLUTE, $self->testPath())}, - '{. => {group => ' . $self->group() . ', mode => 0770, type => d, user => ' . $self->pgUser() . '}, ' . - 'sub1 => {group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}, ' . - 'sub1/sub2 => {group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}, ' . - 'sub1/sub2/test => {group => ' . $self->group() . ', link_destination => ../.., type => l, user => ' . - $self->pgUser() . '}, ' . - 'sub1/sub2/test-hardlink.txt => ' . - '{group => ' . $self->group() . ', mode => 1640, modification_time => 1111111111, size => 9, type => f, user => ' . - $self->pgUser() . '}, ' . - 'sub1/sub2/test-sub2.txt => ' . - '{group => ' . $self->group() . ', mode => 0666, modification_time => 1111111113, size => 11, type => f, user => ' . - $self->pgUser() . '}, ' . - 'sub1/test => {group => ' . $self->group() . ', link_destination => .., type => l, user => ' . $self->pgUser() . '}, ' . - 'sub1/test-hardlink.txt => ' . - '{group => ' . $self->group() . ', mode => 1640, modification_time => 1111111111, size => 9, type => f, user => ' . - $self->pgUser() . '}, ' . - 'sub1/test-sub1.txt => ' . - '{group => ' . $self->group() . ', mode => 0646, modification_time => 1111111112, size => 10, type => f, user => ' . - $self->pgUser() . '}, ' . - 'test.txt => ' . - '{group => ' . $self->group() . ', mode => 1640, modification_time => 1111111111, size => 9, type => f, user => ' . - $self->pgUser() . '}}', - 'complete manifest'); - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileMoveTest.pm b/test/lib/pgBackRestTest/Module/File/FileMoveTest.pm deleted file mode 100644 index cebba3cd6..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileMoveTest.pm +++ /dev/null @@ -1,107 +0,0 @@ -#################################################################################################################################### -# FileMoveTest.pm - Tests for File->move() -#################################################################################################################################### -package pgBackRestTest::Module::File::FileMoveTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use pgBackRest::Common::Log; -use pgBackRest::File; - -use pgBackRestTest::Common::ExecuteTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - # Loop through local/remote ??? enable remote tests and have them throw an error - for (my $bRemote = 0; $bRemote <= 0; $bRemote++) - { - # Loop through source exists - for (my $bSourceExists = 0; $bSourceExists <= 1; $bSourceExists++) - { - # Loop through source errors - for (my $bSourceError = 0; $bSourceError <= 1; $bSourceError++) - { - # Loop through destination exists - for (my $bDestinationExists = 0; $bDestinationExists <= 1; $bDestinationExists++) - { - # Loop through source errors - for (my $bDestinationError = 0; $bDestinationError <= 1; $bDestinationError++) - { - # Loop through create - for (my $bCreate = 0; $bCreate <= $bDestinationExists; $bCreate++) - { - # Increment the run, log, and decide whether this unit test should be run - if (!$self->begin( - "src_exists ${bSourceExists}, src_error ${bSourceError}, " . - ", dst_exists ${bDestinationExists}, dst_error ${bDestinationError}, dst_create ${bCreate}")) {next} - - # Setup test directory and get file object - my $oFile = $self->setup($bRemote, $bSourceError || $bDestinationError); - - my $strSourceFile = $self->testPath() . '/test.txt'; - my $strDestinationFile = $self->testPath() . '/test-dest.txt'; - - if ($bSourceError) - { - $strSourceFile = $self->testPath() . '/' . ($bRemote ? 'user' : 'backrest') . "_private/test.txt"; - } - elsif ($bSourceExists) - { - executeTest("echo 'TESTDATA' > ${strSourceFile}"); - } - - if ($bDestinationError) - { - $strDestinationFile = $self->testPath() . '/' . ($bRemote ? 'user' : 'backrest') . "_private/test.txt"; - } - elsif (!$bDestinationExists) - { - $strDestinationFile = $self->testPath() . '/sub/test-dest.txt'; - } - - # Execute in eval in case of error - eval - { - $oFile->move(PATH_BACKUP_ABSOLUTE, $strSourceFile, PATH_BACKUP_ABSOLUTE, $strDestinationFile, $bCreate); - return true; - } - or do - { - if (!$bSourceExists || (!$bDestinationExists && !$bCreate) || $bSourceError || $bDestinationError) - { - next; - } - - confess $EVAL_ERROR; - }; - - if (!$bSourceExists || (!$bDestinationExists && !$bCreate) || $bSourceError || $bDestinationError) - { - confess 'error should have been raised'; - } - - unless (-e $strDestinationFile) - { - confess 'file was not moved'; - } - } - } - } - } - } - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileOwnerTest.pm b/test/lib/pgBackRestTest/Module/File/FileOwnerTest.pm deleted file mode 100644 index 77927917c..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileOwnerTest.pm +++ /dev/null @@ -1,105 +0,0 @@ -#################################################################################################################################### -# FileOwnerTest.pm - Tests for File->owner() -#################################################################################################################################### -package pgBackRestTest::Module::File::FileOwnerTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use pgBackRest::Common::Exception; -use pgBackRest::Common::Log; -use pgBackRest::File; - -use pgBackRestTest::Common::ExecuteTest; -use pgBackRestTest::Common::RunTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - # Loop through local/remote - foreach my $bRemote (false, true) - { - # Loop through exists - foreach my $bExists (!$bRemote ? (false, true) : (false)) - { - # Loop through exists - foreach my $bError ($bExists && !$bRemote ? (false, true) : (false)) - { - # Loop through users - foreach my $strUser ($bExists && !$bError && !$bRemote ? ($self->pgUser(), BOGUS, undef) : ($self->pgUser())) - { - # Loop through group - foreach my $strGroup ( - $bExists && !$bError && !$bRemote && defined($strUser) && $strUser ne BOGUS ? ($self->group(), BOGUS, undef) : ($self->group())) - { - if (!$self->begin( - "rmt ${bRemote}, err ${bError}, exists ${bExists}, user " . (defined($strUser) ? $strUser : '[undef]') . - ", group " . (defined($strGroup) ? $strGroup : '[undef]'))) {next} - - # Setup test directory and get file object - my $oFile = $self->setup($bRemote, $bError); - - # Create the test file - my $strFile = $self->testPath() . '/test.txt'; - - if ($bExists) - { - executeTest("echo 'TESTDATA' > ${strFile}"); - - if ($bError) - { - executeTest("sudo chown root:root ${strFile}"); - } - } - - my $strFunction = sub {$oFile->owner(PATH_BACKUP_ABSOLUTE, $strFile, $strUser, $strGroup)}; - - # Remote operation not allowed - if ($bRemote) - { - $self->testException($strFunction, ERROR_ASSERT, "pgBackRest::File->owner: remote operation not supported"); - } - # Error on not exists - elsif (!$bExists) - { - $self->testException($strFunction, ERROR_FILE_MISSING, "${strFile} does not exist"); - } - # Else permission error - elsif ($bError) - { - $self->testException( - $strFunction, ERROR_FILE_OWNER, "unable to set ownership for '${strFile}': Operation not permitted"); - } - # Else bogus user - elsif (defined($strUser) && $strUser eq BOGUS) - { - $self->testException($strFunction, ERROR_USER_MISSING, "user '" . BOGUS . "' does not exist"); - } - # Else bogus group - elsif (defined($strGroup) && $strGroup eq BOGUS) - { - $self->testException($strFunction, ERROR_GROUP_MISSING, "group '" . BOGUS . "' does not exist"); - } - # Else success - else - { - $self->testResult($strFunction, '[undef]', 'success'); - } - } - } - } - } - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FilePathCreateTest.pm b/test/lib/pgBackRestTest/Module/File/FilePathCreateTest.pm deleted file mode 100644 index cd86852eb..000000000 --- a/test/lib/pgBackRestTest/Module/File/FilePathCreateTest.pm +++ /dev/null @@ -1,115 +0,0 @@ -#################################################################################################################################### -# FilePathCreateTest.pm - Tests for File->pathCreate() -#################################################################################################################################### -package pgBackRestTest::Module::File::FilePathCreateTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use Fcntl qw(:mode); -use File::stat; - -use pgBackRest::Common::Exception; -use pgBackRest::Common::Log; -use pgBackRest::File; -use pgBackRest::FileCommon; - -use pgBackRestTest::Common::ExecuteTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - # Loop through local/remote - for (my $bRemote = 0; $bRemote <= 1; $bRemote++) - { - # Loop through error - for (my $bError = 0; $bError <= 1; $bError++) - { - # Loop through mode (mode will be set on true) - foreach my $strMode (undef, '0700') - { - my $strPathType = PATH_BACKUP_CLUSTER; - - # Increment the run, log, and decide whether this unit test should be run - if (!$self->begin("rmt ${bRemote}, err ${bError}, mode " . (defined($strMode) ? $strMode : 'undef'))) {next} - - # Setup test directory and get file object - my $oFile = $self->setup($bRemote, $bError); - - filePathCreate($self->testPath() . '/backup', '770'); - filePathCreate($self->testPath() . '/backup/db', '770'); - - my $strPath = 'path'; - - # If not exists then set the path to something bogus - if ($bError) - { - $strPath = $self->testPath() . '/' . ($bRemote ? 'user' : 'backrest') . "_private/path"; - - $strPathType = PATH_BACKUP_ABSOLUTE; - } - - # Execute in eval to catch errors - my $bErrorExpected = $bError; - - eval - { - $oFile->pathCreate($strPathType, $strPath, $strMode); - return true; - } - # Check for errors - or do - { - # Ignore errors if the path did not exist - if ($bErrorExpected) - { - next; - } - - confess $EVAL_ERROR; - }; - - if ($bErrorExpected) - { - confess 'error was expected'; - } - - # Make sure the path was actually created - my $strPathCheck = $oFile->pathGet($strPathType, $strPath); - - unless (-e $strPathCheck) - { - confess 'path was not created'; - } - - # Check that the mode was set correctly - my $oStat = lstat($strPathCheck); - - if (!defined($oStat)) - { - confess "unable to stat ${strPathCheck}"; - } - - if (defined($strMode)) - { - if ($strMode ne sprintf('%04o', S_IMODE($oStat->mode))) - { - confess "mode was not set to {$strMode}"; - } - } - } - } - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileRemoveTest.pm b/test/lib/pgBackRestTest/Module/File/FileRemoveTest.pm deleted file mode 100644 index c46ad9ff6..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileRemoveTest.pm +++ /dev/null @@ -1,112 +0,0 @@ -#################################################################################################################################### -# FileRemoveTest.pm - Tests for File->remove() -#################################################################################################################################### -package pgBackRestTest::Module::File::FileRemoveTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use pgBackRest::Common::Log; -use pgBackRest::File; - -use pgBackRestTest::Common::ExecuteTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - # Loop through local/remote - foreach my $bRemote (false, true) - { - # Loop through exists - foreach my $bError (false, true) - { - # Loop through exists - foreach my $bExists (false, true) - { - # Loop through temp - foreach my $bTemp (false, true) - { - # Loop through ignore missing - foreach my $bIgnoreMissing (false, true) - { - if (!$self->begin( - "rmt ${bRemote}, err = ${bError}, exists ${bExists}, tmp ${bTemp}, ignmis ${bIgnoreMissing}")) {next} - - # Setup test directory and get file object - my $oFile = $self->setup($bRemote, $bError); - - my $strFile = $self->testPath() . '/test.txt'; - - if ($bError) - { - $strFile = $self->testPath() . '/' . ($bRemote ? 'user' : 'backrest') . '_private/test.txt'; - } - elsif (!$bExists) - { - $strFile = $self->testPath() . '/private/error.txt'; - } - else - { - executeTest("echo 'TESTDATA' > ${strFile}" . ($bTemp ? '.pgbackrest.tmp' : '')); - } - - # Execute in eval in case of error - my $bRemoved; - - eval - { - $bRemoved = $oFile->remove(PATH_BACKUP_ABSOLUTE, $strFile, $bTemp, $bIgnoreMissing); - return true; - } - or do - { - if ($bError || $bRemote) - { - next; - } - - if (!$bExists && !$bIgnoreMissing) - { - next; - } - - confess $EVAL_ERROR; - }; - - if ($bError || $bRemote) - { - confess 'error should have been returned'; - } - - if (!$bRemoved) - { - if (!$bExists && $bIgnoreMissing) - { - next; - } - - confess 'remove returned false, but something should have been removed'; - } - - if (-e ($strFile . ($bTemp ? '.pgbackrest.tmp' : ''))) - { - confess 'file still exists'; - } - } - } - } - } - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileStatTest.pm b/test/lib/pgBackRestTest/Module/File/FileStatTest.pm deleted file mode 100644 index ff91fcc96..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileStatTest.pm +++ /dev/null @@ -1,64 +0,0 @@ -#################################################################################################################################### -# FileStatTest.pm - Tests for FileCommon::fileStat -#################################################################################################################################### -package pgBackRestTest::Module::File::FileStatTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use Fcntl qw(:mode); -use File::stat; - -use pgBackRest::Common::Exception; -use pgBackRest::Common::Log; -use pgBackRest::FileCommon; - -use pgBackRestTest::Common::ExecuteTest; -use pgBackRestTest::Common::RunTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - ################################################################################################################################ - if ($self->begin("FileCommon::fileStat()")) - { - #--------------------------------------------------------------------------------------------------------------------------- - my $strFile = $self->testPath() . '/test.txt'; - - $self->testException(sub {fileStat($strFile)}, ERROR_FILE_MISSING, "unable to stat ${strFile}: No such file or directory"); - - #--------------------------------------------------------------------------------------------------------------------------- - $self->testResult(sub {fileStat($strFile, true)}, '[undef]', 'ignore missing file'); - - #--------------------------------------------------------------------------------------------------------------------------- - fileStringWrite($strFile); - - $self->testResult(sub {fileStat($strFile)}, '[object]', 'stat file'); - - #--------------------------------------------------------------------------------------------------------------------------- - $self->testResult(sub {S_ISREG(fileStat($strFile)->mode)}, true, 'check stat file result'); - - #--------------------------------------------------------------------------------------------------------------------------- - my $strPrivateDir = $self->testPath() . '/private_dir'; - my $strPrivateFile = "${strPrivateDir}/test.txt"; - executeTest("sudo mkdir -m 700 ${strPrivateDir}"); - - $self->testException( - sub {fileStat($strPrivateFile, true)}, ERROR_FILE_OPEN, "unable to stat ${strPrivateFile}: Permission denied"); - - #--------------------------------------------------------------------------------------------------------------------------- - $self->testResult(sub {S_ISDIR(fileStat($strPrivateDir)->mode)}, true, 'check stat directory result'); - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileUnitTest.pm b/test/lib/pgBackRestTest/Module/File/FileUnitTest.pm deleted file mode 100644 index fea5bf721..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileUnitTest.pm +++ /dev/null @@ -1,137 +0,0 @@ -#################################################################################################################################### -# FileUnitTest.pm - Unit tests for File module. -#################################################################################################################################### -package pgBackRestTest::Module::File::FileUnitTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use pgBackRest::Common::Exception; -use pgBackRest::Common::Log; -use pgBackRest::File; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - # Increment the run, log, and decide whether this unit test should be run - if (!$self->begin('unit')) {return} - - # Setup test directory and get file object - my $oLocalFile = $self->setup(false, false); - - # Test File->pathTypeGet() - #--------------------------------------------------------------------------------------------------------------------------- - { - &log(INFO, " File->pathTypeGet()"); - - $self->testResult(sub {$oLocalFile->pathTypeGet(PATH_ABSOLUTE)}, PATH_ABSOLUTE, 'absolute path type'); - $self->testResult(sub {$oLocalFile->pathTypeGet(PATH_DB)}, PATH_DB, 'db path type'); - $self->testResult(sub {$oLocalFile->pathTypeGet(PATH_DB_ABSOLUTE)}, PATH_DB, 'db absolute path type'); - $self->testResult(sub {$oLocalFile->pathTypeGet(PATH_BACKUP)}, PATH_BACKUP, 'backup path type'); - $self->testResult(sub {$oLocalFile->pathTypeGet(PATH_BACKUP_ARCHIVE)}, PATH_BACKUP, 'backup archive path type'); - $self->testException(sub {$oLocalFile->pathTypeGet('bogus')}, ERROR_ASSERT, "no known path types in 'bogus'"); - } - - # Test File->pathGet() - #--------------------------------------------------------------------------------------------------------------------------- - { - &log(INFO, " File->pathGet()"); - - # Test temp file errors - $self->testException( - sub {$oLocalFile->pathGet(PATH_BACKUP, 'test', true)}, - ERROR_ASSERT, "temp file not supported for path type 'backup'"); - $self->testException( - sub {$oLocalFile->pathGet(PATH_ABSOLUTE, undef, true)}, - ERROR_ASSERT, "strFile must be defined when temp file specified"); - $self->testException( - sub {$oLocalFile->pathGet(PATH_BACKUP_ARCHIVE, undef, true)}, - ERROR_ASSERT, "strFile must be defined when temp file specified"); - $self->testException( - sub {$oLocalFile->pathGet(PATH_BACKUP_ARCHIVE_OUT, undef, true)}, - ERROR_ASSERT, "strFile must be defined when temp file specified"); - $self->testException( - sub {$oLocalFile->pathGet(PATH_BACKUP_TMP, undef, true)}, - ERROR_ASSERT, "strFile must be defined when temp file specified"); - - # Test absolute path - $self->testException( - sub {$oLocalFile->pathGet(PATH_ABSOLUTE)}, ERROR_ASSERT, "strFile must be defined for absolute path"); - $self->testException( - sub {$oLocalFile->pathGet(PATH_ABSOLUTE, 'file')}, ERROR_ASSERT, "absolute path absolute:file must start with /"); - $self->testResult(sub {$oLocalFile->pathGet(PATH_ABSOLUTE, '/file', true)}, "/file.pgbackrest.tmp", 'absolute path temp'); - $self->testResult(sub {$oLocalFile->pathGet(PATH_ABSOLUTE, '/file')}, "/file", 'absolute path file'); - - # Test backup path - $self->testResult(sub {$oLocalFile->pathGet(PATH_BACKUP, 'file')}, $self->testPath() . '/file', 'backup path file'); - $self->testResult(sub {$oLocalFile->pathGet(PATH_BACKUP, undef)}, $self->testPath(), 'backup path'); - - # Error when stanza not defined - $self->testException( - sub {(new pgBackRest::File(undef, $self->testPath(), $self->local()))->pathGet(PATH_BACKUP_TMP)}, - ERROR_ASSERT, "strStanza not defined"); - - # Test backup tmp path - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_TMP, 'file', true)}, $self->testPath() . '/temp/db.tmp/file.pgbackrest.tmp', - 'backup temp path temp file'); - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_TMP, 'file')}, $self->testPath() . '/temp/db.tmp/file', 'backup temp path file'); - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_TMP, undef)}, $self->testPath() . '/temp/db.tmp', 'backup temp path'); - - # Test archive path - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_ARCHIVE, undef)}, $self->testPath() . '/archive/db', 'archive path'); - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_ARCHIVE, '9.3-1')}, $self->testPath() . '/archive/db/9.3-1', 'archive id path'); - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_ARCHIVE, '9.3-1/000000010000000100000001')}, - $self->testPath() . '/archive/db/9.3-1/0000000100000001/000000010000000100000001', - 'archive path file'); - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_ARCHIVE, '9.3-1/000000010000000100000001', true)}, - $self->testPath() . '/archive/db/9.3-1/0000000100000001/000000010000000100000001.pgbackrest.tmp', - 'archive path temp file'); - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_ARCHIVE, '9.3-1/00000001.history')}, - $self->testPath() . '/archive/db/9.3-1/00000001.history', - 'archive path history file'); - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_ARCHIVE, '9.3-1/00000001.history', true)}, - $self->testPath() . '/archive/db/9.3-1/00000001.history.pgbackrest.tmp', - 'archive path history temp file'); - - # Test archive out path - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_ARCHIVE_OUT, '000000010000000100000001')}, - $self->testPath() . '/archive/db/out/000000010000000100000001', - 'archive out path file'); - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_ARCHIVE_OUT)}, $self->testPath() . '/archive/db/out', 'archive out path'); - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_ARCHIVE_OUT, '000000010000000100000001', true)}, - $self->testPath() . '/archive/db/out/000000010000000100000001.pgbackrest.tmp', - 'archive out path temp file'); - - # Test backup cluster path - $self->testResult( - sub {$oLocalFile->pathGet(PATH_BACKUP_CLUSTER, 'file')}, $self->testPath() . '/backup/db/file', 'cluster path file'); - $self->testResult(sub {$oLocalFile->pathGet(PATH_BACKUP_CLUSTER)}, $self->testPath() . '/backup/db', 'cluster path'); - - # Test invalid path type - $self->testException(sub {$oLocalFile->pathGet('bogus')}, ERROR_ASSERT, "no known path types in 'bogus'"); - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/File/FileWaitTest.pm b/test/lib/pgBackRestTest/Module/File/FileWaitTest.pm deleted file mode 100644 index b1b8e8933..000000000 --- a/test/lib/pgBackRestTest/Module/File/FileWaitTest.pm +++ /dev/null @@ -1,71 +0,0 @@ -#################################################################################################################################### -# FileWaitTest.pm - Tests for File->wait() -#################################################################################################################################### -package pgBackRestTest::Module::File::FileWaitTest; -use parent 'pgBackRestTest::Module::File::FileCommonTest'; - -#################################################################################################################################### -# Perl includes -#################################################################################################################################### -use strict; -use warnings FATAL => qw(all); -use Carp qw(confess); -use English '-no_match_vars'; - -use POSIX qw(ceil); -use Time::HiRes qw(gettimeofday usleep); - -use pgBackRest::Common::Log; -use pgBackRest::File; - -use pgBackRestTest::Common::ExecuteTest; - -#################################################################################################################################### -# run -#################################################################################################################################### -sub run -{ - my $self = shift; - - # Loop through local/remote - for (my $bRemote = 0; $bRemote <= 1; $bRemote++) - { - my $lTimeBegin = gettimeofday(); - - if (!$self->begin("rmt ${bRemote}, begin ${lTimeBegin}")) {next} - - # Setup test directory and get file object - my $oFile = $self->setup($bRemote); - - # If there is not enough time to complete the test then sleep - if (ceil($lTimeBegin) - $lTimeBegin < .250) - { - my $lSleepMs = ceil(((int($lTimeBegin) + 1) - $lTimeBegin) * 1000); - - usleep($lSleepMs * 1000); - - &log(DEBUG, "slept ${lSleepMs}ms: begin ${lTimeBegin}, end " . gettimeofday()); - - $lTimeBegin = gettimeofday(); - } - - # Run the test - my $lTimeBeginCheck = $oFile->wait(PATH_DB_ABSOLUTE); - - &log(DEBUG, "begin ${lTimeBegin}, check ${lTimeBeginCheck}, end " . time()); - - # Current time should have advanced by 1 second - if (int(time()) == int($lTimeBegin)) - { - confess "time was not advanced by 1 second"; - } - - # lTimeBegin and lTimeBeginCheck should be equal - if (int($lTimeBegin) != $lTimeBeginCheck) - { - confess 'time begin ' || int($lTimeBegin) || "and check ${lTimeBeginCheck} should be equal"; - } - } -} - -1; diff --git a/test/lib/pgBackRestTest/Module/Full/FullRealTest.pm b/test/lib/pgBackRestTest/Module/Full/FullRealTest.pm index 7d43a302e..9aac57b86 100644 --- a/test/lib/pgBackRestTest/Module/Full/FullRealTest.pm +++ b/test/lib/pgBackRestTest/Module/Full/FullRealTest.pm @@ -22,10 +22,9 @@ use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::InfoCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; use pgBackRest::Version; use pgBackRestTest::Common::ContainerTest; @@ -67,7 +66,7 @@ sub run } # Create hosts, file object, and config - my ($oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile) = $self->setup( + my ($oHostDbMaster, $oHostDbStandby, $oHostBackup) = $self->setup( false, $self->expect(), {bHostBackup => $bHostBackup, bStandby => $bHostStandby, strBackupDestination => $strBackupDestination, bCompress => $bCompress, bArchiveAsync => $bArchiveAsync}); @@ -116,7 +115,8 @@ sub run $strType = BACKUP_TYPE_FULL; # Remove the files in the archive directory - executeTest('sudo rm -rf ' . $oFile->pathGet(PATH_BACKUP_ARCHIVE) . "/*"); + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE, {bRecurse => true}); + $oHostDbMaster->check( 'fail on missing archive.info file', {iTimeout => 0.1, iExpectedExitStatus => ERROR_FILE_MISSING}); @@ -177,7 +177,7 @@ sub run # load the archive info file and munge it for testing by breaking the database version $oHostBackup->infoMunge( - $oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE), + storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE), {&INFO_ARCHIVE_SECTION_DB => {&INFO_ARCHIVE_KEY_DB_VERSION => '8.0'}}); $oHostDbMaster->check($strComment, {iTimeout => 0.1, iExpectedExitStatus => ERROR_ARCHIVE_MISMATCH}); @@ -189,7 +189,7 @@ sub run } # Restore the file to its original condition - $oHostBackup->infoRestore($oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE)); + $oHostBackup->infoRestore(storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE)); # Check archive_timeout error when WAL segment is not found $strComment = 'fail on archive timeout'; @@ -212,7 +212,7 @@ sub run # Load the backup.info file and munge it for testing by breaking the database version and system id $oHostBackup->infoMunge( - $oFile->pathGet(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO), + storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO), {&INFO_BACKUP_SECTION_DB => {&INFO_BACKUP_KEY_DB_VERSION => '8.0', &INFO_BACKUP_KEY_SYSTEM_ID => 6999999999999999999}}); @@ -226,7 +226,7 @@ sub run } # Restore the file to its original condition - $oHostBackup->infoRestore($oFile->pathGet(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO)); + $oHostBackup->infoRestore(storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO)); # Providing a sufficient archive-timeout, verify that the check command runs successfully now with valid # archive.info and backup.info files @@ -245,8 +245,12 @@ sub run # Stanza Create #----------------------------------------------------------------------------------------------------------------------- - # With data existing in the archive and backup directory, remove backup info file and confirm failure - executeTest('sudo rm ' . $oHostBackup->repoPath() . '/backup/' . $self->stanza() . '/backup.info'); + # With data existing in the archive and backup directory, remove info files and confirm failure + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO); + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO . INI_COPY_EXT); + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE); + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE . INI_COPY_EXT); + $oHostBackup->stanzaCreate('fail on backup info file missing from non-empty dir', {iExpectedExitStatus => ERROR_PATH_NOT_EMPTY}); @@ -254,20 +258,24 @@ sub run $oHostBackup->stanzaCreate('verify success with force', {strOptionalParam => ' --' . OPTION_FORCE}); # Remove the backup info file - executeTest('sudo rm ' . $oHostBackup->repoPath() . '/backup/' . $self->stanza() . '/backup.info'); + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO); + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO . INI_COPY_EXT); # Change the database version by copying a new pg_control file to a new db-path to use for db mismatch test - filePathCreate($oHostDbMaster->dbPath() . '/testbase/' . DB_PATH_GLOBAL, undef, true, true); + storageDb()->pathCreate( + $oHostDbMaster->dbPath() . '/testbase/' . DB_PATH_GLOBAL, + {strMode => '0700', bIgnoreExists => true, bCreateParent => true}); + if ($self->pgVersion() eq PG_VERSION_94) { - executeTest( - 'cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_95 . '.bin ' . $oHostDbMaster->dbPath() . - '/testbase/' . DB_FILE_PGCONTROL); + storageDb()->copy( + $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_95 . '.bin', + $oHostDbMaster->dbPath() . '/testbase/' . DB_FILE_PGCONTROL); } else { - executeTest( - 'cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin ' . $oHostDbMaster->dbPath() . - '/testbase/' . DB_FILE_PGCONTROL); + storageDb()->copy( + $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin', + $oHostDbMaster->dbPath() . '/testbase/' . DB_FILE_PGCONTROL); } # Run stanza-create online to confirm proper handling of configValidation error against new db-path @@ -281,8 +289,8 @@ sub run $oHostBackup->stanzaCreate('successfully create stanza files to be upgraded', {strOptionalParam => ' --' . OPTION_DB_PATH . '=' . $oHostDbMaster->dbPath() . '/testbase/ --no-' . OPTION_ONLINE . ' --' . OPTION_FORCE}); - my $oAchiveInfo = new pgBackRest::Archive::ArchiveInfo($oHostBackup->repoPath() . '/archive/' . $self->stanza()); - my $oBackupInfo = new pgBackRest::Backup::Info($oHostBackup->repoPath() . '/backup/' . $self->stanza()); + my $oAchiveInfo = new pgBackRest::Archive::ArchiveInfo(storageRepo()->pathGet('archive/' . $self->stanza())); + my $oBackupInfo = new pgBackRest::Backup::Info(storageRepo()->pathGet('backup/' . $self->stanza())); # Read info files to confirm the files were created with a different database version if ($self->pgVersion() eq PG_VERSION_94) @@ -304,8 +312,8 @@ sub run $oHostBackup->stanzaUpgrade('upgrade stanza files online'); # Reread the info files and confirm the result - $oAchiveInfo = new pgBackRest::Archive::ArchiveInfo($oHostBackup->repoPath() . '/archive/' . $self->stanza()); - $oBackupInfo = new pgBackRest::Backup::Info($oHostBackup->repoPath() . '/backup/' . $self->stanza()); + $oAchiveInfo = new pgBackRest::Archive::ArchiveInfo(storageRepo()->pathGet('archive/' . $self->stanza())); + $oBackupInfo = new pgBackRest::Backup::Info(storageRepo()->pathGet('backup/' . $self->stanza())); $self->testResult(sub {$oAchiveInfo->test(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_VERSION, undef, $self->pgVersion())}, true, 'archive upgrade online corrects db'); $self->testResult(sub {$oBackupInfo->test(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_DB_VERSION, undef, @@ -470,12 +478,12 @@ sub run $strType = BACKUP_TYPE_INCR; # Create a tablespace directory - filePathCreate($oHostDbMaster->tablespacePath(1), undef, undef, true); + storageTest()->pathCreate($oHostDbMaster->tablespacePath(1), {strMode => '0700', bCreateParent => true}); # Also create it on the standby so replay won't fail if (defined($oHostDbStandby)) { - filePathCreate($oHostDbStandby->tablespacePath(1), undef, undef, true); + storageTest()->pathCreate($oHostDbStandby->tablespacePath(1), {strMode => '0700', bCreateParent => true}); } $oHostDbMaster->sqlExecute( @@ -508,7 +516,7 @@ sub run $strType, 'update during backup', {strTest => TEST_MANIFEST_BUILD, fTestDelay => $fTestDelay, strOptionalParam => '--' . OPTION_STOP_AUTO . ' --no-' . OPTION_BACKUP_ARCHIVE_CHECK . - ' --' . OPTION_BUFFER_SIZE . '=24576'}); + ' --' . OPTION_BUFFER_SIZE . '=32768'}); # Drop a table $oHostDbMaster->sqlExecute('drop table test_remove'); @@ -613,11 +621,11 @@ sub run # Drop and recreate db path testPathRemove($oHostDbMaster->dbBasePath()); - filePathCreate($oHostDbMaster->dbBasePath()); + storageTest()->pathCreate($oHostDbMaster->dbBasePath(), {strMode => '0700'}); testPathRemove($oHostDbMaster->dbPath() . '/pg_xlog'); - filePathCreate($oHostDbMaster->dbPath() . '/pg_xlog'); + storageTest()->pathCreate($oHostDbMaster->dbPath() . '/pg_xlog', {strMode => '0700'}); testPathRemove($oHostDbMaster->tablespacePath(1)); - filePathCreate($oHostDbMaster->tablespacePath(1)); + storageTest()->pathCreate($oHostDbMaster->tablespacePath(1), {strMode => '0700'}); # Now the restore should work $strComment = undef; @@ -703,8 +711,8 @@ sub run '--tablespace-map-all=../../tablespace', false); # Save recovery file to test so we can use it in the next test - $oFile->copy(PATH_ABSOLUTE, $oHostDbMaster->dbBasePath() . '/recovery.conf', - PATH_ABSOLUTE, $self->testPath() . '/recovery.conf'); + storageDb()->copy( + $oHostDbMaster->dbBasePath() . qw{/} . DB_FILE_RECOVERYCONF, $self->testPath() . qw{/} . DB_FILE_RECOVERYCONF); $oHostDbMaster->clusterStart(); $oHostDbMaster->sqlSelectOneTest('select message from test', $strXidMessage); @@ -736,8 +744,7 @@ sub run executeTest('rm -rf ' . $oHostDbMaster->tablespacePath(1) . "/*"); # Restore recovery file that was saved in last test - $oFile->move(PATH_ABSOLUTE, $self->testPath . '/recovery.conf', - PATH_ABSOLUTE, $oHostDbMaster->dbBasePath() . '/recovery.conf'); + storageDb()->move($self->testPath . '/recovery.conf', $oHostDbMaster->dbBasePath() . '/recovery.conf'); $oHostDbMaster->restore( OPTION_DEFAULT_RESTORE_SET, undef, undef, $bDelta, $bForce, $strType, $strTarget, $bTargetExclusive, @@ -869,7 +876,7 @@ sub run if ($bTestExtra) { # Create a postmaster.pid file so it appears that the server is running - fileStringWrite($oHostDbMaster->dbBasePath() . '/postmaster.pid', '99999'); + storageTest()->put($oHostDbMaster->dbBasePath() . '/postmaster.pid', '99999'); # Incr backup - make sure a --no-online backup fails #----------------------------------------------------------------------------------------------------------------------- diff --git a/test/lib/pgBackRestTest/Module/Full/FullSyntheticTest.pm b/test/lib/pgBackRestTest/Module/Full/FullSyntheticTest.pm index 837c6f955..3d2af97fa 100644 --- a/test/lib/pgBackRestTest/Module/Full/FullSyntheticTest.pm +++ b/test/lib/pgBackRestTest/Module/Full/FullSyntheticTest.pm @@ -22,11 +22,10 @@ use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::InfoCommon; use pgBackRest::LibC qw(:checksum); use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; use pgBackRest::Version; use pgBackRestTest::Common::ContainerTest; @@ -69,7 +68,7 @@ sub run if (!$self->begin("rmt ${bRemote}, cmp ${bCompress}, hardlink ${bHardLink}", $self->processMax() == 1)) {next} # Create hosts, file object, and config - my ($oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile) = $self->setup( + my ($oHostDbMaster, $oHostDbStandby, $oHostBackup) = $self->setup( true, $self->expect(), {bHostBackup => $bRemote, bCompress => $bCompress, bHardLink => $bHardLink}); # Determine if this is a neutral test, i.e. we only want to do it once for local and once for remote. Neutral means @@ -108,7 +107,7 @@ sub run '184473f470864e067ee3a22e64b47b0a1c356f29', $lTime, undef, true); # Load sample page - my $tBasePage = fileStringRead($self->dataPath() . '/page.bin'); + my $tBasePage = ${storageTest()->get($self->dataPath() . '/page.bin')}; my $iBasePageChecksum = 0x1B99; # Create base path @@ -272,7 +271,7 @@ sub run $oHostBackup->stanzaCreate('create required data for stanza', {strOptionalParam => '--no-' . OPTION_ONLINE}); # Create a file link - filePathCreate($oHostDbMaster->dbPath() . '/pg_config', undef, undef, true); + storageTest()->pathCreate($oHostDbMaster->dbPath() . '/pg_config', {strMode => '0700', bCreateParent => true}); testFileCreate( $oHostDbMaster->dbPath() . '/pg_config/postgresql.conf', "listen_addresses = *\n", $lTime - 100); testLinkCreate($oHostDbMaster->dbPath() . '/pg_config/postgresql.conf.link', './postgresql.conf'); @@ -306,7 +305,7 @@ sub run $oHostDbMaster->manifestLinkRemove(\%oManifest, MANIFEST_TARGET_PGDATA, 'postgresql.conf.bad'); # Create stat directory link and file - filePathCreate($oHostDbMaster->dbPath() . '/pg_stat', undef, undef, true); + storageTest()->pathCreate($oHostDbMaster->dbPath() . '/pg_stat', {strMode => '0700', bCreateParent => true}); $oHostDbMaster->manifestLinkCreate(\%oManifest, MANIFEST_TARGET_PGDATA, 'pg_stat', '../pg_stat'); $oHostDbMaster->manifestFileCreate(\%oManifest, MANIFEST_TARGET_PGDATA . '/pg_stat', 'global.stat', 'stats', 'e350d5ce0153f3e22d5db21cf2a4eff00f3ee877', $lTime - 100, undef, true); @@ -315,10 +314,9 @@ sub run $strFullBackup = $oHostBackup->backup( $strType, 'create pg_stat link, pg_clog dir', {oExpectedManifest => \%oManifest, - strOptionalParam => $strOptionalParam . ($bRemote ? ' --cmd-ssh=/usr/bin/ssh' : '') . - ' --no-' . OPTION_REPO_SYNC . ' --' . OPTION_BUFFER_SIZE . '=16384 --' . OPTION_CHECKSUM_PAGE, - strTest => $strTestPoint, - fTestDelay => 0}); + strOptionalParam => $strOptionalParam . ($bRemote ? ' --cmd-ssh=/usr/bin/ssh' : '') . ' --' . OPTION_BUFFER_SIZE . + '=16384 --' . OPTION_CHECKSUM_PAGE, + strRepoType => REPO_TYPE_CIFS, strTest => $strTestPoint, fTestDelay => 0}); # Error on backup option to check logging #----------------------------------------------------------------------------------------------------------------------- @@ -336,10 +334,7 @@ sub run $oHostBackup->backup( $strType, 'protocol timeout', {oExpectedManifest => \%oManifest, strOptionalParam => '--protocol-timeout=1 --db-timeout=.1', - strTest => TEST_BACKUP_START, fTestDelay => 1, iExpectedExitStatus => ERROR_PROTOCOL_TIMEOUT}); - - # Remove the aborted backup so the next backup is not a resume - testPathRemove($oHostBackup->repoPath() . '/temp/' . $self->stanza() . '.tmp'); + strTest => TEST_BACKUP_START, fTestDelay => 1, iExpectedExitStatus => ERROR_FILE_READ}); } # Stop operations and make sure the correct error occurs @@ -397,10 +392,6 @@ sub run } } - # Cleanup any garbage left in the temp backup path - executeTest( - 'sudo rm -rf ' . $oHostBackup->repoPath() . '/temp/' . $self->stanza() . '.tmp', {bRemote => $bRemote}); - # Resume Full Backup #----------------------------------------------------------------------------------------------------------------------- $strType = BACKUP_TYPE_FULL; @@ -414,40 +405,47 @@ sub run # Create files in root tblspc paths that should not be copied or deleted. # This will be checked later after a --force restore. my $strDoNotDeleteFile = $oHostDbMaster->tablespacePath(1, 2) . '/donotdelete.txt'; - filePathCreate(dirname($strDoNotDeleteFile), undef, undef, true); + storageTest()->pathCreate(dirname($strDoNotDeleteFile), {strMode => '0700', bCreateParent => true}); testFileCreate($strDoNotDeleteFile, 'DONOTDELETE-1-2'); - filePathCreate($oHostDbMaster->tablespacePath(1), undef, undef, true); + storageTest()->pathCreate($oHostDbMaster->tablespacePath(1), {strMode => '0700', bCreateParent => true}); testFileCreate($oHostDbMaster->tablespacePath(1) . '/donotdelete.txt', 'DONOTDELETE-1'); - filePathCreate($oHostDbMaster->tablespacePath(2), undef, undef, true); + storageTest()->pathCreate($oHostDbMaster->tablespacePath(2), {strMode => '0700', bCreateParent => true}); testFileCreate($oHostDbMaster->tablespacePath(2) . '/donotdelete.txt', 'DONOTDELETE-2'); - filePathCreate($oHostDbMaster->tablespacePath(2, 2), undef, undef, true); + storageTest()->pathCreate($oHostDbMaster->tablespacePath(2, 2), {strMode => '0700', bCreateParent => true}); testFileCreate($oHostDbMaster->tablespacePath(2, 2) . '/donotdelete.txt', 'DONOTDELETE-2-2'); - filePathCreate($oHostDbMaster->tablespacePath(11), undef, undef, true); + storageTest()->pathCreate($oHostDbMaster->tablespacePath(11), {strMode => '0700', bCreateParent => true}); - my $strTmpPath = $oHostBackup->repoPath() . '/temp/' . $self->stanza() . '.tmp'; - executeTest("sudo chmod g+w " . dirname($strTmpPath)); + # Resume by copying the valid full backup over the last aborted full backup if it exists, or by creating a new path + my $strResumeBackup = (storageRepo()->list( + STORAGE_REPO_BACKUP, {strExpression => backupRegExpGet(true, true, true), strSortOrder => 'reverse'}))[0]; + my $strResumePath = storageRepo()->pathGet('backup/' . $self->stanza() . '/' . + ($strResumeBackup ne $strFullBackup ? $strResumeBackup : backupLabel(storageRepo(), $strType, undef, time()))); - testPathMove($oHostBackup->repoPath() . '/backup/' . $self->stanza() . "/${strFullBackup}", $strTmpPath); + forceStorageRemove(storageRepo(), $strResumePath, {bRecurse => true}); + forceStorageMove(storageRepo(), 'backup/' . $self->stanza() . "/${strFullBackup}", $strResumePath); - $oHostBackup->infoMunge( - "$strTmpPath/" . FILE_MANIFEST, + $oHostBackup->manifestMunge( + basename($strResumePath), {&MANIFEST_SECTION_TARGET_FILE => {(&MANIFEST_TARGET_PGDATA . '/' . &DB_FILE_PGVERSION) => {&MANIFEST_SUBKEY_CHECKSUM => undef}}}, false); + # Remove the main manifest so the backup appears aborted + forceStorageRemove(storageRepo(), "${strResumePath}/" . FILE_MANIFEST); + # Create a temp file in backup temp root to be sure it's deleted correctly - executeTest("touch ${strTmpPath}/file.tmp" . ($bCompress ? '.gz' : ''), + executeTest("sudo touch ${strResumePath}/file.tmp" . ($bCompress ? '.gz' : ''), {bRemote => $bRemote}); - executeTest("sudo chown -R " . $oHostBackup->userGet() . ' ' . dirname($strTmpPath)); + executeTest("sudo chown " . BACKREST_USER . " ${strResumePath}/file.tmp" . ($bCompress ? '.gz' : '')); $strFullBackup = $oHostBackup->backup( $strType, 'resume', {oExpectedManifest => \%oManifest, strTest => TEST_BACKUP_RESUME, strOptionalParam => '--force --' . OPTION_CHECKSUM_PAGE}); - # Remove postmaster.pid so restore will succeed (the rest will be cleaned up) - testFileRemove($oHostDbMaster->dbBasePath() . '/' . DB_FILE_POSTMASTERPID); + # Remove postmaster.pid so restore will succeed (the rest will be cleaned up by the delta) + storageDb->remove($oHostDbMaster->dbBasePath() . '/' . DB_FILE_POSTMASTERPID); # Misconfigure repo-path and check errors #----------------------------------------------------------------------------------------------------------------------- @@ -599,7 +597,7 @@ sub run # Break the database version $oHostBackup->infoMunge( - $oFile->pathGet(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO), + storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO), {&INFO_BACKUP_SECTION_DB => {&INFO_BACKUP_KEY_DB_VERSION => '8.0'}}); $oHostBackup->backup( @@ -609,7 +607,7 @@ sub run # Break the database system id $oHostBackup->infoMunge( - $oFile->pathGet(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO), + storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO), {&INFO_BACKUP_SECTION_DB => {&INFO_BACKUP_KEY_SYSTEM_ID => 6999999999999999999}}); $oHostBackup->backup( @@ -619,7 +617,7 @@ sub run # Break the control version $oHostBackup->infoMunge( - $oFile->pathGet(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO), + storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO), {&INFO_BACKUP_SECTION_DB => {&INFO_BACKUP_KEY_CONTROL => 842}}); $oHostBackup->backup( @@ -629,7 +627,7 @@ sub run # Break the catalog version $oHostBackup->infoMunge( - $oFile->pathGet(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO), + storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO), {&INFO_BACKUP_SECTION_DB => {&INFO_BACKUP_KEY_CATALOG => 197208141}}); $oHostBackup->backup( @@ -638,7 +636,7 @@ sub run strOptionalParam => '--log-level-console=detail'}); # Restore the file to its original condition - $oHostBackup->infoRestore($oFile->pathGet(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO)); + $oHostBackup->infoRestore(storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO)); # Test broken tablespace configuration #----------------------------------------------------------------------------------------------------------------------- @@ -646,7 +644,7 @@ sub run my $strTblSpcPath = $oHostDbMaster->dbBasePath() . '/' . DB_PATH_PGTBLSPC; # Create a directory in pg_tablespace - filePathCreate("${strTblSpcPath}/path"); + storageTest()->pathCreate("${strTblSpcPath}/path", {strMode => '0700', bCreateParent => true}); $oHostBackup->backup( $strType, 'invalid path in ' . DB_PATH_PGTBLSPC, @@ -769,18 +767,23 @@ sub run #----------------------------------------------------------------------------------------------------------------------- $strType = BACKUP_TYPE_INCR; - # Move database from backup to temp - $strTmpPath = $oHostBackup->repoPath() . '/temp/' .$self->stanza() . '.tmp'; + # Create resumable backup from last backup + $strResumePath = + storageRepo()->pathGet('backup/' . $self->stanza() . '/' . + backupLabel(storageRepo(), $strType, substr($strBackup, 0, 16), time())); - testPathMove($oHostBackup->repoPath() . '/backup/' . $self->stanza() . "/${strBackup}", $strTmpPath); - executeTest("sudo chown -R " . $oHostBackup->userGet() . ' ' . dirname($strTmpPath)); + forceStorageRemove(storageRepo(), $strResumePath); + forceStorageMove(storageRepo(), 'backup/' . $self->stanza() . "/${strBackup}", $strResumePath); - $oHostBackup->infoMunge( - "$strTmpPath/" . FILE_MANIFEST, + $oHostBackup->manifestMunge( + basename($strResumePath), {&MANIFEST_SECTION_TARGET_FILE => {(&MANIFEST_TARGET_PGDATA . '/badchecksum.txt') => {&MANIFEST_SUBKEY_CHECKSUM => BOGUS}}}, false); + # Remove the main manifest so the backup appears aborted + forceStorageRemove(storageRepo(), "${strResumePath}/" . FILE_MANIFEST); + # Add tablespace 2 $oHostDbMaster->manifestTablespaceCreate(\%oManifest, 2); $oHostDbMaster->manifestPathCreate(\%oManifest, MANIFEST_TARGET_PGTBLSPC . '/2', '32768'); @@ -812,10 +815,11 @@ sub run $oHostDbMaster->manifestTablespaceDrop(\%oManifest, 11); } - $strTmpPath = $oHostBackup->repoPath() . '/temp/' . $self->stanza() . '.tmp'; + # Create resumable backup from last backup + $strResumePath = storageRepo()->pathGet('backup/' . $self->stanza() . "/${strBackup}"); - testPathMove($oHostBackup->repoPath() . '/backup/' . $self->stanza() . "/${strBackup}", $strTmpPath); - executeTest("sudo chown -R " . $oHostBackup->userGet() . ' ' . dirname($strTmpPath)); + # Remove the main manifest so the backup appears aborted + forceStorageRemove(storageRepo(), "${strResumePath}/" . FILE_MANIFEST); $strBackup = $oHostBackup->backup( $strType, 'cannot resume - new diff', @@ -826,14 +830,15 @@ sub run #----------------------------------------------------------------------------------------------------------------------- $strType = BACKUP_TYPE_DIFF; - $strTmpPath = $oHostBackup->repoPath() . '/temp/' . $self->stanza() . '.tmp'; + # Create resumable backup from last backup + $strResumePath = storageRepo()->pathGet('backup/' . $self->stanza() . "/${strBackup}"); - testPathMove($oHostBackup->repoPath() . '/backup/' . $self->stanza() . "/${strBackup}", $strTmpPath); - executeTest("sudo chown -R " . $oHostBackup->userGet() . ' ' . dirname($strTmpPath)); + # Remove the main manifest so the backup appears aborted + forceStorageRemove(storageRepo(), "${strResumePath}/" . FILE_MANIFEST); $strBackup = $oHostBackup->backup( $strType, 'cannot resume - disabled / no repo link', - {oExpectedManifest => \%oManifest, strTest => TEST_BACKUP_NORESUME, bRepoLink => false, + {oExpectedManifest => \%oManifest, strTest => TEST_BACKUP_NORESUME, strOptionalParam => '--no-resume --log-level-console=detail'}); # Restore @@ -849,7 +854,7 @@ sub run # Remap the base and tablespace paths my %oRemapHash; $oRemapHash{&MANIFEST_TARGET_PGDATA} = $oHostDbMaster->dbBasePath(2); - filePathCreate($oHostDbMaster->dbBasePath(2)); + storageTest()->pathCreate($oHostDbMaster->dbBasePath(2), {strMode => '0700', bCreateParent => true}); $oRemapHash{&MANIFEST_TARGET_PGTBLSPC . '/1'} = $oHostDbMaster->tablespacePath(1, 2); $oRemapHash{&MANIFEST_TARGET_PGTBLSPC . '/2'} = $oHostDbMaster->tablespacePath(2, 2); @@ -900,7 +905,8 @@ sub run # Delete the backup.info and make sure the backup fails - the user must then run a stanza-create --force if ($bNeutralTest) { - executeTest('sudo rm ' . $oHostBackup->repoPath() . '/backup/' . $self->stanza() . '/backup.info'); + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO); + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO . INI_COPY_EXT); } $oHostDbMaster->manifestFileCreate( @@ -915,8 +921,8 @@ sub run strOptionalParam => '--log-level-console=detail'}); # Fail on attempt to create the stanza data since force was not used - $oHostBackup->stanzaCreate('fail on backup directory not empty and missing backup.info', - {iExpectedExitStatus => ERROR_PATH_NOT_EMPTY, strOptionalParam => '--no-' . OPTION_ONLINE}); + $oHostBackup->stanzaCreate('fail on backup directory missing backup.info', + {iExpectedExitStatus => ERROR_FILE_MISSING, strOptionalParam => '--no-' . OPTION_ONLINE}); # Use force to create the stanza $oHostBackup->stanzaCreate('create required data for stanza', @@ -1096,7 +1102,7 @@ sub run executeTest('rm -rf ' . $oHostDbMaster->dbBasePath(2) . "/*"); my $strDbPath = $oHostDbMaster->dbBasePath(2) . '/base'; - filePathCreate($strDbPath); + storageTest()->pathCreate($strDbPath, {strMode => '0700'}); $oRemapHash{&MANIFEST_TARGET_PGDATA} = $strDbPath; delete($oRemapHash{&MANIFEST_TARGET_PGTBLSPC . '/2'}); @@ -1106,7 +1112,7 @@ sub run 'no tablespace remap - error when tablespace dir does not exist', ERROR_PATH_MISSING, '--log-level-console=detail --tablespace-map-all=../../tablespace', false); - filePathCreate($oHostDbMaster->dbBasePath(2) . '/tablespace'); + storageTest()->pathCreate($oHostDbMaster->dbBasePath(2) . '/tablespace', {strMode => '0700'}); $oHostDbMaster->restore( OPTION_DEFAULT_RESTORE_SET, \%oManifest, undef, $bDelta, $bForce, undef, undef, undef, undef, undef, undef, @@ -1117,8 +1123,8 @@ sub run # Backup Info (with an empty stanza) #----------------------------------------------------------------------------------------------------------------------- - executeTest('sudo chmod g+w ' . $oHostBackup->repoPath() . '/backup'); - filePathCreate($oHostBackup->repoPath() . '/backup/db_empty', '0770'); + forceStorageMode(storageRepo(), 'backup', 'g+w'); + storageRepo()->pathCreate(storageRepo()->pathGet('backup/db_empty'), {strMode => '0770'}); $oHostBackup->info('normal output'); $oHostDbMaster->info('normal output', {strOutput => INFO_OUTPUT_JSON}); @@ -1131,7 +1137,7 @@ sub run #----------------------------------------------------------------------------------------------------------------------- if ($bNeutralTest && !$bRemote) { - executeTest('ls -1R ' . $oHostBackup->repoPath() . '/backup/' . $self->stanza() . '/' . PATH_BACKUP_HISTORY, + executeTest('ls -1R ' . storageRepo()->pathGet('backup/' . $self->stanza() . '/' . PATH_BACKUP_HISTORY), {oLogTest => $self->expect(), bRemote => $bRemote}); } diff --git a/test/lib/pgBackRestTest/Module/Info/InfoUnitTest.pm b/test/lib/pgBackRestTest/Module/Info/InfoUnitTest.pm index 01f3276b1..7c098bd12 100644 --- a/test/lib/pgBackRestTest/Module/Info/InfoUnitTest.pm +++ b/test/lib/pgBackRestTest/Module/Info/InfoUnitTest.pm @@ -21,18 +21,16 @@ use pgBackRest::Common::Lock; use pgBackRest::Common::Log; use pgBackRest::Config::Config; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Info; use pgBackRest::Manifest; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; +use pgBackRest::Protocol::Storage::Helper; -use pgBackRestTest::Env::HostEnvTest; use pgBackRestTest::Common::ExecuteTest; -use pgBackRestTest::Env::Host::HostBackupTest; use pgBackRestTest::Common::RunTest; use pgBackRestTest::Env::ExpireEnvTest; +use pgBackRestTest::Env::Host::HostBackupTest; +use pgBackRestTest::Env::HostEnvTest; #################################################################################################################################### # initModule @@ -45,21 +43,6 @@ sub initModule $self->{strArchivePath} = "$self->{strRepoPath}/archive/" . $self->stanza(); $self->{strBackupPath} = "$self->{strRepoPath}/backup/" . $self->stanza(); $self->{strDbPath} = $self->testPath() . '/db'; - - # Create the local file object - $self->{oFile} = - new pgBackRest::File - ( - $self->stanza(), - $self->{strRepoPath}, - new pgBackRest::Protocol::Common::Common - ( - OPTION_DEFAULT_BUFFER_SIZE, # Buffer size - OPTION_DEFAULT_COMPRESS_LEVEL, # Compress level - OPTION_DEFAULT_COMPRESS_LEVEL_NETWORK, # Compress network level - HOST_PROTOCOL_TIMEOUT # Protocol timeout - ) - ); } #################################################################################################################################### @@ -70,20 +53,20 @@ sub initTest my $self = shift; # Create parent path for pg_control - filePathCreate(($self->{strDbPath} . '/' . DB_PATH_GLOBAL), undef, false, true); + storageTest()->pathCreate(($self->{strDbPath} . '/' . DB_PATH_GLOBAL), {bCreateParent => true}); # Create archive info path - filePathCreate($self->{strArchivePath}, undef, true, true); + storageTest()->pathCreate($self->{strArchivePath}, {bIgnoreExists => true, bCreateParent => true}); # Create backup info path - filePathCreate($self->{strBackupPath}, undef, true, true); - - # Create the test object - $self->{oExpireTest} = new pgBackRestTest::Env::ExpireEnvTest(undef, $self->backrestExe(), $self->{oFile}, undef, $self); + storageTest()->pathCreate($self->{strBackupPath}, {bIgnoreExists => true, bCreateParent => true}); # Set options for stanzaCreate $self->optionStanzaCreate(); + # Create the test object + $self->{oExpireTest} = new pgBackRestTest::Env::ExpireEnvTest(undef, $self->backrestExe(), storageRepo(), undef, $self); + $self->{oExpireTest}->stanzaCreate($self->stanza(), PG_VERSION_94); } @@ -93,6 +76,7 @@ sub optionStanzaCreate # Set options for stanzaCreate my $oOption = {}; + $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_DB_PATH, $self->{strDbPath}); $self->optionSetTest($oOption, OPTION_REPO_PATH, $self->{strRepoPath}); @@ -113,7 +97,7 @@ sub run my $oOption = {}; - # $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); + $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); $self->optionSetTest($oOption, OPTION_REPO_PATH, $self->{strRepoPath}); # Used to create backups and WAL to test @@ -123,18 +107,18 @@ sub run ################################################################################################################################ if ($self->begin("Info->formatTextStanza() && Info->formatTextBackup()")) { - $self->configLoadExpect(dclone($oOption), CMD_INFO); + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_INFO); logEnable(); my $oInfo = new pgBackRest::Info(); #--------------------------------------------------------------------------------------------------------------------------- - my $hyStanza = $oInfo->stanzaList($self->{oFile}, $self->stanza()); + my $hyStanza = $oInfo->stanzaList($self->stanza()); $self->testResult(sub {$oInfo->formatTextStanza(@{$hyStanza}[0])}, "stanza: db\n status: error (no valid backups)\n wal archive min/max: none present", "stanza text output"); #--------------------------------------------------------------------------------------------------------------------------- $self->{oExpireTest}->backupCreate($self->stanza(), BACKUP_TYPE_FULL, $lBaseTime += SECONDS_PER_DAY, -1, -1); - $hyStanza = $oInfo->stanzaList($self->{oFile}, $self->stanza()); + $hyStanza = $oInfo->stanzaList($self->stanza()); $self->testResult(sub {$oInfo->formatTextStanza(@{$hyStanza}[-1])}, "stanza: db\n status: ok\n wal archive min/max: none present", @@ -150,7 +134,7 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- $self->{oExpireTest}->backupCreate($self->stanza(), BACKUP_TYPE_DIFF, $lBaseTime += SECONDS_PER_DAY); - $hyStanza = $oInfo->stanzaList($self->{oFile}, $self->stanza()); + $hyStanza = $oInfo->stanzaList($self->stanza()); $self->testResult(sub {$oInfo->formatTextStanza(@{$hyStanza}[-1])}, "stanza: db\n status: ok\n wal archive min/max: 000000010000000000000000 / 000000010000000000000005", @@ -166,7 +150,7 @@ sub run #--------------------------------------------------------------------------------------------------------------------------- $self->{oExpireTest}->backupCreate($self->stanza(), BACKUP_TYPE_INCR, $lBaseTime += SECONDS_PER_DAY, 256); - $hyStanza = $oInfo->stanzaList($self->{oFile}, $self->stanza()); + $hyStanza = $oInfo->stanzaList($self->stanza()); $self->testResult(sub {$oInfo->formatTextStanza(@{$hyStanza}[-1])}, "stanza: db\n status: ok\n wal archive min/max: 000000010000000000000000 / 000000010000000100000008", @@ -185,7 +169,7 @@ sub run $self->optionStanzaCreate(); $self->{oExpireTest}->stanzaUpgrade($self->stanza(), PG_VERSION_95); $self->{oExpireTest}->backupCreate($self->stanza(), BACKUP_TYPE_FULL, $lBaseTime += SECONDS_PER_DAY, 2); - $hyStanza = $oInfo->stanzaList($self->{oFile}, $self->stanza()); + $hyStanza = $oInfo->stanzaList($self->stanza()); $self->testResult(sub {$oInfo->formatTextStanza(@{$hyStanza}[-1])}, "stanza: db\n status: ok\n wal archive min/max: 000000010000000000000000 / 000000010000000000000004", diff --git a/test/lib/pgBackRestTest/Module/Protocol/ProtocolCommonMinionTest.pm b/test/lib/pgBackRestTest/Module/Protocol/ProtocolCommonMinionTest.pm new file mode 100644 index 000000000..dd6ed2da0 --- /dev/null +++ b/test/lib/pgBackRestTest/Module/Protocol/ProtocolCommonMinionTest.pm @@ -0,0 +1,132 @@ +#################################################################################################################################### +# ProtocolCommonMinionTest.pm - tests for Protocol::Common::Minion module +#################################################################################################################################### +package pgBackRestTest::Module::Protocol::ProtocolCommonMinionTest; +use parent 'pgBackRestTest::Common::RunTest'; + +#################################################################################################################################### +# Perl includes +#################################################################################################################################### +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use IO::Socket::UNIX; +use Time::HiRes qw(usleep); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Io::Buffered; +use pgBackRest::Common::Log; +use pgBackRest::Common::Wait; +use pgBackRest::Protocol::Base::Minion; +use pgBackRest::Version; + +use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Common::RunTest; + +#################################################################################################################################### +# socketServer +#################################################################################################################################### +sub socketServer +{ + my $self = shift; + my $strSocketFile = shift; + my $fnServer = shift; + + # Fork off the server + if (fork() == 0) + { + # Open the domain socket + my $oSocketServer = IO::Socket::UNIX->new(Type => SOCK_STREAM(), Local => $strSocketFile, Listen => 1); + &log(INFO, " * socket server open"); + + # Wait for a connection and create IO object + my $oConnection = $oSocketServer->accept(); + my $oIoHandle = new pgBackRest::Common::Io::Handle('socket server', $oConnection, $oConnection); + &log(INFO, " * socket server connected"); + + # Run server function + $fnServer->($oIoHandle); + + # Shutdown server + $oSocketServer->close(); + &log(INFO, " * socket server closed"); + unlink($strSocketFile); + exit 0; + } + + # Wait for client socket + my $oWait = waitInit(5); + while (!-e $strSocketFile && waitMore($oWait)) {}; + + # Open the client socket + my $oClient = IO::Socket::UNIX->new(Type => SOCK_STREAM(), Peer => $strSocketFile); + + if (!defined($oClient)) + { + logErrorResult(ERROR_FILE_OPEN, 'unable to open client socket', $OS_ERROR); + } + + &log(INFO, " * socket client connected"); + + return $oClient; +} + +#################################################################################################################################### +# run +#################################################################################################################################### +sub run +{ + my $self = shift; + + # Test data + my $strSocketFile = $self->testPath() . qw{/} . 'domain.socket'; + + ################################################################################################################################ + # if ($self->begin('new() & timeout() & bufferMax()')) + # { + # #--------------------------------------------------------------------------------------------------------------------------- + # my $oIoBuffered = $self->testResult( + # sub {new pgBackRest::Common::Io::Buffered( + # new pgBackRest::Common::Io::Handle('test'), 10, 2048)}, '[object]', 'new - no handles'); + # + # $self->testResult(sub {$oIoBuffered->timeout()}, 10, ' check timeout'); + # $self->testResult(sub {$oIoBuffered->bufferMax()}, 2048, ' check buffer max'); + # } + + ################################################################################################################################ + if ($self->begin('process()')) + { + my $oClient = $self->socketServer($strSocketFile, sub + { + my $oIoHandle = shift; + + my $oMinion = new pgBackRest::Protocol::Base::Minion('test', new pgBackRest::Common::Io::Buffered($oIoHandle, 5, 4096)); + $oMinion->process(); + }); + + #--------------------------------------------------------------------------------------------------------------------------- + my $oIoBuffered = $self->testResult( + sub {new pgBackRest::Common::Io::Buffered( + new pgBackRest::Common::Io::Handle('socket client', $oClient, $oClient), 5, 4096)}, '[object]', 'open'); + + $self->testResult( + sub {$oIoBuffered->readLine()}, + '{"name":"' . BACKREST_NAME . '","service":"test","version":"' . BACKREST_VERSION . '"}', 'read greeting'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$oIoBuffered->writeLine('{"cmd":"noop"}')}, 15, 'write noop'); + $self->testResult( + sub {$oIoBuffered->readLine()}, '{"out":[]}', 'read output'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$oIoBuffered->writeLine('{"cmd":"exit"}')}, 15, 'write exit'); + $self->testResult( + sub {$oIoBuffered->readLine(true)}, undef, 'read EOF'); + } +} + +1; diff --git a/test/lib/pgBackRestTest/Module/Stanza/StanzaCreateTest.pm b/test/lib/pgBackRestTest/Module/Stanza/StanzaCreateTest.pm index a317dbfdb..f6f4b0284 100644 --- a/test/lib/pgBackRestTest/Module/Stanza/StanzaCreateTest.pm +++ b/test/lib/pgBackRestTest/Module/Stanza/StanzaCreateTest.pm @@ -21,13 +21,16 @@ use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::InfoCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Base; +use pgBackRest::Storage::Filter::Gzip; +use pgBackRest::Storage::Helper; use pgBackRestTest::Env::HostEnvTest; use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Common::FileTest; use pgBackRestTest::Common::RunTest; #################################################################################################################################### @@ -37,13 +40,13 @@ sub run { my $self = shift; - for (my $bRemote = false; $bRemote <= true; $bRemote++) + foreach my $bRemote (false, true) { # Increment the run, log, and decide whether this unit test should be run - if (!$self->begin($bRemote ? "remote" : "local")) {next} + if (!$self->begin("remote ${bRemote}")) {next} # Create hosts, file object, and config - my ($oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile) = $self->setup( + my ($oHostDbMaster, $oHostDbStandby, $oHostBackup) = $self->setup( true, $self->expect(), {bHostBackup => $bRemote}); # Create the stanza @@ -51,12 +54,12 @@ sub run strOptionalParam => '--no-' . OPTION_ONLINE}); # Create the test path for pg_control - filePathCreate(($oHostDbMaster->dbBasePath() . '/' . DB_PATH_GLOBAL), undef, false, true); + storageDb()->pathCreate(($oHostDbMaster->dbBasePath() . '/' . DB_PATH_GLOBAL), {bCreateParent => true}); # Copy pg_control for stanza-create - executeTest( - 'cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin ' . $oHostDbMaster->dbBasePath() . '/' . - DB_FILE_PGCONTROL); + storageDb()->copy( + $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin', + $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); $oHostBackup->stanzaCreate('successfully create the stanza', {strOptionalParam => '--no-' . OPTION_ONLINE}); @@ -65,31 +68,38 @@ sub run # Create the xlog path my $strXlogPath = $oHostDbMaster->dbBasePath() . '/pg_xlog'; - filePathCreate($strXlogPath, undef, false, true); + storageDb()->pathCreate($strXlogPath, {bCreateParent => true}); # Generate WAL then push to get valid archive data in the archive directory - my ($strArchiveFile, $strSourceFile) = $self->archiveGenerate($oFile, $strXlogPath, 1, 1, WAL_VERSION_94); + my ($strArchiveFile, $strSourceFile) = $self->archiveGenerate($strXlogPath, 1, 1, WAL_VERSION_94); my $strCommand = $oHostDbMaster->backrestExe() . ' --config=' . $oHostDbMaster->backrestConfig() . ' --stanza=db archive-push'; $oHostDbMaster->executeSimple($strCommand . " ${strSourceFile}", {oLogTest => $self->expect()}); - # With data existing in the archive dir, remove the info file and confirm failure - $oHostBackup->executeSimple('rm ' . $oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE)); + # With data existing in the archive dir, remove the info files and confirm failure + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE); + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE . INI_COPY_EXT); + $oHostBackup->stanzaCreate('fail on archive info file missing from non-empty dir', - {iExpectedExitStatus => ERROR_PATH_NOT_EMPTY, strOptionalParam => '--no-' . OPTION_ONLINE}); + {iExpectedExitStatus => ERROR_FILE_MISSING, strOptionalParam => '--no-' . OPTION_ONLINE}); # Change the permissions of the archive file so it cannot be read - executeTest('sudo chmod 220 ' . $oHostBackup->repoPath() . '/archive/' . $self->stanza() . '/' . PG_VERSION_94 . '-1/' . - substr($strArchiveFile, 0, 16) . "/*.gz"); + forceStorageMode( + storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . PG_VERSION_94 . '-1/' . substr($strArchiveFile, 0, 16) . '/*.' . + COMPRESS_EXT, + '220'); # Force creation of the info file but fail on gunzip $oHostBackup->stanzaCreate('gunzip fail on forced stanza-create', {iExpectedExitStatus => ERROR_FILE_OPEN, strOptionalParam => '--no-' . OPTION_ONLINE . ' --' . OPTION_FORCE}); - # Change permissions back and force creation of archive info from the gz file - executeTest('sudo chmod 640 ' . $oHostBackup->repoPath() . '/archive/' . $self->stanza() . '/' . PG_VERSION_94 . '-1/' . - substr($strArchiveFile, 0, 16) . "/*.gz"); + # Change permissions back + forceStorageMode( + storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . PG_VERSION_94 . '-1/' . substr($strArchiveFile, 0, 16) . '/*.' . + COMPRESS_EXT, + '640'); + # Force creation of archive info from the gz file $oHostBackup->stanzaCreate('force create archive.info from gz file', {strOptionalParam => '--no-' . OPTION_ONLINE . ' --' . OPTION_FORCE}); @@ -97,16 +107,9 @@ sub run # stanza already exists $oHostBackup->stanzaCreate('repeat create', {strOptionalParam => '--no-' . OPTION_ONLINE}); - # Remove the backup info file and confirm success with backup dir empty - # Backup Full tests will confirm failure when backup dir not empty - $oHostBackup->executeSimple('rm ' . $oFile->pathGet(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO)); - $oHostBackup->stanzaCreate('force not needed when backup dir empty, archive.info exists but backup.info is missing', - {strOptionalParam => '--no-' . OPTION_ONLINE}); - - # Remove the backup.info file then munge and save the archive info file - $oHostBackup->executeSimple('rm ' . $oFile->pathGet(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO)); + # Munge and save the archive info file $oHostBackup->infoMunge( - $oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE), + storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE), {&INFO_BACKUP_SECTION_DB => {&INFO_BACKUP_KEY_DB_VERSION => '8.0'}}); $oHostBackup->stanzaCreate('hash check fails requiring force', @@ -116,38 +119,54 @@ sub run {strOptionalParam => '--no-' . OPTION_ONLINE . ' --' . OPTION_FORCE}); # Cleanup the global hash but don't save the file (permission issues may prevent it anyway) - $oHostBackup->infoRestore($oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE), false); + $oHostBackup->infoRestore(storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE), false); # Change the database version by copying a new pg_control file - executeTest('sudo rm ' . $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); - executeTest('cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_93 . '.bin ' . $oHostDbMaster->dbBasePath() . - '/' . DB_FILE_PGCONTROL); + storageDb()->remove($oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); + storageDb()->copy( + $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_93 . '.bin', + $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); $oHostBackup->stanzaCreate('fail on database mismatch without force option', {iExpectedExitStatus => ERROR_FILE_INVALID, strOptionalParam => '--no-' . OPTION_ONLINE}); # Restore pg_control - executeTest('sudo rm ' . $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); - executeTest('cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin ' . + storageDb()->remove($oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); + storageDb()->copy( + $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin', $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); # Unzip the archive file and recreate the archive.info file from it - executeTest('sudo gunzip ' . $oHostBackup->repoPath() . '/archive/' . $self->stanza() . '/' . PG_VERSION_94 . '-1/' . - substr($strArchiveFile, 0, 16) . "/${strArchiveFile}-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27.gz"); + my $strArchiveTest = PG_VERSION_94 . "-1/${strArchiveFile}-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27"; + + forceStorageMode( + storageRepo(), dirname(storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . "/${strArchiveTest}.gz")), 'g+w', + {bRecursive => true}); + + storageRepo()->copy( + storageRepo()->openRead( + STORAGE_REPO_ARCHIVE . "/${strArchiveTest}.gz", + {rhyFilter => [{strClass => STORAGE_FILTER_GZIP, rxyParam => [{strCompressType => STORAGE_DECOMPRESS}]}]}), + STORAGE_REPO_ARCHIVE . "/${strArchiveTest}"); + $oHostBackup->stanzaCreate('force create archive.info from uncompressed file', {strOptionalParam => '--no-' . OPTION_ONLINE . ' --' . OPTION_FORCE}); # Remove the uncompressed WAL archive file and archive.info - executeTest('sudo rm ' . $oHostBackup->repoPath() . '/archive/' . $self->stanza() . '/' . PG_VERSION_94 . '-1/' . - substr($strArchiveFile, 0, 16) . "/${strArchiveFile}-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27"); - $oHostBackup->executeSimple('rm ' . $oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE)); + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . "/${strArchiveTest}"); + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE); + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE . INI_COPY_EXT); + $oHostBackup->stanzaCreate('force with missing WAL archive file', {strOptionalParam => '--no-' . OPTION_ONLINE . ' --' . OPTION_FORCE}); # Remove the WAL archive directory - executeTest('sudo rm -rf ' . $oHostBackup->repoPath() . '/archive/' . $self->stanza() . '/' . PG_VERSION_94 . '-1/' . - substr($strArchiveFile, 0, 16)); - $oHostBackup->executeSimple('rm ' . $oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE)); + forceStorageRemove( + storageRepo(), + STORAGE_REPO_ARCHIVE . qw{/} . PG_VERSION_94 . '-1/' . substr($strArchiveFile, 0, 16), {bRecurse => true}); + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE); + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE . INI_COPY_EXT); + $oHostBackup->stanzaCreate('force with missing WAL archive directory', {strOptionalParam => '--no-' . OPTION_ONLINE . ' --' . OPTION_FORCE}); } diff --git a/test/lib/pgBackRestTest/Module/Stanza/StanzaUnitTest.pm b/test/lib/pgBackRestTest/Module/Stanza/StanzaUnitTest.pm index 89ece2462..e6609af14 100644 --- a/test/lib/pgBackRestTest/Module/Stanza/StanzaUnitTest.pm +++ b/test/lib/pgBackRestTest/Module/Stanza/StanzaUnitTest.pm @@ -19,19 +19,19 @@ use pgBackRest::Archive::ArchiveCommon; use pgBackRest::Archive::ArchiveInfo; use pgBackRest::Backup::Info; use pgBackRest::Common::Exception; +use pgBackRest::Common::Ini; use pgBackRest::Common::Lock; use pgBackRest::Common::Log; use pgBackRest::Config::Config; use pgBackRest::DbVersion; -use pgBackRest::File; -use pgBackRest::FileCommon; use pgBackRest::Manifest; -use pgBackRest::Protocol::Common::Common; use pgBackRest::Protocol::Helper; use pgBackRest::Stanza; +use pgBackRest::Protocol::Storage::Helper; use pgBackRestTest::Env::HostEnvTest; use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Common::FileTest; use pgBackRestTest::Env::Host::HostBackupTest; use pgBackRestTest::Common::RunTest; @@ -57,13 +57,13 @@ sub initTest my $self = shift; # Create archive info path - filePathCreate($self->{strArchivePath}, undef, true, true); + storageTest()->pathCreate($self->{strArchivePath}, {bIgnoreExists => true, bCreateParent => true}); # Create backup info path - filePathCreate($self->{strBackupPath}, undef, true, true); + storageTest()->pathCreate($self->{strBackupPath}, {bIgnoreExists => true, bCreateParent => true}); # Create pg_control path - filePathCreate(($self->{strDbPath} . '/' . DB_PATH_GLOBAL), undef, false, true); + storageTest()->pathCreate($self->{strDbPath} . '/' . DB_PATH_GLOBAL, {bCreateParent => true}); # Copy a pg_control file into the pg_control path executeTest( @@ -90,15 +90,255 @@ sub run $self->optionSetTest($oOption, OPTION_DB_TIMEOUT, 5); $self->optionSetTest($oOption, OPTION_PROTOCOL_TIMEOUT, 6); - # ??? Currently only contains unit tests for stanza-upgrade. TODO stanza-create + ################################################################################################################################ + if ($self->begin("Stanza::new")) + { + #--------------------------------------------------------------------------------------------------------------------------- + $self->optionBoolSetTest($oOption, OPTION_ONLINE, true); + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_CREATE); logEnable(); + # my $oStanza = new pgBackRest::Stanza(); + + $self->testException(sub {(new pgBackRest::Stanza())}, ERROR_DB_CONNECT, + "could not connect to server: No such file or directory\n"); + + $self->optionBoolSetTest($oOption, OPTION_ONLINE, false); + } ################################################################################################################################ - if ($self->begin("Stanza::stanzaUpgrade")) + if ($self->begin("Stanza::process()")) { - my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($self->{strArchivePath}, false); + #--------------------------------------------------------------------------------------------------------------------------- + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_CHECK); logEnable(); + my $oStanza = new pgBackRest::Stanza(); + + $self->testException(sub {$oStanza->process()}, ERROR_ASSERT, + "stanza->process() called with invalid command: " . CMD_CHECK); + + #--------------------------------------------------------------------------------------------------------------------------- + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_CREATE); logEnable(); + rmdir($self->{strArchivePath}); + rmdir($self->{strBackupPath}); + $self->testResult(sub {$oStanza->process()}, 0, 'parent paths recreated successfully'); + } + + ################################################################################################################################ + if ($self->begin("Stanza::stanzaCreate()")) + { + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_CREATE); logEnable(); + my $oStanza = new pgBackRest::Stanza(); + + my $strBackupInfoFile = storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO); + my $strBackupInfoFileCopy = storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO . INI_COPY_EXT); + my $strArchiveInfoFile = storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE); + + # No force. Archive dir not empty. No archive.info file. Backup directory empty. + #--------------------------------------------------------------------------------------------------------------------------- + storageRepo()->pathCreate(STORAGE_REPO_ARCHIVE . "/9.4-1"); + $self->testException(sub {$oStanza->stanzaCreate()}, ERROR_PATH_NOT_EMPTY, + "archive directory not empty" . + "\nHINT: use stanza-create --force to force the stanza data to be created."); + + # No force. Archive dir not empty. No archive.info file. Backup directory not empty. No backup.info file. + #--------------------------------------------------------------------------------------------------------------------------- + storageRepo()->pathCreate(STORAGE_REPO_BACKUP . "/12345"); + $self->testException(sub {$oStanza->stanzaCreate()}, ERROR_PATH_NOT_EMPTY, + "backup directory and/or archive directory not empty" . + "\nHINT: use stanza-create --force to force the stanza data to be created."); + + # No force. Archive dir empty. No archive.info file. Backup directory not empty. No backup.info file. + #--------------------------------------------------------------------------------------------------------------------------- + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . "/9.4-1", {bRecurse => true}); + $self->testException(sub {$oStanza->stanzaCreate()}, ERROR_PATH_NOT_EMPTY, + "backup directory not empty" . + "\nHINT: use stanza-create --force to force the stanza data to be created."); + + # No force. No archive.info file and no archive sub-directories or files. Backup.info exists and no backup sub-directories + # or files + #--------------------------------------------------------------------------------------------------------------------------- + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . "/12345", {bRecurse => true}); + (new pgBackRest::Backup::Info($self->{strBackupPath}, false, false, {bIgnoreMissing => true}))->create(PG_VERSION_94, + WAL_VERSION_94_SYS_ID, '942', '201409291', true); + $self->testException(sub {$oStanza->stanzaCreate()}, ERROR_FILE_MISSING, + "archive information missing" . + "\nHINT: use stanza-create --force to force the stanza data to be created."); + + # No force. No backup.info file (backup.info.copy only) and no backup sub-directories or files. Archive.info exists and no + # archive sub-directories or files + #--------------------------------------------------------------------------------------------------------------------------- + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO); + (new pgBackRest::Archive::ArchiveInfo($self->{strArchivePath}, false, {bIgnoreMissing => true}))->create(PG_VERSION_94, + WAL_VERSION_94_SYS_ID, true); + $self->testException(sub {$oStanza->stanzaCreate()}, ERROR_FILE_MISSING, + "backup information missing" . + "\nHINT: use stanza-create --force to force the stanza data to be created."); + + # No force. Valid archive.info exists. Invalid backup.info exists. + #--------------------------------------------------------------------------------------------------------------------------- + (new pgBackRest::Backup::Info($self->{strBackupPath}, false, false))->create(PG_VERSION_94, WAL_VERSION_93_SYS_ID, '942', + '201409291', true); + $self->testException(sub {$oStanza->stanzaCreate()}, ERROR_FILE_INVALID, + "backup info file invalid" . + "\nHINT: use stanza-upgrade if the database has been upgraded or use --force"); + + # No force. Invalid archive.info exists. Invalid backup.info exists. + #--------------------------------------------------------------------------------------------------------------------------- + (new pgBackRest::Archive::ArchiveInfo($self->{strArchivePath}, false))->create(PG_VERSION_94, WAL_VERSION_93_SYS_ID, true); + $self->testException(sub {$oStanza->stanzaCreate()}, ERROR_FILE_INVALID, + "archive info file invalid" . + "\nHINT: use stanza-upgrade if the database has been upgraded or use --force"); + + # Create stanza without force + #--------------------------------------------------------------------------------------------------------------------------- + forceStorageRemove(storageRepo(), $strBackupInfoFile . "*"); + forceStorageRemove(storageRepo(), $strArchiveInfoFile . "*"); + $self->testResult(sub {$oStanza->stanzaCreate()}, 0, 'successfully created stanza without force'); + + # Create stanza successfully with .info and .info.copy files already existing + #-------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$oStanza->stanzaCreate()}, 0, 'successfully created stanza without force with existing info files'); + + # Remove only backup.info.copy file - confirm stanza create does not throw an error + #--------------------------------------------------------------------------------------------------------------------------- + forceStorageRemove(storageRepo(), $strBackupInfoFileCopy); + $self->testResult(sub {$oStanza->stanzaCreate()}, 0, 'no error on missing copy file'); + $self->testResult(sub {storageRepo()->exists($strBackupInfoFile) && + !storageRepo()->exists($strBackupInfoFileCopy)}, + true, ' and only backup.info exists'); + + # Force on, Repo-Sync off. Archive dir empty. No archive.info file. Backup directory not empty. No backup.info file. + #--------------------------------------------------------------------------------------------------------------------------- + $self->optionBoolSetTest($oOption, OPTION_FORCE, true); + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_CREATE); logEnable(); + + forceStorageRemove(storageRepo(), $strBackupInfoFile . "*"); + forceStorageRemove(storageRepo(), $strArchiveInfoFile . "*"); + storageRepo()->pathCreate(STORAGE_REPO_BACKUP . "/12345"); + $oStanza = new pgBackRest::Stanza(); + $self->testResult(sub {$oStanza->stanzaCreate()}, 0, 'successfully created stanza with force'); + $self->testResult(sub {(new pgBackRest::Archive::ArchiveInfo($self->{strArchivePath}))->check(PG_VERSION_94, + WAL_VERSION_94_SYS_ID) && (new pgBackRest::Backup::Info($self->{strBackupPath}))->check(PG_VERSION_94, '942', + '201409291', WAL_VERSION_94_SYS_ID)}, 1, ' new info files correct'); + + $self->optionReset($oOption, OPTION_FORCE); + } + + ################################################################################################################################ + if ($self->begin("Stanza::infoFileCreate")) + { + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_CREATE); logEnable(); + my $oStanza = new pgBackRest::Stanza(); + + my @stryFileList = ('anything'); + my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($self->{strArchivePath}, false, {bIgnoreMissing => true}); + my $oBackupInfo = new pgBackRest::Backup::Info($self->{strBackupPath}, false, false, {bIgnoreMissing => true}); + + # If infoFileCreate is ever called directly, confirm it errors if something other than the info file exists in archive dir + # when --force is not used + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException(sub {$oStanza->infoFileCreate($oArchiveInfo, STORAGE_REPO_ARCHIVE, $self->{strArchivePath}, + \@stryFileList)}, ERROR_PATH_NOT_EMPTY, + "archive directory not empty" . + "\nHINT: use stanza-create --force to force the stanza data to be created."); + + # If infoFileCreate is ever called directly, confirm it errors if something other than the info file exists in backup dir + # when --force is not used + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException(sub {$oStanza->infoFileCreate($oBackupInfo, STORAGE_REPO_BACKUP, $self->{strBackupPath}, + \@stryFileList)}, ERROR_PATH_NOT_EMPTY, + "backup directory not empty" . + "\nHINT: use stanza-create --force to force the stanza data to be created."); + + # Set force option -------- + $self->optionBoolSetTest($oOption, OPTION_FORCE, true); + + # Force. Invalid archive.info exists. + #--------------------------------------------------------------------------------------------------------------------------- + $self->optionBoolSetTest($oOption, OPTION_FORCE, true); + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_CREATE); logEnable(); + + $oArchiveInfo->create(PG_VERSION_94, 12345, true); + $oStanza = new pgBackRest::Stanza(); + $self->testResult(sub {$oStanza->infoFileCreate($oArchiveInfo, STORAGE_REPO_ARCHIVE, $self->{strArchivePath}, + \@stryFileList)}, "(0, [undef])", 'force successful for invalid info file'); + + # Cause an error to be thrown by changing the permissions of the archive file so it cannot be read for the hash comparison + #--------------------------------------------------------------------------------------------------------------------------- + executeTest('sudo chmod 220 ' . $self->{strArchivePath} . "/archive.info"); + $self->testResult(sub {$oStanza->infoFileCreate($oArchiveInfo, STORAGE_REPO_ARCHIVE, $self->{strArchivePath}, + \@stryFileList)}, + "(" . &ERROR_FILE_OPEN . ", unable to open '" . $self->{strArchivePath} . "/archive.info': Permission denied)", + 'exception code path'); + executeTest('sudo chmod 640 ' . $self->{strArchivePath} . "/archive.info"); + + # Force. Archive dir not empty. Warning returned. + #--------------------------------------------------------------------------------------------------------------------------- + storageTest()->pathCreate($self->{strArchivePath} . "/9.3-0", {bIgnoreExists => true, bCreateParent => true}); + $self->testResult(sub {$oStanza->infoFileCreate($oArchiveInfo, STORAGE_REPO_ARCHIVE, $self->{strArchivePath}, + \@stryFileList)}, "(0, [undef])", 'force successful with archive.info file warning', + {strLogExpect => "WARN: found empty directory " . $self->{strArchivePath} . "/9.3-0"}); + + # Reset force option -------- + $self->optionReset($oOption, OPTION_FORCE); + } + + ################################################################################################################################ + if ($self->begin("Stanza::infoObject()")) + { + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_UPGRADE); logEnable(); + my $oStanza = new pgBackRest::Stanza(); + + $self->testException(sub {$oStanza->infoObject(STORAGE_REPO_BACKUP, $self->{strBackupPath})}, ERROR_FILE_MISSING, + storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO) . + " does not exist and is required to perform a backup." . + "\nHINT: has a stanza-create been performed?"); + + # Force valid but not set. + #--------------------------------------------------------------------------------------------------------------------------- + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_CREATE); logEnable(); + $oStanza = new pgBackRest::Stanza(); + + $self->testException(sub {$oStanza->infoObject(STORAGE_REPO_BACKUP, $self->{strBackupPath})}, ERROR_FILE_MISSING, + storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO) . + " does not exist and is required to perform a backup." . + "\nHINT: has a stanza-create been performed?" . + "\nHINT: use stanza-create --force to force the stanza data to be created."); + + # Force. + #--------------------------------------------------------------------------------------------------------------------------- + $self->optionBoolSetTest($oOption, OPTION_FORCE, true); + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_CREATE); logEnable(); + + $self->testResult(sub {$oStanza->infoObject(STORAGE_REPO_ARCHIVE, $self->{strArchivePath})}, "[object]", + 'archive force successful'); + $self->testResult(sub {$oStanza->infoObject(STORAGE_REPO_BACKUP, $self->{strBackupPath})}, "[object]", + 'backup force successful'); + + # Reset force option -------- + $self->optionReset($oOption, OPTION_FORCE); + + # Cause an error to be thrown by changing the permissions of the archive file so it cannot be read + #--------------------------------------------------------------------------------------------------------------------------- + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_CREATE); logEnable(); + + (new pgBackRest::Backup::Info($self->{strBackupPath}, false, false, {bIgnoreMissing => true}))->create(PG_VERSION_94, + WAL_VERSION_94_SYS_ID, '942', '201409291', true); + forceStorageRemove(storageRepo(), storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO . INI_COPY_EXT)); + executeTest('sudo chmod 220 ' . storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO)); + $self->testException(sub {$oStanza->infoObject(STORAGE_REPO_BACKUP, $self->{strBackupPath})}, ERROR_FILE_OPEN, + "unable to open '" . storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO) . + "': Permission denied"); + executeTest('sudo chmod 640 ' . storageRepo()->pathGet(STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO)); + } + + ################################################################################################################################ + if ($self->begin("Stanza::stanzaUpgrade()")) + { + logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_UPGRADE); logEnable(); + + my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($self->{strArchivePath}, false, {bIgnoreMissing => true}); $oArchiveInfo->create('9.3', '6999999999999999999', true); - my $oBackupInfo = new pgBackRest::Backup::Info($self->{strBackupPath}, false, false); + my $oBackupInfo = new pgBackRest::Backup::Info($self->{strBackupPath}, false, false, {bIgnoreMissing => true}); $oBackupInfo->create('9.3', '6999999999999999999', '937', '201306121', true); logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_UPGRADE); logEnable(); @@ -112,41 +352,41 @@ sub run } ################################################################################################################################ - if ($self->begin("Stanza::upgradeCheck")) + if ($self->begin("Stanza::upgradeCheck()")) { logDisable(); $self->configLoadExpect(dclone($oOption), CMD_STANZA_UPGRADE); logEnable(); my $oStanza = new pgBackRest::Stanza(); # Create the archive file with current data - my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($self->{strArchivePath}, false); + my $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($self->{strArchivePath}, false, {bIgnoreMissing => true}); $oArchiveInfo->create('9.4', 6353949018581704918, true); # Create the backup file with outdated data - my $oBackupInfo = new pgBackRest::Backup::Info($self->{strBackupPath}, false, false); + my $oBackupInfo = new pgBackRest::Backup::Info($self->{strBackupPath}, false, false, {bIgnoreMissing => true}); $oBackupInfo->create('9.3', 6999999999999999999, '937', '201306121', true); # Confirm upgrade is needed for backup - $self->testResult(sub {$oStanza->upgradeCheck($oBackupInfo, PATH_BACKUP_CLUSTER, ERROR_BACKUP_MISMATCH)}, true, + $self->testResult(sub {$oStanza->upgradeCheck($oBackupInfo, STORAGE_REPO_BACKUP, ERROR_BACKUP_MISMATCH)}, true, 'backup upgrade needed'); - $self->testResult(sub {$oStanza->upgradeCheck($oArchiveInfo, PATH_BACKUP_ARCHIVE, ERROR_ARCHIVE_MISMATCH)}, false, + $self->testResult(sub {$oStanza->upgradeCheck($oArchiveInfo, STORAGE_REPO_ARCHIVE, ERROR_ARCHIVE_MISMATCH)}, false, 'archive upgrade not needed'); # Change archive file to contain outdated data $oArchiveInfo->create('9.3', 6999999999999999999, true); # Confirm upgrade is needed for both - $self->testResult(sub {$oStanza->upgradeCheck($oArchiveInfo, PATH_BACKUP_ARCHIVE, ERROR_ARCHIVE_MISMATCH)}, true, + $self->testResult(sub {$oStanza->upgradeCheck($oArchiveInfo, STORAGE_REPO_ARCHIVE, ERROR_ARCHIVE_MISMATCH)}, true, 'archive upgrade needed'); - $self->testResult(sub {$oStanza->upgradeCheck($oBackupInfo, PATH_BACKUP_CLUSTER, ERROR_BACKUP_MISMATCH)}, true, + $self->testResult(sub {$oStanza->upgradeCheck($oBackupInfo, STORAGE_REPO_BACKUP, ERROR_BACKUP_MISMATCH)}, true, 'backup upgrade needed'); # Change the backup file to contain current data $oBackupInfo->create('9.4', 6353949018581704918, '942', '201409291', true); # Confirm upgrade is needed for archive - $self->testResult(sub {$oStanza->upgradeCheck($oBackupInfo, PATH_BACKUP_CLUSTER, ERROR_BACKUP_MISMATCH)}, false, + $self->testResult(sub {$oStanza->upgradeCheck($oBackupInfo, STORAGE_REPO_BACKUP, ERROR_BACKUP_MISMATCH)}, false, 'backup upgrade not needed'); - $self->testResult(sub {$oStanza->upgradeCheck($oArchiveInfo, PATH_BACKUP_ARCHIVE, ERROR_ARCHIVE_MISMATCH)}, true, + $self->testResult(sub {$oStanza->upgradeCheck($oArchiveInfo, STORAGE_REPO_ARCHIVE, ERROR_ARCHIVE_MISMATCH)}, true, 'archive upgrade needed'); #--------------------------------------------------------------------------------------------------------------------------- @@ -156,9 +396,9 @@ sub run $oArchiveInfo = new pgBackRest::Archive::ArchiveInfo($self->{strArchivePath}); $oBackupInfo = new pgBackRest::Backup::Info($self->{strBackupPath}); - $self->testResult(sub {$oStanza->upgradeCheck($oArchiveInfo, PATH_BACKUP_ARCHIVE, ERROR_ARCHIVE_MISMATCH)}, false, + $self->testResult(sub {$oStanza->upgradeCheck($oArchiveInfo, STORAGE_REPO_ARCHIVE, ERROR_ARCHIVE_MISMATCH)}, false, 'archive upgrade not necessary'); - $self->testResult(sub {$oStanza->upgradeCheck($oBackupInfo, PATH_BACKUP_CLUSTER, ERROR_BACKUP_MISMATCH)}, false, + $self->testResult(sub {$oStanza->upgradeCheck($oBackupInfo, STORAGE_REPO_BACKUP, ERROR_BACKUP_MISMATCH)}, false, 'backup upgrade not necessary'); #--------------------------------------------------------------------------------------------------------------------------- @@ -167,11 +407,12 @@ sub run $oStanza->{oDb}{ullDbSysId} = 6999999999999999999; # Pass an expected error that is different than the actual error and confirm an error is thrown - $self->testException(sub {$oStanza->upgradeCheck($oArchiveInfo, PATH_BACKUP_ARCHIVE, ERROR_ASSERT)}, ERROR_ARCHIVE_MISMATCH, + $self->testException(sub {$oStanza->upgradeCheck($oArchiveInfo, STORAGE_REPO_ARCHIVE, ERROR_ASSERT)}, + ERROR_ARCHIVE_MISMATCH, "WAL segment version 9.3 does not match archive version 9.4\n" . "WAL segment system-id 6999999999999999999 does not match archive system-id 6353949018581704918\n" . "HINT: are you archiving to the correct stanza?"); - $self->testException(sub {$oStanza->upgradeCheck($oBackupInfo, PATH_BACKUP_CLUSTER, ERROR_ASSERT)}, ERROR_BACKUP_MISMATCH, + $self->testException(sub {$oStanza->upgradeCheck($oBackupInfo, STORAGE_REPO_BACKUP, ERROR_ASSERT)}, ERROR_BACKUP_MISMATCH, "database version = 9.3, system-id 6999999999999999999 does not match backup version = 9.4, " . "system-id = 6353949018581704918\nHINT: is this the correct stanza?"); } diff --git a/test/lib/pgBackRestTest/Module/Stanza/StanzaUpgradeTest.pm b/test/lib/pgBackRestTest/Module/Stanza/StanzaUpgradeTest.pm index 45231a082..9f79cbb32 100644 --- a/test/lib/pgBackRestTest/Module/Stanza/StanzaUpgradeTest.pm +++ b/test/lib/pgBackRestTest/Module/Stanza/StanzaUpgradeTest.pm @@ -20,19 +20,20 @@ use File::Basename qw(dirname); use pgBackRest::Archive::ArchiveInfo; use pgBackRest::Backup::Info; -use pgBackRest::DbVersion; use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; use pgBackRest::Common::Log; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; -use pgBackRest::File; -use pgBackRest::FileCommon; +use pgBackRest::DbVersion; use pgBackRest::InfoCommon; use pgBackRest::Manifest; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; use pgBackRestTest::Env::HostEnvTest; use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Common::FileTest; use pgBackRestTest::Common::RunTest; #################################################################################################################################### @@ -48,20 +49,20 @@ sub run if (!$self->begin($bRemote ? "remote" : "local")) {next} # Create hosts, file object, and config - my ($oHostDbMaster, $oHostDbStandby, $oHostBackup, $oFile) = $self->setup( + my ($oHostDbMaster, $oHostDbStandby, $oHostBackup) = $self->setup( true, $self->expect(), {bHostBackup => $bRemote}); # Create the test path for pg_control - filePathCreate(($oHostDbMaster->dbBasePath() . '/' . DB_PATH_GLOBAL), undef, false, true); + storageDb()->pathCreate($oHostDbMaster->dbBasePath() . '/' . DB_PATH_GLOBAL, {bCreateParent => true}); # Copy pg_control for stanza-create - executeTest( - 'cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_93 . '.bin ' . $oHostDbMaster->dbBasePath() . '/' . - DB_FILE_PGCONTROL); + storageDb()->copy( + $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_93 . '.bin', + $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); # Create the xlog path for pushing WAL my $strXlogPath = $oHostDbMaster->dbBasePath() . '/pg_xlog'; - filePathCreate($strXlogPath, undef, false, true); + storageDb()->pathCreate($strXlogPath, {bCreateParent => true}); my $strArchiveTestFile = $self->dataPath() . '/backup.wal1_'; # Attempt an upgrade before stanza-create has been performed @@ -79,7 +80,9 @@ sub run # Fail upgrade when backup.info missing #-------------------------------------------------------------------------------------------------------------------------- - $oHostBackup->executeSimple('rm ' . $oFile->pathGet(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO)); + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO); + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO . INI_COPY_EXT); + $oHostBackup->stanzaUpgrade('fail on stanza not initialized since backup.info is missing', {iExpectedExitStatus => ERROR_FILE_MISSING, strOptionalParam => '--no-' . OPTION_ONLINE}); @@ -90,14 +93,11 @@ sub run # Fail on archive push due to mismatch of DB since stanza not upgraded #-------------------------------------------------------------------------------------------------------------------------- - # Push a WAL segment so have a valid file in archive dir - # $oHostDbMaster->archivePush($strXlogPath, $strArchiveTestFile . WAL_VERSION_93 . '.bin', 1); - # Upgrade the DB by copying new pg_control - executeTest( - 'cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin ' . $oHostDbMaster->dbBasePath() . '/' . - DB_FILE_PGCONTROL); - executeTest('sudo chmod 600 ' . $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); + storageDb()->copy( + $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_94 . '.bin', + $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); + forceStorageMode(storageDb(), $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL, '600'); # Fail on attempt to push an archive $oHostDbMaster->archivePush($strXlogPath, $strArchiveTestFile . WAL_VERSION_94 . '.bin', 1, ERROR_ARCHIVE_MISMATCH); @@ -111,43 +111,49 @@ sub run # Push a WAL segment so have a valid file in the latest DB archive dir only $oHostDbMaster->archivePush($strXlogPath, $strArchiveTestFile . WAL_VERSION_94 . '.bin', 1); $self->testResult( - sub {$oFile->list(PATH_BACKUP_ARCHIVE, PG_VERSION_94 . '-2/0000000100000001')}, - "000000010000000100000001-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27.$oFile->{strCompressExtension}", + sub {storageRepo()->list(STORAGE_REPO_ARCHIVE . qw{/} . PG_VERSION_94 . '-2/0000000100000001')}, + "000000010000000100000001-1e34fa1c833090d94b9bb14f2a8d3153dca6ea27." . COMPRESS_EXT, 'check that WAL is in the archive at -2'); # Create a DB history mismatch between the info files #-------------------------------------------------------------------------------------------------------------------------- # Remove the archive info file and force reconstruction - $oHostBackup->executeSimple('rm ' . $oFile->pathGet(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE)); + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE); + forceStorageRemove(storageRepo(), STORAGE_REPO_ARCHIVE . qw{/} . ARCHIVE_INFO_FILE . INI_COPY_EXT); + $oHostBackup->stanzaCreate('use force to recreate the stanza producing mismatched info history but same current db-id', {strOptionalParam => '--no-' . OPTION_ONLINE . ' --' . OPTION_FORCE}); # Create a DB-ID mismatch between the info files #-------------------------------------------------------------------------------------------------------------------------- - $oHostBackup->executeSimple('rm ' . $oFile->pathGet(PATH_BACKUP_CLUSTER, FILE_BACKUP_INFO)); + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO); + forceStorageRemove(storageRepo(), STORAGE_REPO_BACKUP . qw{/} . FILE_BACKUP_INFO . INI_COPY_EXT); + $oHostBackup->stanzaCreate('use force to recreate the stanza producing mismatched db-id', {strOptionalParam => '--no-' . OPTION_ONLINE . ' --' . OPTION_FORCE}); # Confirm successful backup at db-1 although archive at db-2 #-------------------------------------------------------------------------------------------------------------------------- # Create the tablespace directory and perform a backup - filePathCreate($oHostDbMaster->dbBasePath() . '/' . DB_PATH_PGTBLSPC); + storageTest()->pathCreate($oHostDbMaster->dbBasePath() . '/' . DB_PATH_PGTBLSPC); $oHostBackup->backup('full', 'create first full backup ', {strOptionalParam => '--retention-full=2 --no-' . OPTION_ONLINE . ' --log-level-console=detail'}, false); # Test archive dir version XX.Y-Z ensuring sort order of db ids is reconstructed correctly from the directory db-id value #-------------------------------------------------------------------------------------------------------------------------- # Create the 10.0-3 directory and copy a WAL file to it (something that has a different system id) - $oHostBackup->executeSimple('mkdir ' . $oFile->pathGet(PATH_BACKUP_ARCHIVE) . '/' . '10.0-3'); - $oHostBackup->executeSimple('mkdir ' . $oFile->pathGet(PATH_BACKUP_ARCHIVE) . '/' . '10.0-3/0000000100000001'); - $oHostBackup->executeSimple('cp ' . $self->dataPath() . '/backup.wal1_' . WAL_VERSION_92 . '.bin ' - . $oFile->pathGet(PATH_BACKUP_ARCHIVE) . '/' . '10.0-3/0000000100000001/000000010000000100000001'); + forceStorageMode(storageRepo(), STORAGE_REPO_ARCHIVE, '770'); + storageRepo()->pathCreate(STORAGE_REPO_ARCHIVE . '/10.0-3/0000000100000001', {bCreateParent => true}); + storageRepo()->copy( + storageDb()->openRead($self->dataPath() . '/backup.wal1_' . WAL_VERSION_92 . '.bin'), + STORAGE_REPO_ARCHIVE . '/10.0-3/0000000100000001/000000010000000100000001'); + forceStorageOwner(storageRepo(), STORAGE_REPO_ARCHIVE . '/10.0-3', $oHostBackup->userGet(), {bRecurse => true}); # Copy pg_control for 9.5 - executeTest( - 'cp ' . $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_95 . '.bin ' . $oHostDbMaster->dbBasePath() . '/' . - DB_FILE_PGCONTROL); - executeTest('sudo chmod 600 ' . $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); + storageDb()->copy( + $self->dataPath() . '/backup.pg_control_' . WAL_VERSION_95 . '.bin', + $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL); + forceStorageMode(storageDb(), $oHostDbMaster->dbBasePath() . '/' . DB_FILE_PGCONTROL, '600'); $oHostBackup->stanzaUpgrade('successfully upgrade with XX.Y-Z', {strOptionalParam => '--no-' . OPTION_ONLINE}); diff --git a/test/lib/pgBackRestTest/Module/Storage/StorageFilterGzipTest.pm b/test/lib/pgBackRestTest/Module/Storage/StorageFilterGzipTest.pm new file mode 100644 index 000000000..d503c81b7 --- /dev/null +++ b/test/lib/pgBackRestTest/Module/Storage/StorageFilterGzipTest.pm @@ -0,0 +1,197 @@ +#################################################################################################################################### +# StorageFilterGzipTest.pm - Tests for Storage::Filter::Gzip module. +#################################################################################################################################### +package pgBackRestTest::Module::Storage::StorageFilterGzipTest; +use parent 'pgBackRestTest::Common::RunTest'; + +#################################################################################################################################### +# Perl includes +#################################################################################################################################### +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Compress::Raw::Zlib qw(Z_OK Z_BUF_ERROR Z_DATA_ERROR); +use Digest::SHA qw(sha1_hex); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; +use pgBackRest::Storage::Base; +use pgBackRest::Storage::Filter::Gzip; +use pgBackRest::Storage::Posix::Driver; + +use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Common::RunTest; + +#################################################################################################################################### +# run +#################################################################################################################################### +sub run +{ + my $self = shift; + + # Test data + my $strFile = $self->testPath() . qw{/} . 'file.txt'; + my $strFileGz = "${strFile}.gz"; + my $strFileContent = 'TESTDATA'; + my $iFileLength = length($strFileContent); + my $oDriver = new pgBackRest::Storage::Posix::Driver(); + + ################################################################################################################################ + if ($self->begin('errorCheck()')) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $oGzipIo = $self->testResult( + sub {new pgBackRest::Storage::Filter::Gzip($oDriver->openWrite($strFileGz))}, '[object]', 'new write'); + + $oGzipIo->{bWrite} = true; + $self->testException(sub {$oGzipIo->errorCheck(Z_DATA_ERROR)}, ERROR_FILE_WRITE, "unable to deflate '${strFileGz}'"); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$oGzipIo->errorCheck(Z_OK)}, Z_OK, 'Z_OK'); + $self->testResult(sub {$oGzipIo->errorCheck(Z_BUF_ERROR)}, Z_OK, 'Z_BUF_ERROR'); + + #--------------------------------------------------------------------------------------------------------------------------- + $oGzipIo->{bWrite} = false; + $oGzipIo->{strCompressType} = STORAGE_DECOMPRESS; + $self->testException(sub {$oGzipIo->errorCheck(Z_DATA_ERROR)}, ERROR_FILE_READ, "unable to inflate '${strFileGz}'"); + } + + ################################################################################################################################ + if ($self->begin('write()')) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $oGzipIo = $self->testResult( + sub {new pgBackRest::Storage::Filter::Gzip($oDriver->openWrite($strFileGz))}, '[object]', 'new write compress'); + + my $tBuffer = substr($strFileContent, 0, 2); + $self->testResult(sub {$oGzipIo->write(\$tBuffer)}, 2, ' write 2 bytes'); + $tBuffer = substr($strFileContent, 2, 2); + $self->testResult(sub {$oGzipIo->write(\$tBuffer)}, 2, ' write 2 bytes'); + $tBuffer = substr($strFileContent, 4, 2); + $self->testResult(sub {$oGzipIo->write(\$tBuffer)}, 2, ' write 2 bytes'); + $tBuffer = substr($strFileContent, 6, 2); + $self->testResult(sub {$oGzipIo->write(\$tBuffer)}, 2, ' write 2 bytes'); + $tBuffer = ''; + $self->testResult(sub {$oGzipIo->write(\$tBuffer)}, 0, ' write 0 bytes'); + + $self->testResult(sub {$oGzipIo->close()}, true, ' close'); + + executeTest("gzip -d ${strFileGz}"); + $self->testResult(sub {${storageTest()->get($strFile)}}, $strFileContent, ' check content'); + + #--------------------------------------------------------------------------------------------------------------------------- + executeTest("gzip ${strFile}"); + my $tFile = ${storageTest()->get($strFileGz)}; + + $oGzipIo = $self->testResult( + sub {new pgBackRest::Storage::Filter::Gzip( + $oDriver->openWrite($strFile), {strCompressType => STORAGE_DECOMPRESS})}, '[object]', 'new write decompress'); + + $tBuffer = substr($tFile, 0, 10); + $self->testResult(sub {$oGzipIo->write(\$tBuffer)}, 10, ' write bytes'); + $tBuffer = substr($tFile, 10); + $self->testResult(sub {$oGzipIo->write(\$tBuffer)}, length($tFile) - 10, ' write bytes'); + $self->testResult(sub {$oGzipIo->close()}, true, ' close'); + + $self->testResult(sub {${storageTest()->get($strFile)}}, $strFileContent, ' check content'); + + } + + ################################################################################################################################ + if ($self->begin('read()')) + { + my $tBuffer; + + #--------------------------------------------------------------------------------------------------------------------------- + my $oGzipIo = $self->testResult( + sub {new pgBackRest::Storage::Filter::Gzip($oDriver->openWrite($strFileGz), {bWantGzip => false})}, + '[object]', 'new write compress'); + $self->testResult(sub {$oGzipIo->write(\$strFileContent, $iFileLength)}, $iFileLength, ' write'); + $self->testResult(sub {$oGzipIo->close()}, true, ' close'); + + #--------------------------------------------------------------------------------------------------------------------------- + $oGzipIo = $self->testResult( + sub {new pgBackRest::Storage::Filter::Gzip( + $oDriver->openRead($strFileGz), {bWantGzip => false, strCompressType => STORAGE_DECOMPRESS})}, + '[object]', 'new read decompress'); + + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 4)}, 4, ' read 4 bytes'); + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 2)}, 2, ' read 2 bytes'); + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 2)}, 2, ' read 2 bytes'); + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 2)}, 0, ' read 0 bytes'); + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 2)}, 0, ' read 0 bytes'); + + $self->testResult(sub {$oGzipIo->close()}, true, ' close'); + $self->testResult($tBuffer, $strFileContent, ' check content'); + + storageTest()->remove($strFileGz); + + #--------------------------------------------------------------------------------------------------------------------------- + $tBuffer = 'AA'; + storageTest()->put($strFile, $strFileContent); + + $oGzipIo = $self->testResult( + sub {new pgBackRest::Storage::Filter::Gzip($oDriver->openRead($strFile))}, + '[object]', 'new read compress'); + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 2)}, 10, ' read 10 bytes (request 2)'); + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 2)}, 18, ' read 18 bytes (request 2)'); + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 2)}, 0, ' read 0 bytes (request 2)'); + $self->testResult(sub {$oGzipIo->close()}, true, ' close'); + + $self->testResult(sub {storageTest()->put($strFileGz, substr($tBuffer, 2))}, 28, ' put content'); + executeTest("gzip -df ${strFileGz}"); + $self->testResult(sub {${storageTest()->get($strFile)}}, $strFileContent, ' check content'); + + #--------------------------------------------------------------------------------------------------------------------------- + $tBuffer = undef; + + executeTest('cat ' . $self->dataPath() . "/filecopy.archive2.bin | gzip -c > ${strFileGz}"); + + $oGzipIo = $self->testResult( + sub {new pgBackRest::Storage::Filter::Gzip( + $oDriver->openRead($strFileGz), {lCompressBufferMax => 4096, strCompressType => STORAGE_DECOMPRESS})}, + '[object]', 'new read decompress'); + + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 8388608)}, 8388608, ' read 8388608 bytes'); + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 4194304)}, 4194304, ' read 4194304 bytes'); + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 4194304)}, 4194304, ' read 4194304 bytes'); + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 1)}, 0, ' read 0 bytes'); + + $self->testResult(sub {$oGzipIo->close()}, true, ' close'); + $self->testResult(sha1_hex($tBuffer), '1c7e00fd09b9dd11fc2966590b3e3274645dd031', ' check content'); + + storageTest()->remove($strFileGz); + + #--------------------------------------------------------------------------------------------------------------------------- + $tBuffer = undef; + + executeTest('cp ' . $self->dataPath() . "/filecopy.archive2.bin ${strFile}"); + + $oGzipIo = $self->testResult( + sub {new pgBackRest::Storage::Filter::Gzip($oDriver->openRead($strFile), {strCompressType => STORAGE_COMPRESS})}, + '[object]', 'new read compress'); + + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 2000000) > 0}, true, ' read bytes'); + $self->testResult(sub {$oGzipIo->read(\$tBuffer, 2000000) > 0}, true, ' read bytes'); + $self->testResult(sub {$oGzipIo->close()}, true, ' close'); + + $self->testResult(sub {storageTest()->put($strFileGz, $tBuffer) > 0}, true, ' put content'); + executeTest("gzip -df ${strFileGz}"); + $self->testResult( + sub {sha1_hex(${storageTest()->get($strFile)})}, '1c7e00fd09b9dd11fc2966590b3e3274645dd031', ' check content'); + + #--------------------------------------------------------------------------------------------------------------------------- + storageTest()->put($strFileGz, $strFileContent); + + $oGzipIo = $self->testResult( + sub {new pgBackRest::Storage::Filter::Gzip($oDriver->openRead($strFileGz), {strCompressType => STORAGE_DECOMPRESS})}, + '[object]', 'new read decompress'); + + $self->testException( + sub {$oGzipIo->read(\$tBuffer, 1)}, ERROR_FILE_READ, "unable to inflate '${strFileGz}': incorrect header check"); + } +} + +1; diff --git a/test/lib/pgBackRestTest/Module/Storage/StorageFilterShaTest.pm b/test/lib/pgBackRestTest/Module/Storage/StorageFilterShaTest.pm new file mode 100644 index 000000000..595299230 --- /dev/null +++ b/test/lib/pgBackRestTest/Module/Storage/StorageFilterShaTest.pm @@ -0,0 +1,105 @@ +#################################################################################################################################### +# StorageFilterShaTest.pm - Tests for StorageFilterSha module. +#################################################################################################################################### +package pgBackRestTest::Module::Storage::StorageFilterShaTest; +use parent 'pgBackRestTest::Common::RunTest'; + +#################################################################################################################################### +# Perl includes +#################################################################################################################################### +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Digest::SHA qw(sha1_hex); + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; +use pgBackRest::Storage::Base; +use pgBackRest::Storage::Filter::Sha; +use pgBackRest::Storage::Posix::Driver; + +use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Common::RunTest; + +#################################################################################################################################### +# run +#################################################################################################################################### +sub run +{ + my $self = shift; + + # Test data + my $strFile = $self->testPath() . qw{/} . 'file.txt'; + my $strFileContent = 'TESTDATA'; + my $iFileLength = length($strFileContent); + my $oDriver = new pgBackRest::Storage::Posix::Driver(); + + ################################################################################################################################ + if ($self->begin('read()')) + { + my $tBuffer; + + #--------------------------------------------------------------------------------------------------------------------------- + executeTest("echo -n '${strFileContent}' | tee ${strFile}"); + + my $oFileIo = $self->testResult(sub {$oDriver->openRead($strFile)}, '[object]', 'open read'); + my $oShaIo = $self->testResult(sub {new pgBackRest::Storage::Filter::Sha($oFileIo)}, '[object]', 'new read'); + + $self->testResult(sub {$oShaIo->read(\$tBuffer, 2, undef)}, 2, 'read 2 bytes'); + $self->testResult(sub {$oShaIo->read(\$tBuffer, 2, 2)}, 2, 'read 2 bytes'); + $self->testResult(sub {$oShaIo->read(\$tBuffer, 2, 4)}, 2, 'read 2 bytes'); + $self->testResult(sub {$oShaIo->read(\$tBuffer, 2, 6)}, 2, 'read 2 bytes'); + $self->testResult(sub {$oShaIo->read(\$tBuffer, 2, 8)}, 0, 'read 0 bytes'); + + $self->testResult(sub {$oShaIo->close()}, true, 'close'); + my $strSha = $self->testResult( + sub {$oShaIo->result(STORAGE_FILTER_SHA)}, sha1_hex($strFileContent), 'check hash against original content'); + $self->testResult($strSha, sha1_hex($tBuffer), 'check hash against buffer'); + $self->testResult(sub {${storageTest()->get($strFile)}}, $strFileContent, 'check content'); + + #--------------------------------------------------------------------------------------------------------------------------- + $tBuffer = undef; + + $oFileIo = $self->testResult( + sub {$oDriver->openRead($self->dataPath() . '/filecopy.archive2.bin')}, '[object]', 'open read'); + $oShaIo = $self->testResult(sub {new pgBackRest::Storage::Filter::Sha($oFileIo)}, '[object]', 'new read'); + + $self->testResult(sub {$oShaIo->read(\$tBuffer, 8388608)}, 8388608, ' read 8388608 bytes'); + $self->testResult(sub {$oShaIo->read(\$tBuffer, 4194304)}, 4194304, ' read 4194304 bytes'); + $self->testResult(sub {$oShaIo->read(\$tBuffer, 4194304)}, 4194304, ' read 4194304 bytes'); + $self->testResult(sub {$oShaIo->read(\$tBuffer, 1)}, 0, ' read 0 bytes'); + + $self->testResult(sub {$oShaIo->close()}, true, ' close'); + $self->testResult($oShaIo->result(STORAGE_FILTER_SHA), '1c7e00fd09b9dd11fc2966590b3e3274645dd031', ' check hash'); + $self->testResult(sha1_hex($tBuffer), '1c7e00fd09b9dd11fc2966590b3e3274645dd031', ' check content'); + } + + ################################################################################################################################ + if ($self->begin('write()')) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $oFileIo = $self->testResult(sub {$oDriver->openWrite($strFile, {bAtomic => true})}, '[object]', 'open write'); + my $oShaIo = $self->testResult( + sub {new pgBackRest::Storage::Filter::Sha($oFileIo)}, '[object]', 'new'); + + my $tBuffer = substr($strFileContent, 0, 2); + $self->testResult(sub {$oShaIo->write(\$tBuffer)}, 2, 'write 2 bytes'); + $tBuffer = substr($strFileContent, 2, 2); + $self->testResult(sub {$oShaIo->write(\$tBuffer)}, 2, 'write 2 bytes'); + $tBuffer = substr($strFileContent, 4, 2); + $self->testResult(sub {$oShaIo->write(\$tBuffer)}, 2, 'write 2 bytes'); + $tBuffer = substr($strFileContent, 6, 2); + $self->testResult(sub {$oShaIo->write(\$tBuffer)}, 2, 'write 2 bytes'); + $tBuffer = ''; + $self->testResult(sub {$oShaIo->write(\$tBuffer)}, 0, 'write 0 bytes'); + + $self->testResult(sub {$oShaIo->close()}, true, 'close'); + my $strSha = $self->testResult( + sub {$oShaIo->result(STORAGE_FILTER_SHA)}, sha1_hex($strFileContent), 'check hash against original content'); + $self->testResult(sub {${storageTest()->get($strFile)}}, $strFileContent, 'check content'); + } +} + +1; diff --git a/test/lib/pgBackRestTest/Module/Storage/StorageHelperTest.pm b/test/lib/pgBackRestTest/Module/Storage/StorageHelperTest.pm new file mode 100644 index 000000000..03f0a8ddf --- /dev/null +++ b/test/lib/pgBackRestTest/Module/Storage/StorageHelperTest.pm @@ -0,0 +1,147 @@ +#################################################################################################################################### +# StorageHelperTest.pm - Tests for Storage::Helper module. +#################################################################################################################################### +package pgBackRestTest::Module::Storage::StorageHelperTest; +use parent 'pgBackRestTest::Env::ConfigEnvTest'; + +#################################################################################################################################### +# Perl includes +#################################################################################################################################### +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Storable qw(dclone); + +use pgBackRest::Config::Config; +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; +use pgBackRest::Protocol::Storage::Helper; +use pgBackRest::Storage::Helper; + +use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Env::Host::HostBackupTest; +use pgBackRestTest::Common::RunTest; + +#################################################################################################################################### +# initTest - initialization before each test +#################################################################################################################################### +sub initTest +{ + my $self = shift; + + storageTest()->pathCreate('db'); + storageTest()->pathCreate('repo'); + storageTest()->pathCreate('spool'); +} + +#################################################################################################################################### +# run +#################################################################################################################################### +sub run +{ + my $self = shift; + + # Define test file + my $strFile = 'file.txt'; + my $strFileCopy = 'file.txt.copy'; + my $strFileContent = 'TESTDATA'; + my $iFileSize = length($strFileContent); + + # Setup parameters + my $oOption = {}; + $self->optionSetTest($oOption, OPTION_DB_PATH, $self->testPath() . '/db'); + $self->optionSetTest($oOption, OPTION_REPO_PATH, $self->testPath() . '/repo'); + $self->optionSetTest($oOption, OPTION_SPOOL_PATH, $self->testPath() . '/spool'); + $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza()); + $self->optionBoolSetTest($oOption, OPTION_ARCHIVE_ASYNC, true); + + #------------------------------------------------------------------------------------------------------------------------------- + if ($self->begin("storageLocal()")) + { + $self->testResult(sub {$self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH)}, '', 'config load'); + + $self->testResult(sub {storageLocal($self->testPath())->put($strFile, $strFileContent)}, $iFileSize, 'put'); + $self->testResult(sub {${storageTest()->get($strFile)}}, $strFileContent, ' check put'); + + $self->testResult(sub {storageLocal($self->testPath())->put($strFile, $strFileContent)}, $iFileSize, 'put cache storage'); + $self->testResult(sub {${storageTest()->get($strFile)}}, $strFileContent, ' check put'); + } + + #------------------------------------------------------------------------------------------------------------------------------- + if ($self->begin("storageDb()")) + { + $self->testResult(sub {$self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH)}, '', 'config load'); + + $self->testResult(sub {storageDb()->put($strFile, $strFileContent)}, $iFileSize, 'put'); + $self->testResult(sub {${storageTest()->get("db/${strFile}")}}, $strFileContent, ' check put'); + + $self->testResult(sub {storageDb()->put($strFileCopy, $strFileContent)}, $iFileSize, 'put cached storage'); + $self->testResult(sub {${storageTest()->get("db/${strFileCopy}")}}, $strFileContent, ' check put'); + } + + #------------------------------------------------------------------------------------------------------------------------------- + if ($self->begin("storageRepo()")) + { + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH)}, '', 'config load'); + + $self->testResult(sub {storageRepo()->put($strFile, $strFileContent)}, $iFileSize, 'put'); + $self->testResult(sub {${storageTest()->get("repo/${strFile}")}}, $strFileContent, ' check put'); + + $self->testResult(sub {storageRepo()->put($strFileCopy, $strFileContent)}, $iFileSize, 'put cached storage'); + $self->testResult(sub {${storageTest()->get("repo/${strFileCopy}")}}, $strFileContent, ' check put'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {storageRepo()->pathGet(STORAGE_REPO_ARCHIVE)}, $self->testPath() . '/repo/archive/db', 'check archive path'); + $self->testResult( + sub {storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . '/9.3-1/000000010000000100000001')}, + $self->testPath() . '/repo/archive/db/9.3-1/0000000100000001/000000010000000100000001', 'check repo WAL file'); + $self->testResult( + sub {storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . '/9.3-1/0000000100000001')}, + $self->testPath() . '/repo/archive/db/9.3-1/0000000100000001', 'check repo WAL path'); + $self->testResult( + sub {storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . '/9.3-1/0000000100000001')}, + $self->testPath() . '/repo/archive/db/9.3-1/0000000100000001', 'check repo WAL major path'); + $self->testResult( + sub {storageRepo()->pathGet(STORAGE_REPO_ARCHIVE . '/9.3-1')}, + $self->testPath() . '/repo/archive/db/9.3-1', 'check repo archive id path'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {storageRepo()->pathGet(STORAGE_REPO_BACKUP)}, $self->testPath() . '/repo/backup/db', 'check backup path'); + $self->testResult( + sub {storageRepo()->pathGet(STORAGE_REPO_BACKUP . '/file')}, $self->testPath() . '/repo/backup/db/file', + 'check backup file'); + + #--------------------------------------------------------------------------------------------------------------------------- + # Insert a bogus rule to generate an error + storageRepo()->{hRule}{''} = + { + fnRule => storageRepo()->{hRule}{&STORAGE_REPO_ARCHIVE}{fnRule}, + }; + + $self->testException(sub {storageRepo()->pathGet('')}, ERROR_ASSERT, 'invalid storage rule '); + } + + #------------------------------------------------------------------------------------------------------------------------------- + if ($self->begin("storageSpool()")) + { + $self->testResult(sub {$self->configLoadExpect(dclone($oOption), CMD_ARCHIVE_PUSH)}, '', 'config load'); + + $self->testResult(sub {storageSpool()->put($strFile, $strFileContent)}, $iFileSize, 'put'); + $self->testResult(sub {${storageTest()->get("spool/${strFile}")}}, $strFileContent, ' check put'); + + $self->testResult(sub {storageSpool()->put($strFileCopy, $strFileContent)}, $iFileSize, 'put cached storage'); + $self->testResult(sub {${storageTest()->get("spool/${strFileCopy}")}}, $strFileContent, ' check put'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {storageSpool()->pathGet(STORAGE_SPOOL_ARCHIVE_OUT)}, $self->testPath() . '/spool/archive/db/out', + 'check archive out path'); + } +} + +1; diff --git a/test/lib/pgBackRestTest/Module/Storage/StorageLocalTest.pm b/test/lib/pgBackRestTest/Module/Storage/StorageLocalTest.pm new file mode 100644 index 000000000..ec0341892 --- /dev/null +++ b/test/lib/pgBackRestTest/Module/Storage/StorageLocalTest.pm @@ -0,0 +1,363 @@ +#################################################################################################################################### +# StorageLocalTest.pm - Tests for Storage::Local module +#################################################################################################################################### +package pgBackRestTest::Module::Storage::StorageLocalTest; +use parent 'pgBackRestTest::Common::RunTest'; + +#################################################################################################################################### +# Perl includes +#################################################################################################################################### +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use Digest::SHA qw(sha1_hex); + +use pgBackRest::Config::Config; +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; +use pgBackRest::Storage::Filter::Sha; +use pgBackRest::Storage::Local; + +use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Env::Host::HostBackupTest; +use pgBackRestTest::Common::RunTest; + +#################################################################################################################################### +# initModule - common objects and variables used by all tests. +#################################################################################################################################### +sub initModule +{ + my $self = shift; + + # Local path + $self->{strPathLocal} = $self->testPath() . '/local'; + + # Create the dynamic rule + my $fnRule = sub + { + my $strRule = shift; + my $strFile = shift; + my $xData = shift; + + if ($strRule eq '') + { + return "fn-rule-1/${xData}" . (defined($strFile) ? "/${strFile}" : ''); + } + else + { + return 'fn-rule-2/' . (defined($strFile) ? "${strFile}/${strFile}" : 'no-file'); + } + }; + + # Create the rule hash + my $hRule = + { + '' => 'static-rule-path', + '' => + { + fnRule => $fnRule, + xData => 'test', + }, + '' => + { + fnRule => $fnRule, + }, + }; + + # Create local storage + $self->{oStorageLocal} = new pgBackRest::Storage::Local( + $self->pathLocal(), new pgBackRest::Storage::Posix::Driver(), {hRule => $hRule, bAllowTemp => false}); + + # Remote path + $self->{strPathRemote} = $self->testPath() . '/remote'; + + # Create the repo path so the remote won't complain that it's missing + mkdir($self->pathRemote()) + or confess &log(ERROR, "unable to create repo directory '" . $self->pathRemote() . qw{'}); + + # Remove repo path now that the remote is created + rmdir($self->{strPathRemote}) + or confess &log(ERROR, "unable to remove repo directory '" . $self->pathRemote() . qw{'}); + + # Create remote storage + $self->{oStorageRemote} = new pgBackRest::Storage::Local( + $self->pathRemote(), new pgBackRest::Storage::Posix::Driver(), {hRule => $hRule}); +} + +#################################################################################################################################### +# initTest - initialization before each test +#################################################################################################################################### +sub initTest +{ + my $self = shift; + + executeTest( + 'ssh ' . $self->backrestUser() . '\@' . $self->host() . ' mkdir -m 700 ' . $self->pathRemote(), {bSuppressStdErr => true}); + + executeTest('mkdir -m 700 ' . $self->pathLocal()); +} + +#################################################################################################################################### +# run +#################################################################################################################################### +sub run +{ + my $self = shift; + + # Define test file + my $strFile = 'file.txt'; + my $strFileCopy = 'file.txt.copy'; + # my $strFileHash = 'bbbcf2c59433f68f22376cd2439d6cd309378df6'; + my $strFileContent = 'TESTDATA'; + my $iFileSize = length($strFileContent); + + #--------------------------------------------------------------------------------------------------------------------------- + if ($self->begin("pathGet()")) + { + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException( + sub {$self->storageLocal()->pathGet('/test', {bTemp => true})}, + ERROR_ASSERT, "temp file not supported for storage '" . $self->storageLocal()->pathBase() . "'"); + $self->testException( + sub {$self->storageRemote()->pathGet('', {bTemp => true})}, + ERROR_ASSERT, 'file part must be defined when temp file specified'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageRemote()->pathGet('/file', {bTemp => true})}, "/file.tmp", 'absolute path temp'); + $self->testResult(sub {$self->storageRemote()->pathGet('/file')}, "/file", 'absolute path file'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageLocal()->pathGet('file')}, $self->storageLocal()->pathBase() . '/file', 'relative path'); + $self->testResult( + sub {$self->storageRemote()->pathGet('file', {bTemp => true})}, + $self->storageRemote()->pathBase() . '/file.tmp', 'relative path temp'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException( + sub {$self->storageLocal()->pathGet(' in 'testException( + sub {$self->storageLocal()->pathGet('')}, ERROR_ASSERT, "storage rule '' does not exist"); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageLocal()->pathGet('/file')}, + $self->storageLocal()->pathBase() . '/static-rule-path/file', 'static rule file'); + $self->testResult( + sub {$self->storageLocal()->pathGet('')}, + $self->storageLocal()->pathBase() . '/static-rule-path', 'static rule path'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageLocal()->pathGet('/file')}, + $self->storageLocal()->pathBase() . '/fn-rule-1/test/file', 'function rule 1 file'); + $self->testResult( + sub {$self->storageLocal()->pathGet('/file')}, + $self->storageLocal()->pathBase() . '/fn-rule-2/file/file', 'function rule 2 file'); + $self->testResult( + sub {$self->storageLocal()->pathGet('')}, + $self->storageLocal()->pathBase() . '/fn-rule-1/test', 'function rule 1 path'); + $self->testResult( + sub {$self->storageLocal()->pathGet('')}, + $self->storageLocal()->pathBase() . '/fn-rule-2/no-file', 'function rule 2 no file'); + } + + ################################################################################################################################ + if ($self->begin('openWrite()')) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $oFileIo = $self->testResult(sub {$self->storageLocal()->openWrite($strFile)}, '[object]', 'open write'); + + $self->testResult(sub {$oFileIo->write(\$strFileContent, length($strFileContent))}, $iFileSize, "write $iFileSize bytes"); + $self->testResult(sub {$oFileIo->close()}, true, 'close'); + } + + ################################################################################################################################ + if ($self->begin('put()')) + { + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageLocal()->put($self->storageLocal()->openWrite($strFile))}, 0, 'put empty'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageLocal()->put($strFile)}, 0, 'put empty (all defaults)'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageLocal()->put($self->storageLocal()->openWrite($strFile), $strFileContent)}, $iFileSize, 'put'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageLocal()->put($self->storageLocal()->openWrite($strFile), \$strFileContent)}, $iFileSize, + 'put reference'); + } + + ################################################################################################################################ + if ($self->begin('openRead()')) + { + my $tContent; + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageLocal()->openRead($strFile, {bIgnoreMissing => true})}, undef, 'ignore missing'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException( + sub {$self->storageLocal()->openRead($strFile)}, ERROR_FILE_MISSING, + "unable to open '" . $self->storageLocal()->pathBase() . "/${strFile}': No such file or directory"); + + #--------------------------------------------------------------------------------------------------------------------------- + executeTest('sudo touch ' . $self->pathLocal() . "/${strFile} && sudo chmod 700 " . $self->pathLocal() . "/${strFile}"); + + $self->testException( + sub {$self->storageLocal()->openRead($strFile)}, ERROR_FILE_OPEN, + "unable to open '" . $self->storageLocal()->pathBase() . "/${strFile}': Permission denied"); + + executeTest('sudo rm ' . $self->pathLocal() . "/${strFile}"); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->storageLocal()->put($self->storageLocal()->openWrite($strFile), $strFileContent); + + my $oFileIo = $self->testResult(sub {$self->storageLocal()->openRead($strFile)}, '[object]', 'open read'); + + $self->testResult(sub {$oFileIo->read(\$tContent, $iFileSize)}, $iFileSize, "read $iFileSize bytes"); + $self->testResult($tContent, $strFileContent, ' check read'); + + #--------------------------------------------------------------------------------------------------------------------------- + $oFileIo = $self->testResult( + sub {$self->storageLocal()->openRead($strFile, {rhyFilter => [{strClass => STORAGE_FILTER_SHA}]})}, '[object]', + 'open read + checksum'); + + undef($tContent); + $self->testResult(sub {$oFileIo->read(\$tContent, $iFileSize)}, $iFileSize, "read $iFileSize bytes"); + $self->testResult(sub {$oFileIo->close()}, true, 'close'); + $self->testResult($tContent, $strFileContent, ' check read'); + $self->testResult($oFileIo->result(STORAGE_FILTER_SHA), sha1_hex($strFileContent), ' check hash'); + } + + ################################################################################################################################ + if ($self->begin('get()')) + { + my $tBuffer; + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageLocal()->get($self->storageLocal()->openRead($strFile, {bIgnoreMissing => true}))}, undef, + 'get missing'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->storageLocal()->put($strFile); + $self->testResult(sub {${$self->storageLocal()->get($strFile)}}, undef, 'get empty'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->storageLocal()->put($strFile, $strFileContent); + $self->testResult(sub {${$self->storageLocal()->get($strFile)}}, $strFileContent, 'get'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {${$self->storageLocal()->get($self->storageLocal()->openRead($strFile))}}, $strFileContent, 'get from io'); + } + + ################################################################################################################################ + if ($self->begin('hashSize()')) + { + my $tBuffer; + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageLocal()->put($strFile, $strFileContent)}, 8, 'put'); + + $self->testResult( + sub {$self->storageLocal()->hashSize($strFile)}, + qw{(} . sha1_hex($strFileContent) . ', ' . $iFileSize . qw{)}, ' check hash/size'); + } + + ################################################################################################################################ + if ($self->begin('copy()')) + { + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException( + sub {$self->storageLocal()->copy($self->storageLocal()->openRead($strFile), $strFileCopy)}, ERROR_FILE_MISSING, + "unable to open '" . $self->storageLocal()->pathBase() . "/${strFile}': No such file or directory"); + $self->testResult( + sub {$self->storageLocal()->exists($strFileCopy)}, false, ' destination does not exist'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$self->storageLocal()->copy( + $self->storageLocal()->openRead($strFile, {bIgnoreMissing => true}), + $self->storageLocal()->openWrite($strFileCopy))}, + false, 'missing source io'); + $self->testResult( + sub {$self->storageLocal()->exists($strFileCopy)}, false, ' destination does not exist'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException( + sub {$self->storageLocal()->copy($self->storageLocal()->openRead($strFile), $strFileCopy)}, ERROR_FILE_MISSING, + "unable to open '" . $self->storageLocal()->pathBase() . "/${strFile}': No such file or directory"); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->storageLocal()->put($strFile, $strFileContent); + + $self->testResult(sub {$self->storageLocal()->copy($strFile, $strFileCopy)}, true, 'copy filename->filename'); + $self->testResult(sub {${$self->storageLocal()->get($strFileCopy)}}, $strFileContent, ' check copy'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->storageLocal()->remove($strFileCopy); + + $self->testResult( + sub {$self->storageLocal()->copy($self->storageLocal()->openRead($strFile), $strFileCopy)}, true, 'copy io->filename'); + $self->testResult(sub {${$self->storageLocal()->get($strFileCopy)}}, $strFileContent, ' check copy'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->storageLocal()->remove($strFileCopy); + + $self->testResult( + sub {$self->storageLocal()->copy( + $self->storageLocal()->openRead($strFile), $self->storageLocal()->openWrite($strFileCopy))}, + true, 'copy io->io'); + $self->testResult(sub {${$self->storageLocal()->get($strFileCopy)}}, $strFileContent, ' check copy'); + } + + ################################################################################################################################ + if ($self->begin('info()')) + { + $self->testResult(sub {$self->storageLocal()->info($self->{strPathLocal})}, "[object]", 'stat dir successfully'); + + $self->testException(sub {$self->storageLocal()->info($strFile)}, ERROR_FILE_MISSING, + "unable to stat '". $self->{strPathLocal} . "/" . $strFile ."': No such file or directory"); + } + + ################################################################################################################################ + if ($self->begin('pathCreate()')) + { + my $strTestPath = $self->{strPathLocal} . "/" . BOGUS; + + $self->testResult(sub {$self->storageLocal()->pathCreate($strTestPath)}, "[undef]", + "test creation of path " . $strTestPath); + + $self->testException(sub {$self->storageLocal()->pathCreate($strTestPath)}, ERROR_PATH_EXISTS, + "unable to create path '". $strTestPath. "' because it already exists"); + + $self->testResult(sub {$self->storageLocal()->pathCreate($strTestPath, {bIgnoreExists => true})}, "[undef]", + "ignore path exists"); + } +} + +#################################################################################################################################### +# Getters +#################################################################################################################################### +sub host {return '127.0.0.1'} +sub pathLocal {return shift->{strPathLocal}}; +sub pathRemote {return shift->{strPathRemote}}; +sub protocolLocal {return shift->{oProtocolLocal}}; +sub protocolRemote {return shift->{oProtocolRemote}}; +sub storageLocal {return shift->{oStorageLocal}}; +sub storageRemote {return shift->{oStorageRemote}}; + +1; diff --git a/test/lib/pgBackRestTest/Module/Storage/StoragePosixTest.pm b/test/lib/pgBackRestTest/Module/Storage/StoragePosixTest.pm new file mode 100644 index 000000000..4322b30af --- /dev/null +++ b/test/lib/pgBackRestTest/Module/Storage/StoragePosixTest.pm @@ -0,0 +1,389 @@ +#################################################################################################################################### +# Posix Driver Tests +#################################################################################################################################### +package pgBackRestTest::Module::Storage::StoragePosixTest; +use parent 'pgBackRestTest::Common::RunTest'; + +#################################################################################################################################### +# Perl includes +#################################################################################################################################### +use strict; +use warnings FATAL => qw(all); +use Carp qw(confess); +use English '-no_match_vars'; + +use File::Basename qw(basename dirname); +use IO::Socket::UNIX; + +use pgBackRest::Common::Exception; +use pgBackRest::Common::Log; +use pgBackRest::Storage::Posix::Driver; + +use pgBackRestTest::Common::ExecuteTest; +use pgBackRestTest::Common::RunTest; + +#################################################################################################################################### +# run +#################################################################################################################################### +sub run +{ + my $self = shift; + + # Test data + my $strFile = $self->testPath() . '/file.txt'; + my $strFileContent = 'TESTDATA'; + my $iFileLength = length($strFileContent); + my $iFileLengthHalf = int($iFileLength / 2); + + # Test driver + my $oPosix = new pgBackRest::Storage::Posix::Driver(); + + ################################################################################################################################ + if ($self->begin('exists()')) + { + my $strPathSub = $self->testPath() . '/sub'; + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$oPosix->exists($strFile)}, false, 'file'); + + #--------------------------------------------------------------------------------------------------------------------------- + executeTest("sudo mkdir ${strPathSub} && sudo chmod 700 ${strPathSub}"); + + $self->testResult( + sub {$oPosix->pathExists($strPathSub)}, true, 'path'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException( + sub {$oPosix->exists("${strPathSub}/file")}, ERROR_FILE_EXISTS, + "unable to test if file '${strPathSub}/file' exists: Permission denied"); + } + + ################################################################################################################################ + if ($self->begin("manifestList()")) + { + #--------------------------------------------------------------------------------------------------------------------------- + my @stryFile = ('.', 'test.txt'); + + $self->testResult( + sub {$oPosix->manifestList($self->testPath(), \@stryFile)}, + '{. => {group => ' . $self->group() . ', mode => 0770, type => d, user => ' . $self->pgUser() . '}}', + 'skip missing file'); + } + + ################################################################################################################################ + if ($self->begin("manifestStat()")) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $strFile = $self->testPath() . '/test.txt'; + + $self->testResult(sub {$oPosix->manifestStat($strFile)}, '[undef]', 'ignore missing file'); + + #--------------------------------------------------------------------------------------------------------------------------- + storageTest()->put($strFile, "TEST"); + utime(1111111111, 1111111111, $strFile); + executeTest('chmod 1640 ' . $strFile); + + $self->testResult( + sub {$oPosix->manifestStat($strFile)}, + '{group => ' . $self->group() . + ', mode => 1640, modification_time => 1111111111, size => 4, type => f, user => ' . $self->pgUser() . '}', + 'stat file'); + + #--------------------------------------------------------------------------------------------------------------------------- + my $strSocketFile = $self->testPath() . '/test.socket'; + + # Create a socket to test invalid files + my $oSocket = IO::Socket::UNIX->new(Type => SOCK_STREAM(), Local => $strSocketFile, Listen => 1); + + $self->testException( + sub {$oPosix->manifestStat($strSocketFile)}, ERROR_FILE_INVALID, + "${strSocketFile} is not of type directory, file, or link"); + + # Cleanup socket + $oSocket->close(); + storageTest()->remove($strSocketFile); + + #--------------------------------------------------------------------------------------------------------------------------- + my $strTestPath = $self->testPath() . '/public_dir'; + storageTest()->pathCreate($strTestPath, {strMode => '0750'}); + + $self->testResult( + sub {$oPosix->manifestStat($strTestPath)}, + '{group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}', + 'stat directory'); + + #--------------------------------------------------------------------------------------------------------------------------- + my $strTestLink = $self->testPath() . '/public_dir_link'; + + symlink($strTestPath, $strTestLink) + or confess &log(ERROR, "unable to create symlink from ${strTestPath} to ${strTestLink}"); + + $self->testResult( + sub {$oPosix->manifestStat($strTestLink)}, + '{group => ' . $self->group() . ", link_destination => ${strTestPath}, type => l, user => " . $self->pgUser() . '}', + 'stat link'); + } + + ################################################################################################################################ + if ($self->begin("manifestRecurse()")) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $strTestPath = $self->testPath() . '/public_dir'; + my $strTestFile = "${strTestPath}/test.txt"; + + $self->testException( + sub {my $hManifest = {}; $oPosix->manifestRecurse($strTestFile, undef, 0, $hManifest); $hManifest}, + ERROR_FILE_MISSING, "unable to stat '${strTestFile}': No such file or directory"); + + #--------------------------------------------------------------------------------------------------------------------------- + storageTest()->pathCreate($strTestPath, {strMode => '0750'}); + + $self->testResult( + sub {my $hManifest = {}; $oPosix->manifestRecurse($strTestPath, undef, 0, $hManifest); $hManifest}, + '{. => {group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}}', + 'empty directory manifest'); + + #--------------------------------------------------------------------------------------------------------------------------- + storageTest()->put($strTestFile, "TEST"); + utime(1111111111, 1111111111, $strTestFile); + executeTest('chmod 0750 ' . $strTestFile); + + storageTest()->pathCreate("${strTestPath}/sub", {strMode => '0750'}); + + $self->testResult( + sub {my $hManifest = {}; $oPosix->manifestRecurse( + $self->testPath(), basename($strTestPath), 1, $hManifest); $hManifest}, + '{public_dir => {group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}, ' . + 'public_dir/sub => {group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}, ' . + 'public_dir/' . basename($strTestFile) . ' => {group => ' . $self->group() . + ', mode => 0750, modification_time => 1111111111, size => 4, type => f, user => ' . $self->pgUser() . '}}', + 'directory and file manifest'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {my $hManifest = {}; $oPosix->manifestRecurse($strTestFile, undef, 0, $hManifest); $hManifest}, + '{' . basename($strTestFile) . ' => {group => ' . $self->group() . + ', mode => 0750, modification_time => 1111111111, size => 4, type => f, user => ' . $self->pgUser() . '}}', + 'single file manifest'); + } + + ################################################################################################################################ + if ($self->begin("manifest()")) + { + #--------------------------------------------------------------------------------------------------------------------------- + my $strMissingFile = $self->testPath() . '/missing'; + + $self->testException( + sub {$oPosix->manifest($strMissingFile)}, + ERROR_FILE_MISSING, "unable to stat '${strMissingFile}': No such file or directory"); + + #--------------------------------------------------------------------------------------------------------------------------- + # Setup test data + executeTest('mkdir -m 750 ' . $self->testPath() . '/sub1'); + executeTest('mkdir -m 750 ' . $self->testPath() . '/sub1/sub2'); + + executeTest("echo 'TESTDATA' > " . $self->testPath() . '/test.txt'); + utime(1111111111, 1111111111, $self->testPath() . '/test.txt'); + executeTest('chmod 1640 ' . $self->testPath() . '/test.txt'); + + executeTest("echo 'TESTDATA_' > ". $self->testPath() . '/sub1/test-sub1.txt'); + utime(1111111112, 1111111112, $self->testPath() . '/sub1/test-sub1.txt'); + executeTest('chmod 0640 ' . $self->testPath() . '/sub1/test-sub1.txt'); + + executeTest("echo 'TESTDATA__' > " . $self->testPath() . '/sub1/sub2/test-sub2.txt'); + utime(1111111113, 1111111113, $self->testPath() . '/sub1/sub2/test-sub2.txt'); + executeTest('chmod 0646 ' . $self->testPath() . '/sub1/test-sub1.txt'); + + executeTest('ln ' . $self->testPath() . '/test.txt ' . $self->testPath() . '/sub1/test-hardlink.txt'); + executeTest('ln ' . $self->testPath() . '/test.txt ' . $self->testPath() . '/sub1/sub2/test-hardlink.txt'); + + executeTest('ln -s .. ' . $self->testPath() . '/sub1/test'); + executeTest('chmod 0700 ' . $self->testPath() . '/sub1/test'); + executeTest('ln -s ../.. ' . $self->testPath() . '/sub1/sub2/test'); + executeTest('chmod 0750 ' . $self->testPath() . '/sub1/sub2/test'); + + executeTest('chmod 0770 ' . $self->testPath()); + + $self->testResult( + sub {$oPosix->manifest($self->testPath())}, + '{. => {group => ' . $self->group() . ', mode => 0770, type => d, user => ' . $self->pgUser() . '}, ' . + 'sub1 => {group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}, ' . + 'sub1/sub2 => {group => ' . $self->group() . ', mode => 0750, type => d, user => ' . $self->pgUser() . '}, ' . + 'sub1/sub2/test => {group => ' . $self->group() . ', link_destination => ../.., type => l, user => ' . + $self->pgUser() . '}, ' . + 'sub1/sub2/test-hardlink.txt => ' . + '{group => ' . $self->group() . ', mode => 1640, modification_time => 1111111111, size => 9, type => f, user => ' . + $self->pgUser() . '}, ' . + 'sub1/sub2/test-sub2.txt => ' . + '{group => ' . $self->group() . ', mode => 0666, modification_time => 1111111113, size => 11, type => f, user => ' . + $self->pgUser() . '}, ' . + 'sub1/test => {group => ' . $self->group() . ', link_destination => .., type => l, user => ' . $self->pgUser() . '}, ' . + 'sub1/test-hardlink.txt => ' . + '{group => ' . $self->group() . ', mode => 1640, modification_time => 1111111111, size => 9, type => f, user => ' . + $self->pgUser() . '}, ' . + 'sub1/test-sub1.txt => ' . + '{group => ' . $self->group() . ', mode => 0646, modification_time => 1111111112, size => 10, type => f, user => ' . + $self->pgUser() . '}, ' . + 'test.txt => ' . + '{group => ' . $self->group() . ', mode => 1640, modification_time => 1111111111, size => 9, type => f, user => ' . + $self->pgUser() . '}}', + 'complete manifest'); + } + + ################################################################################################################################ + if ($self->begin('openRead() & Posix::FileRead')) + { + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException( + sub {$oPosix->openRead($strFile)}, ERROR_FILE_MISSING, "unable to open '${strFile}': No such file or directory"); + + #--------------------------------------------------------------------------------------------------------------------------- + executeTest("echo -n '${strFileContent}' | tee ${strFile}"); + + $self->testResult( + sub {$oPosix->openRead($strFile)}, '[object]', 'open read'); + } + + ################################################################################################################################ + if ($self->begin('openWrite() & Posix::FileWrite')) + { + my $tContent = $strFileContent; + + #--------------------------------------------------------------------------------------------------------------------------- + executeTest("echo -n '${strFileContent}' | tee ${strFile}"); + executeTest("chmod 600 ${strFile} && sudo chown root:root ${strFile}"); + + $self->testException( + sub {new pgBackRest::Storage::Posix::FileRead($oPosix, $strFile)}, ERROR_FILE_OPEN, + "unable to open '${strFile}': Permission denied"); + + executeTest("sudo rm -rf ${strFile}"); + + #--------------------------------------------------------------------------------------------------------------------------- + my $oPosixIo = $self->testResult( + sub {new pgBackRest::Storage::Posix::FileWrite($oPosix, $strFile)}, '[object]', 'open'); + + $tContent = substr($strFileContent, 0, $iFileLengthHalf); + $self->testResult( + sub {$oPosixIo->write(\$tContent)}, $iFileLengthHalf, 'write part 1'); + + $tContent = substr($strFileContent, $iFileLengthHalf); + $self->testResult( + sub {$oPosixIo->write(\$tContent)}, $iFileLength - $iFileLengthHalf, + 'write part 2'); + $oPosixIo->close(); + + $tContent = undef; + $self->testResult( + sub {(new pgBackRest::Storage::Posix::FileRead($oPosix, $strFile))->read(\$tContent, $iFileLength)}, + $iFileLength, 'check write content length'); + $self->testResult($tContent, $strFileContent, 'check write content'); + + #--------------------------------------------------------------------------------------------------------------------------- + $oPosixIo = $self->testResult( + sub {new pgBackRest::Storage::Posix::FileWrite( + $oPosix, "${strFile}.atomic", {bAtomic => true, strMode => '0666', lTimestamp => time(), bSync => false})}, + '[object]', 'open'); + + $self->testResult(sub {$oPosixIo->write(\$tContent, $iFileLength)}, $iFileLength, 'write'); + $self->testResult(sub {$oPosixIo->close()}, true, 'close'); + + $self->testResult(sub {${storageTest()->get("${strFile}.atomic")}}, $strFileContent, 'check content'); + + #--------------------------------------------------------------------------------------------------------------------------- + $oPosixIo = $self->testResult( + sub {new pgBackRest::Storage::Posix::FileWrite($oPosix, $strFile)}, '[object]', 'open'); + + $self->testResult(sub {$oPosixIo->close()}, true, 'close'); + + undef($oPosixIo); + + #--------------------------------------------------------------------------------------------------------------------------- + $oPosixIo = $self->testResult( + sub {new pgBackRest::Storage::Posix::FileWrite($oPosix, $strFile, {lTimestamp => time()})}, '[object]', 'open'); + $self->testResult(sub {$oPosixIo->write(\$strFileContent, $iFileLength)}, $iFileLength, 'write'); + executeTest("rm -f $strFile"); + + $self->testException( + sub {$oPosixIo->close()}, ERROR_FILE_WRITE, "unable to set time for '${strFile}': No such file or directory"); + } + + ################################################################################################################################ + if ($self->begin('pathCreate()')) + { + my $strPathParent = $self->testPath() . '/parent'; + my $strPathSub = "${strPathParent}/sub1/sub2"; + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {$oPosix->pathCreate($strPathParent)}, undef, 'parent path'); + $self->testResult( + sub {$oPosix->pathExists($strPathParent)}, true, ' check path'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException( + sub {$oPosix->pathCreate($strPathParent)}, ERROR_PATH_EXISTS, + "unable to create path '${strPathParent}' because it already exists"); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$oPosix->pathCreate($strPathParent, {bIgnoreExists => true})}, undef, 'path already exists'); + + #--------------------------------------------------------------------------------------------------------------------------- + executeTest("sudo chown root:root ${strPathParent} && sudo chmod 700 ${strPathParent}"); + + $self->testException( + sub {$oPosix->pathCreate($strPathSub)}, ERROR_PATH_CREATE, + "unable to create path '${strPathSub}': Permission denied"); + + #--------------------------------------------------------------------------------------------------------------------------- + executeTest("rmdir ${strPathParent}"); + + $self->testException( + sub {$oPosix->pathCreate($strPathSub)}, ERROR_PATH_MISSING, + "unable to create path '${strPathSub}' because parent does not exist"); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$oPosix->pathCreate($strPathSub, {bCreateParent => true})}, undef, 'path with parents'); + $self->testResult( + sub {$oPosix->pathExists($strPathSub)}, true, ' check path'); + } + + ################################################################################################################################ + if ($self->begin('move()')) + { + my $strFileCopy = "${strFile}.copy"; + my $strFileSub = $self->testPath() . '/sub/file.txt'; + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException( + sub {$oPosix->move($strFile, $strFileCopy)}, ERROR_FILE_MISSING, + "unable to move '${strFile}' because it is missing"); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult(sub {storageTest()->put($strFile, $strFileContent)}, $iFileLength, 'put'); + $self->testResult( + sub {$oPosix->move($strFile, $strFileCopy)}, undef, 'simple move'); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testException( + sub {$oPosix->move($strFileCopy, $strFileSub)}, ERROR_PATH_MISSING, + "unable to move '${strFileCopy}' to missing path '" . dirname($strFileSub) . "'"); + + #--------------------------------------------------------------------------------------------------------------------------- + executeTest('sudo mkdir ' . dirname($strFileSub) . ' && sudo chmod 700 ' . dirname($strFileSub)); + + $self->testException( + sub {$oPosix->move($strFileCopy, $strFileSub)}, ERROR_FILE_MOVE, + "unable to move '${strFileCopy}' to '${strFileSub}': Permission denied"); + + executeTest('sudo rmdir ' . dirname($strFileSub)); + + #--------------------------------------------------------------------------------------------------------------------------- + $self->testResult( + sub {$oPosix->move($strFileCopy, $strFileSub, {bCreatePath => true})}, undef, 'create parent path'); + } +} + +1; diff --git a/test/test.pl b/test/test.pl index cd7b613aa..060035405 100755 --- a/test/test.pl +++ b/test/test.pl @@ -23,8 +23,8 @@ use POSIX qw(ceil strftime); use Time::HiRes qw(gettimeofday); use lib dirname($0) . '/lib'; -use lib dirname($0) . '/../lib'; -use lib dirname($0) . '/../doc/lib'; +use lib dirname(dirname($0)) . '/lib'; +use lib dirname(dirname($0)) . '/doc/lib'; use pgBackRest::Common::Exception; use pgBackRest::Common::Ini; @@ -33,7 +33,9 @@ use pgBackRest::Common::String; use pgBackRest::Common::Wait; use pgBackRest::Config::Config; use pgBackRest::DbVersion; -use pgBackRest::FileCommon; +use pgBackRest::Storage::Helper; +use pgBackRest::Storage::Posix::Driver; +use pgBackRest::Storage::Local; use pgBackRest::Version; use BackRestDoc::Custom::DocCustomRelease; @@ -75,7 +77,8 @@ test.pl [options] --smart perform libc/package builds only when source timestamps have changed --no-package do not build packages --no-ci-config don't overwrite the current continuous integration config - --dev --no-lint --smart --no-package --vm-out --process-max=1 + --dev --no-lint --smart --no-package --process-max=1 + --expect --no-lint --smart --no-package --process-max=1 --vm=co7 --db=9.5 --log-force Configuration Options: --psql-bin path to the psql executables (e.g. /usr/lib/postgresql/9.3/bin/) @@ -126,6 +129,7 @@ my $bSmart = false; my $bNoPackage = false; my $bNoCiConfig = false; my $bDev = false; +my $bExpect = false; my $iRetry = 0; GetOptions ('q|quiet' => \$bQuiet, @@ -156,6 +160,7 @@ GetOptions ('q|quiet' => \$bQuiet, 'coverage-only' => \$bCoverageOnly, 'smart' => \$bSmart, 'dev' => \$bDev, + 'expect' => \$bExpect, 'retry=s' => \$iRetry) or pod2usage(2); @@ -192,10 +197,23 @@ eval $bNoLint = true; $bSmart = true; $bNoPackage = true; - $bVmOut = true; $iProcessMax = 1; } + ################################################################################################################################ + # Update options for --expect + ################################################################################################################################ + if ($bExpect) + { + $bNoLint = true; + $bSmart = true; + $bNoPackage = true; + $iProcessMax = 1; + $strVm = VM_CO7; + $strDbVersion = '9.5'; + $bLogForce = true; + } + ################################################################################################################################ # Setup ################################################################################################################################ @@ -232,6 +250,9 @@ eval $strTestPath = cwd() . '/test'; } + my $oStorageTest = new pgBackRest::Storage::Local( + $strTestPath, new pgBackRest::Storage::Posix::Driver({bFileSync => false, bPathSync => false})); + if ($bCoverageOnly) { if (!defined($strVm)) @@ -258,12 +279,15 @@ eval # Get the base backrest path my $strBackRestBase = dirname(dirname(abs_path($0))); + my $oStorageBackRest = new pgBackRest::Storage::Local( + $strBackRestBase, new pgBackRest::Storage::Posix::Driver({bFileSync => false, bPathSync => false})); + ################################################################################################################################ # Build Docker containers ################################################################################################################################ if ($bVmBuild) { - containerBuild($strVm, $bVmForce, $strDbVersion); + containerBuild($oStorageBackRest, $strVm, $bVmForce, $strDbVersion); exit 0; } @@ -275,7 +299,7 @@ eval # Build CI configuration if (!$bNoCiConfig) { - (new pgBackRestTest::Common::CiTest($strBackRestBase))->process(); + (new pgBackRestTest::Common::CiTest($oStorageBackRest))->process(); } # Load the doc module dynamically since it is not supported on all systems @@ -351,7 +375,7 @@ eval } executeTest("sudo rm -rf ${strTestPath}/*"); - filePathCreate($strCoveragePath, '0770', true, true); + $oStorageTest->pathCreate($strCoveragePath, {strMode => '0770', bIgnoreMissing => true, bCreateParent => true}); } # Build the C Library and Packages @@ -371,7 +395,7 @@ eval # Find the lastest modified time in the libc dir my $lTimestampLibCLast = 0; - my $hManifest = fileManifest("${strBackRestBase}/libc"); + my $hManifest = $oStorageBackRest->manifest('libc'); foreach my $strFile (sort(keys(%{$hManifest}))) { @@ -382,7 +406,8 @@ eval } # Rebuild if the modification time of the makefile does not equal the latest file in libc - if (!$bSmart || !fileExists($strLibCSmart) || fileStat($strLibCSmart)->mtime != $lTimestampLibCLast) + if (!$bSmart || !$oStorageBackRest->exists($strLibCSmart) || + $oStorageBackRest->info($strLibCSmart)->mtime != $lTimestampLibCLast) { if ($bSmart) { @@ -397,7 +422,7 @@ eval # Find the lastest modified time in the bin, lib dirs my $lTimestampPackageLast = $lTimestampLibCLast; - $hManifest = fileManifest("${strBackRestBase}/bin"); + $hManifest = $oStorageBackRest->manifest('bin'); foreach my $strFile (sort(keys(%{$hManifest}))) { @@ -407,7 +432,7 @@ eval } } - $hManifest = fileManifest("${strBackRestBase}/lib"); + $hManifest = $oStorageBackRest->manifest('lib'); foreach my $strFile (sort(keys(%{$hManifest}))) { @@ -419,7 +444,8 @@ eval # Rebuild if the modification time of the makefile does not equal the latest file in libc if (!$bNoPackage && - (!$bSmart || !fileExists($strPackageSmart) || fileStat($strPackageSmart)->mtime != $lTimestampPackageLast)) + (!$bSmart || !$oStorageBackRest->exists($strPackageSmart) || + $oStorageBackRest->info($strPackageSmart)->mtime != $lTimestampPackageLast)) { if ($bSmart) { @@ -438,7 +464,7 @@ eval my $strBuildPath = "${strLibCPath}/${strBuildVM}"; my $bContainerExists = $strVm eq VM_ALL || $strBuildVM ne $strVmHost; - if (!fileExists($strBuildPath)) + if (!$oStorageBackRest->pathExists($strBuildPath)) { &log(INFO, "Build/test C library for ${strBuildVM} (${strBuildPath})"); @@ -450,7 +476,7 @@ eval {bSuppressStdErr => true}); } - filePathCreate($strBuildPath, undef, true, true); + $oStorageBackRest->pathCreate($strBuildPath, {bIgnoreExists => true, bCreateParent => true}); executeTest("cp -r ${strBackRestBase}/libc/* ${strBuildPath}"); executeTest( @@ -504,7 +530,7 @@ eval } # Write files to indicate the last time a build was successful - fileStringWrite($strLibCSmart, undef, false); + $oStorageBackRest->put($strLibCSmart); utime($lTimestampLibCLast, $lTimestampLibCLast, $strLibCSmart) or confess "unable to set time for ${strLibCSmart}" . (defined($!) ? ":$!" : ''); @@ -512,13 +538,13 @@ eval if (!$bNoPackage) { my @stryBuildVm = $strVm eq VM_ALL ? VM_LIST : ($strVm); - filePathCreate($strPackagePath, undef, true, true); + $oStorageBackRest->pathCreate($strPackagePath, {bIgnoreExists => true, bCreateParent => true}); foreach my $strBuildVM (sort(@stryBuildVm)) { my $strBuildPath = "${strPackagePath}/${strBuildVM}/src"; - if (!fileExists($strBuildPath) && $oVm->{$strBuildVM}{&VM_OS_BASE} eq VM_OS_BASE_DEBIAN) + if (!$oStorageBackRest->pathExists($strBuildPath) && $oVm->{$strBuildVM}{&VM_OS_BASE} eq VM_OS_BASE_DEBIAN) { &log(INFO, "Build package for ${strBuildVM} (${strBuildPath})"); @@ -527,7 +553,8 @@ eval " -v ${strBackRestBase}:${strBackRestBase} " . containerRepo() . ":${strBuildVM}-build", {bSuppressStdErr => true}); - filePathCreate($strBuildPath, undef, true, true); + $oStorageBackRest->pathCreate($strBuildPath, {bIgnoreExists => true, bCreateParent => true}); + executeTest("rsync -r --exclude .vagrant --exclude .git ${strBackRestBase}/ ${strBuildPath}/"); executeTest( "docker exec -i test-build " . @@ -537,23 +564,23 @@ eval # If dev build then override then disable static release date used for reproducibility. if ($bVersionDev) { - my $strRules = fileStringRead("${strBuildPath}/debian/rules"); + my $strRules = ${$oStorageBackRest->get("${strBuildPath}/debian/rules")}; $strRules =~ s/\-\-var\=release-date-static\=y/\-\-var\=release-date-static\=n/g; $strRules =~ s/\-\-out\=html \-\-cache\-only/\-\-out\=html \-\-no\-exe/g; - fileStringWrite("${strBuildPath}/debian/rules", $strRules, false); + $oStorageBackRest->put("${strBuildPath}/debian/rules", $strRules); } # Update changelog to add experimental version - fileStringWrite("${strBuildPath}/debian/changelog", + $oStorageBackRest->put("${strBuildPath}/debian/changelog", "pgbackrest (${strVersionBase}-0." . ($bVersionDev ? 'D' : 'P') . strftime("%Y%m%d%H%M%S", gmtime) . ") experimental; urgency=medium\n" . "\n" . ' * Automated experimental ' . ($bVersionDev ? 'development' : 'production') . " build.\n" . "\n" . ' -- David Steele ' . strftime("%a, %e %b %Y %H:%M:%S %z", gmtime) . "\n\n" . - fileStringRead("${strBuildPath}/debian/changelog"), false); + ${$oStorageBackRest->get("${strBuildPath}/debian/changelog")}); executeTest( "docker exec -i test-build " . @@ -571,7 +598,7 @@ eval # Write files to indicate the last time a build was successful if (!$bNoPackage) { - fileStringWrite($strPackageSmart, undef, false); + $oStorageBackRest->put($strPackageSmart); utime($lTimestampPackageLast, $lTimestampPackageLast, $strPackageSmart) or confess "unable to set time for ${strPackageSmart}" . (defined($!) ? ":$!" : ''); } @@ -661,8 +688,8 @@ eval if (!defined($$oyProcess[$iVmIdx]) && $iTestIdx < @{$oyTestRun}) { my $oJob = new pgBackRestTest::Common::JobTest( - $strBackRestBase, $strTestPath, $strCoveragePath, $$oyTestRun[$iTestIdx], $bDryRun, $bVmOut, $iVmIdx, - $iVmMax, $iTestIdx, $iTestMax, $strLogLevel, $bLogForce, $bShowOutputAsync, $bNoCleanup, $iRetry); + $oStorageTest, $strBackRestBase, $strTestPath, $strCoveragePath, $$oyTestRun[$iTestIdx], $bDryRun, $bVmOut, + $iVmIdx, $iVmMax, $iTestIdx, $iTestMax, $strLogLevel, $bLogForce, $bShowOutputAsync, $bNoCleanup, $iRetry); $iTestIdx++; if ($oJob->run()) @@ -721,7 +748,7 @@ eval # Load the results of coverage testing from JSON my $oJSON = JSON::PP->new()->allow_nonref(); - my $hCoverageResult = $oJSON->decode(fileStringRead("${strBackRestBase}/test/coverage/cover.json")); + my $hCoverageResult = $oJSON->decode(${$oStorageBackRest->get('test/coverage/cover.json')}); # Now compare against code modules that should have full coverage my $hCoverageList = testDefCoverageList();