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();