diff --git a/doc/xml/release.xml b/doc/xml/release.xml index 80740fe05..cde2ccd43 100644 --- a/doc/xml/release.xml +++ b/doc/xml/release.xml @@ -24,6 +24,12 @@ + + +

Make backup directory sync more efficient. Scanning the entire backup directory can be very expensive if there are a lot of small tables. The backup manifest contains the backup directory list so use it to perform syncs instead of scanning the backup directory.

+
+
+

Make backup.history sync more efficient. Only the backup.history/[year] directory was being synced, so check if the backup.history is newly created and sync it as well.

diff --git a/lib/pgBackRest/Backup/Backup.pm b/lib/pgBackRest/Backup/Backup.pm index fd5d9c6f3..329446a07 100644 --- a/lib/pgBackRest/Backup/Backup.pm +++ b/lib/pgBackRest/Backup/Backup.pm @@ -940,8 +940,23 @@ sub process $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}); + # Sync backup path if supported + if ($oStorageRepo->driver()->capability(STORAGE_CAPABILITY_PATH_SYNC)) + { + # Sync all paths in the backup + $oStorageRepo->pathSync(STORAGE_REPO_BACKUP . "/${strBackupLabel}"); + + foreach my $strPath ($oBackupManifest->keys(MANIFEST_SECTION_TARGET_PATH)) + { + my $strPathSync = $oStorageRepo->pathGet(STORAGE_REPO_BACKUP . "/${strBackupLabel}/$strPath"); + + # Not all paths are created for diff/incr backups, so only sync if this is a full backup or the path exists + if ($strType eq CFGOPTVAL_BACKUP_TYPE_FULL || $oStorageRepo->pathExists($strPathSync)) + { + $oStorageRepo->pathSync($strPathSync); + } + } + } # Final save of the backup manifest $oBackupManifest->save(); @@ -965,15 +980,19 @@ sub process bPathCreate => true, bAtomic => true, strCipherPass => defined($strCipherPassManifest) ? $strCipherPassManifest : undef})); - # Sync entire history path if it did not already exist - if (!$bHistoryExists) + # Sync history path if supported + if ($oStorageRepo->driver()->capability(STORAGE_CAPABILITY_PATH_SYNC)) { - $oStorageRepo->pathSync(STORAGE_REPO_BACKUP . qw{/} . PATH_BACKUP_HISTORY, {bRecurse => true}); - } - # Else sync only the history year path - else - { - $oStorageRepo->pathSync($strHistoryPath); + # Sync entire history path if it did not already exist + if (!$bHistoryExists) + { + $oStorageRepo->pathSync(STORAGE_REPO_BACKUP . qw{/} . PATH_BACKUP_HISTORY, {bRecurse => true}); + } + # Else sync only the history year path + else + { + $oStorageRepo->pathSync($strHistoryPath); + } } # Create a link to the most recent backup @@ -988,8 +1007,11 @@ sub process # Save backup info $oBackupInfo->add($oBackupManifest); - # Sync backup root path - $oStorageRepo->pathSync(STORAGE_REPO_BACKUP); + # Sync backup root path if supported + if ($oStorageRepo->driver()->capability(STORAGE_CAPABILITY_PATH_SYNC)) + { + $oStorageRepo->pathSync(STORAGE_REPO_BACKUP); + } # Return from function and log return values if any return logDebugReturn($strOperation); diff --git a/lib/pgBackRest/Storage/Base.pm b/lib/pgBackRest/Storage/Base.pm index 504ca4a6e..21406c229 100644 --- a/lib/pgBackRest/Storage/Base.pm +++ b/lib/pgBackRest/Storage/Base.pm @@ -39,6 +39,8 @@ use constant CIPHER_MAGIC => 'Salted__ #################################################################################################################################### use constant STORAGE_CAPABILITY_LINK => 'link'; push @EXPORT, qw(STORAGE_CAPABILITY_LINK); +use constant STORAGE_CAPABILITY_PATH_SYNC => 'path-sync'; + push @EXPORT, qw(STORAGE_CAPABILITY_PATH_SYNC); #################################################################################################################################### # new diff --git a/test/expect/mock-all-001.log b/test/expect/mock-all-001.log index bc352e50a..4b9f1074f 100644 --- a/test/expect/mock-all-001.log +++ b/test/expect/mock-all-001.log @@ -259,7 +259,6 @@ 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], strCipherPass = [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], strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy @@ -270,14 +269,12 @@ P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], strCipherPass = [undef], xFileExp = /[BACKUP-FULL-1]/backup.manifest P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] -P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /backup.history P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , xstryPathFileExp = /latest P00 DEBUG: Storage::Local->remove=>: bRemoved = false P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strCipherPass = [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], strCipherPass = [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/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/db-master/log --repo1-path=[TEST_PATH]/db-master/repo --repo1-type=cifs --stanza=db P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/db-master/repo/backup/db, strCipherPassSub = [undef] @@ -819,7 +816,23 @@ 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-2] +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/base +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/global +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_dynshmem +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_notify +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_replslot +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_serial +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_snapshots +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_stat_tmp +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_subtrans +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_tblspc P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strCipherPass = [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], strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy @@ -1772,7 +1785,52 @@ 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: Storage::Local->pathSync(): bRecurse = true, strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_dynshmem +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_notify +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_replslot +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_serial +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_snapshots +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_stat_tmp +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_subtrans +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1]/16384 P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strCipherPass = [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], strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy @@ -2125,7 +2183,65 @@ P00 DEBUG: Backup::Backup->processManifest=>: lSizeTotal = 25 P00 INFO: incr backup size = 25B 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-INCR-2] +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_dynshmem +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_notify +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_replslot +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_serial +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_snapshots +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_stat_tmp +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_subtrans +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/11 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/11/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2 +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1]/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1]/32768 P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strCipherPass = [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], strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy diff --git a/test/expect/mock-all-002.log b/test/expect/mock-all-002.log index 8638528d4..87942bd84 100644 --- a/test/expect/mock-all-002.log +++ b/test/expect/mock-all-002.log @@ -263,7 +263,6 @@ 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], strCipherPass = [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], strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest.copy @@ -274,14 +273,12 @@ P00 DEBUG: Storage::Local->pathExists=>: bExists = false P00 DEBUG: Storage::Local->openRead(): bIgnoreMissing = , rhyFilter = [undef], strCipherPass = [undef], xFileExp = /[BACKUP-FULL-1]/backup.manifest P00 DEBUG: Storage::Local->openWrite(): bAtomic = true, bPathCreate = true, lTimestamp = [undef], rhyFilter = ({strClass => pgBackRest::Storage::Filter::Gzip}), strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/backup.history/[YEAR-1]/[BACKUP-FULL-1].manifest.gz P00 DEBUG: Storage::Base->copy(): xDestinationFile = [object], xSourceFile = [object] -P00 DEBUG: Storage::Local->pathSync(): bRecurse = true, strPathExp = /backup.history P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = , bRecurse = , xstryPathFileExp = /latest P00 DEBUG: Storage::Local->remove=>: bRemoved = false P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strCipherPass = [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], strCipherPass = [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 --lock-path=[TEST_PATH]/backup/lock --log-level-console=debug --log-level-file=trace --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --pg1-host=db-master --pg1-host-cmd=[BACKREST-BIN] --pg1-host-config=[TEST_PATH]/db-master/pgbackrest.conf --pg1-host-user=[USER-1] --repo1-path=[TEST_PATH]/backup/repo --repo1-type=cifs --stanza=db P00 DEBUG: Backup::Info->new(): bIgnoreMissing = , bLoad = , bRequired = , bValidate = , oStorage = <[object]>, strBackupClusterPath = [TEST_PATH]/backup/repo/backup/db, strCipherPassSub = [undef] @@ -1095,7 +1092,16 @@ 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-2] +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /[BACKUP-FULL-2] +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/pg_data +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/pg_data/base +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/pg_data/global +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/pg_data/pg_tblspc P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strCipherPass = [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], strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy @@ -1864,7 +1870,38 @@ 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-INCR-1] +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /[BACKUP-INCR-1] +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_data +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_data +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_data/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_data/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/pg_tblspc/1/[TS_PATH-1]/16384 P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strCipherPass = [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], strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest.copy @@ -2247,7 +2284,51 @@ 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-INCR-2] +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = /[BACKUP-INCR-2] +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_data +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_data +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_data/base +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_data/base/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_data/base/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_data/base/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_data/global +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_clog +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_stat +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_data/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1 +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/1/[TS_PATH-1]/16384 +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/11 +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/11/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = false +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2 +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1] +P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1]/32768 +P00 DEBUG: Storage::Local->pathExists=>: bExists = true +P00 DEBUG: Storage::Local->pathSync(): bRecurse = , strPathExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/pg_tblspc/2/[TS_PATH-1]/32768 P00 DEBUG: Storage::Local->openWrite(): bAtomic = , bPathCreate = , lTimestamp = [undef], rhyFilter = [undef], strCipherPass = [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], strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]/backup.manifest.copy