From e4e2606fce1ef28e82f359581e1a90be6d10414c Mon Sep 17 00:00:00 2001 From: blogh Date: Sun, 10 Mar 2019 11:03:52 +0200 Subject: [PATCH] Add additional options to backup.manifest for debugging purposes. Add the buffer-size, compress-level, compress-level-network, and process-max options to the backup:option section in backup.manifest to aid in debugging. It may also make sense to propagate these options up to backup.info so they can be displayed in the info command, but for now this is deemed sufficient. Contributed by blogh. --- doc/xml/release.xml | 8 +++ lib/pgBackRest/Backup/Backup.pm | 6 ++ lib/pgBackRest/Manifest.pm | 8 +++ src/perl/embed.auto.c | 14 +++++ test/expect/mock-all-001.log | 60 +++++++++++++++++++ test/expect/mock-all-002.log | 60 +++++++++++++++++++ .../pgBackRestTest/Env/Host/HostBackupTest.pm | 8 +++ .../pgBackRestTest/Module/Mock/MockAllTest.pm | 33 ++++++++++ 8 files changed, 197 insertions(+) diff --git a/doc/xml/release.xml b/doc/xml/release.xml index 111cefa62..105a60422 100644 --- a/doc/xml/release.xml +++ b/doc/xml/release.xml @@ -76,6 +76,14 @@

Improve error when hostname cannot be found in a certificate.

+ + + + + + +

Add additional options to backup.manifest for debugging purposes.

+
diff --git a/lib/pgBackRest/Backup/Backup.pm b/lib/pgBackRest/Backup/Backup.pm index 1c11bdd44..dad38579b 100644 --- a/lib/pgBackRest/Backup/Backup.pm +++ b/lib/pgBackRest/Backup/Backup.pm @@ -778,7 +778,12 @@ sub process $oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE, undef, $strType); $oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_START, undef, $lTimestampStart); $oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_BACKUP_STANDBY, undef, cfgOption(CFGOPT_BACKUP_STANDBY)); + $oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_BUFFER_SIZE, undef, cfgOption(CFGOPT_BUFFER_SIZE)); $oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS, undef, $bCompress); + $oBackupManifest->numericSet( + MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS_LEVEL, undef, cfgOption(CFGOPT_COMPRESS_LEVEL)); + $oBackupManifest->numericSet( + MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS_LEVEL_NETWORK, undef, cfgOption(CFGOPT_COMPRESS_LEVEL_NETWORK)); $oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK, undef, $bHardLink); $oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ONLINE, undef, cfgOption(CFGOPT_ONLINE)); $oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ARCHIVE_COPY, undef, @@ -786,6 +791,7 @@ sub process (cfgOption(CFGOPT_ARCHIVE_CHECK) && cfgOption(CFGOPT_ARCHIVE_COPY))); $oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ARCHIVE_CHECK, undef, !cfgOption(CFGOPT_ONLINE) || cfgOption(CFGOPT_ARCHIVE_CHECK)); + $oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_PROCESS_MAX, undef, cfgOption(CFGOPT_PROCESS_MAX)); # Database settings $oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_DB_ID, undef, $iDbHistoryId); diff --git a/lib/pgBackRest/Manifest.pm b/lib/pgBackRest/Manifest.pm index c9607a587..896f597ae 100644 --- a/lib/pgBackRest/Manifest.pm +++ b/lib/pgBackRest/Manifest.pm @@ -103,14 +103,22 @@ use constant MANIFEST_KEY_ARCHIVE_CHECK => 'option-' push @EXPORT, qw(MANIFEST_KEY_ARCHIVE_CHECK); use constant MANIFEST_KEY_ARCHIVE_COPY => 'option-' .cfgOptionName(CFGOPT_ARCHIVE_COPY); push @EXPORT, qw(MANIFEST_KEY_ARCHIVE_COPY); +use constant MANIFEST_KEY_BUFFER_SIZE => 'option-' . cfgOptionName(CFGOPT_BUFFER_SIZE); + push @EXPORT, qw(MANIFEST_KEY_BUFFER_SIZE); use constant MANIFEST_KEY_CHECKSUM_PAGE => 'option-' . cfgOptionName(CFGOPT_CHECKSUM_PAGE); push @EXPORT, qw(MANIFEST_KEY_CHECKSUM_PAGE); use constant MANIFEST_KEY_COMPRESS => 'option-' . cfgOptionName(CFGOPT_COMPRESS); push @EXPORT, qw(MANIFEST_KEY_COMPRESS); +use constant MANIFEST_KEY_COMPRESS_LEVEL => 'option-' . cfgOptionName(CFGOPT_COMPRESS_LEVEL); + push @EXPORT, qw(MANIFEST_KEY_COMPRESS_LEVEL); +use constant MANIFEST_KEY_COMPRESS_LEVEL_NETWORK => 'option-' . cfgOptionName(CFGOPT_COMPRESS_LEVEL_NETWORK); + push @EXPORT, qw(MANIFEST_KEY_COMPRESS_LEVEL_NETWORK); use constant MANIFEST_KEY_ONLINE => 'option-' . cfgOptionName(CFGOPT_ONLINE); push @EXPORT, qw(MANIFEST_KEY_ONLINE); use constant MANIFEST_KEY_DELTA => 'option-' . cfgOptionName(CFGOPT_DELTA); push @EXPORT, qw(MANIFEST_KEY_DELTA); +use constant MANIFEST_KEY_PROCESS_MAX => 'option-' . cfgOptionName(CFGOPT_PROCESS_MAX); + push @EXPORT, qw(MANIFEST_KEY_PROCESS_MAX); # Information about the database that was backed up use constant MANIFEST_KEY_DB_ID => 'db-id'; diff --git a/src/perl/embed.auto.c b/src/perl/embed.auto.c index 05f120016..105c71f75 100644 --- a/src/perl/embed.auto.c +++ b/src/perl/embed.auto.c @@ -2353,7 +2353,12 @@ static const EmbeddedModule embeddedModule[] = "$oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE, undef, $strType);\n" "$oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_START, undef, $lTimestampStart);\n" "$oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_BACKUP_STANDBY, undef, cfgOption(CFGOPT_BACKUP_STANDBY));\n" + "$oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_BUFFER_SIZE, undef, cfgOption(CFGOPT_BUFFER_SIZE));\n" "$oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS, undef, $bCompress);\n" + "$oBackupManifest->numericSet(\n" + "MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS_LEVEL, undef, cfgOption(CFGOPT_COMPRESS_LEVEL));\n" + "$oBackupManifest->numericSet(\n" + "MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS_LEVEL_NETWORK, undef, cfgOption(CFGOPT_COMPRESS_LEVEL_NETWORK));\n" "$oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK, undef, $bHardLink);\n" "$oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ONLINE, undef, cfgOption(CFGOPT_ONLINE));\n" "$oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ARCHIVE_COPY, undef,\n" @@ -2361,6 +2366,7 @@ static const EmbeddedModule embeddedModule[] = "(cfgOption(CFGOPT_ARCHIVE_CHECK) && cfgOption(CFGOPT_ARCHIVE_COPY)));\n" "$oBackupManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ARCHIVE_CHECK, undef,\n" "!cfgOption(CFGOPT_ONLINE) || cfgOption(CFGOPT_ARCHIVE_CHECK));\n" + "$oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_PROCESS_MAX, undef, cfgOption(CFGOPT_PROCESS_MAX));\n" "\n\n" "$oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_DB_ID, undef, $iDbHistoryId);\n" "$oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_CONTROL, undef, $iControlVersion);\n" @@ -10843,14 +10849,22 @@ static const EmbeddedModule embeddedModule[] = "push @EXPORT, qw(MANIFEST_KEY_ARCHIVE_CHECK);\n" "use constant MANIFEST_KEY_ARCHIVE_COPY => 'option-' .cfgOptionName(CFGOPT_ARCHIVE_COPY);\n" "push @EXPORT, qw(MANIFEST_KEY_ARCHIVE_COPY);\n" + "use constant MANIFEST_KEY_BUFFER_SIZE => 'option-' . cfgOptionName(CFGOPT_BUFFER_SIZE);\n" + "push @EXPORT, qw(MANIFEST_KEY_BUFFER_SIZE);\n" "use constant MANIFEST_KEY_CHECKSUM_PAGE => 'option-' . cfgOptionName(CFGOPT_CHECKSUM_PAGE);\n" "push @EXPORT, qw(MANIFEST_KEY_CHECKSUM_PAGE);\n" "use constant MANIFEST_KEY_COMPRESS => 'option-' . cfgOptionName(CFGOPT_COMPRESS);\n" "push @EXPORT, qw(MANIFEST_KEY_COMPRESS);\n" + "use constant MANIFEST_KEY_COMPRESS_LEVEL => 'option-' . cfgOptionName(CFGOPT_COMPRESS_LEVEL);\n" + "push @EXPORT, qw(MANIFEST_KEY_COMPRESS_LEVEL);\n" + "use constant MANIFEST_KEY_COMPRESS_LEVEL_NETWORK => 'option-' . cfgOptionName(CFGOPT_COMPRESS_LEVEL_NETWORK);\n" + "push @EXPORT, qw(MANIFEST_KEY_COMPRESS_LEVEL_NETWORK);\n" "use constant MANIFEST_KEY_ONLINE => 'option-' . cfgOptionName(CFGOPT_ONLINE);\n" "push @EXPORT, qw(MANIFEST_KEY_ONLINE);\n" "use constant MANIFEST_KEY_DELTA => 'option-' . cfgOptionName(CFGOPT_DELTA);\n" "push @EXPORT, qw(MANIFEST_KEY_DELTA);\n" + "use constant MANIFEST_KEY_PROCESS_MAX => 'option-' . cfgOptionName(CFGOPT_PROCESS_MAX);\n" + "push @EXPORT, qw(MANIFEST_KEY_PROCESS_MAX);\n" "\n\n" "use constant MANIFEST_KEY_DB_ID => 'db-id';\n" "push @EXPORT, qw(MANIFEST_KEY_DB_ID);\n" diff --git a/test/expect/mock-all-001.log b/test/expect/mock-all-001.log index 129f6889c..f5496903a 100644 --- a/test/expect/mock-all-001.log +++ b/test/expect/mock-all-001.log @@ -419,11 +419,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=16384 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=3 option-delta=false option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -1110,11 +1114,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=3 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -2282,11 +2290,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=3 option-delta=false option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -2797,11 +2809,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=3 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -2994,11 +3010,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=3 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -3186,11 +3206,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=3 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -3767,11 +3791,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=3 option-delta=false option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -4034,11 +4062,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=3 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -4228,11 +4260,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=3 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -4401,11 +4437,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=3 option-delta=false option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -4598,11 +4638,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=3 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -4788,11 +4832,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=false option-compress=true +option-compress-level=3 +option-compress-level-network=3 option-delta=false option-hardlink=true option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -5342,11 +5390,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=false option-compress=true +option-compress-level=3 +option-compress-level-network=3 option-delta=false option-hardlink=true option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -5830,11 +5882,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=false option-compress=true +option-compress-level=3 +option-compress-level-network=3 option-delta=false option-hardlink=true option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2/base","type":"path"} @@ -5999,11 +6055,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=false option-compress=true +option-compress-level=3 +option-compress-level-network=3 option-delta=false option-hardlink=true option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2/base","type":"path"} diff --git a/test/expect/mock-all-002.log b/test/expect/mock-all-002.log index 723b0d691..4ddf0c5ac 100644 --- a/test/expect/mock-all-002.log +++ b/test/expect/mock-all-002.log @@ -165,11 +165,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=16384 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=1 option-delta=false option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -348,11 +352,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=1 option-delta=false option-hardlink=false option-online=false +option-process-max=2 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -636,11 +644,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=1 option-delta=false option-hardlink=false option-online=false +option-process-max=2 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -830,11 +842,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=1 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -1034,11 +1050,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=1 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -1234,11 +1254,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=1 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base","type":"path"} @@ -1455,11 +1479,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=1 option-delta=false option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -1677,11 +1705,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=1 option-delta=true option-hardlink=false option-online=false +option-process-max=2 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -1878,11 +1910,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=1 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -2077,11 +2113,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=1 option-delta=false option-hardlink=false option-online=false +option-process-max=2 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -2280,11 +2320,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=true option-compress=false +option-compress-level=3 +option-compress-level-network=1 option-delta=true option-hardlink=false option-online=false +option-process-max=1 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -2475,11 +2519,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=false option-compress=true +option-compress-level=3 +option-compress-level-network=1 option-delta=false option-hardlink=false option-online=false +option-process-max=2 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -3031,11 +3079,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=false option-compress=true +option-compress-level=3 +option-compress-level-network=1 option-delta=false option-hardlink=false option-online=false +option-process-max=2 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2","type":"path"} @@ -3408,11 +3460,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=false option-compress=true +option-compress-level=3 +option-compress-level-network=1 option-delta=false option-hardlink=false option-online=false +option-process-max=2 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2/base","type":"path"} @@ -3610,11 +3666,15 @@ db-version="9.4" option-archive-check=true option-archive-copy=true option-backup-standby=false +option-buffer-size=4194304 option-checksum-page=false option-compress=true +option-compress-level=3 +option-compress-level-network=1 option-delta=false option-hardlink=false option-online=false +option-process-max=2 [backup:target] pg_data={"path":"[TEST_PATH]/db-master/db/base-2/base","type":"path"} diff --git a/test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm b/test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm index 3c0c63b78..5b731dbfc 100644 --- a/test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm +++ b/test/lib/pgBackRestTest/Env/Host/HostBackupTest.pm @@ -1938,12 +1938,20 @@ sub restoreCompare ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_ARCHIVE_COPY}); $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_BACKUP_STANDBY, undef, ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_BACKUP_STANDBY}); + $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_BUFFER_SIZE, undef, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_BUFFER_SIZE}); $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS, undef, ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_COMPRESS}); + $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS_LEVEL, undef, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_COMPRESS_LEVEL}); + $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS_LEVEL_NETWORK, undef, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_COMPRESS_LEVEL_NETWORK}); $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK, undef, ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_HARDLINK}); $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ONLINE, undef, ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_ONLINE}); + $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_PROCESS_MAX, undef, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX}); $oActualManifest->boolSet(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_DELTA, undef, ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_DELTA}); diff --git a/test/lib/pgBackRestTest/Module/Mock/MockAllTest.pm b/test/lib/pgBackRestTest/Module/Mock/MockAllTest.pm index b5f06e8a0..ad421a3dd 100644 --- a/test/lib/pgBackRestTest/Module/Mock/MockAllTest.pm +++ b/test/lib/pgBackRestTest/Module/Mock/MockAllTest.pm @@ -115,10 +115,14 @@ sub run $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_ARCHIVE_CHECK} = JSON::PP::true; $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_ARCHIVE_COPY} = JSON::PP::true; $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_BACKUP_STANDBY} = JSON::PP::false; + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_BUFFER_SIZE} = 16384; $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_CHECKSUM_PAGE} = JSON::PP::true; $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_COMPRESS} = JSON::PP::false; + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_COMPRESS_LEVEL} = 3; + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_COMPRESS_LEVEL_NETWORK} = $bRemote ? 1 : 3; $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_HARDLINK} = JSON::PP::false; $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_ONLINE} = JSON::PP::false; + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = $bS3 ? 2 : 1; $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_DELTA} = JSON::PP::false; if ($bEncrypt) @@ -385,6 +389,8 @@ sub run $oHostDbMaster->manifestFileCreate( \%oManifest, MANIFEST_TARGET_PGDATA, 'special-@!#$^&*()-_+~`{}[]\|:;"<>\',.?%', undef, undef, $lTime, undef, true); + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = 1; + $strFullBackup = $oHostBackup->backup( $strType, 'create pg_stat link, pg_clog dir', {oExpectedManifest => \%oManifest, @@ -399,6 +405,9 @@ sub run ' --' . cfgOptionName(CFGOPT_PROCESS_MAX) . '=1', strRepoType => $bS3 ? undef : CFGOPTVAL_REPO_TYPE_CIFS, strTest => $strTestPoint, fTestDelay => 0}); + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = $bS3 ? 2 : 1; + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_BUFFER_SIZE} = 4194304; + # Error on backup option to check logging #--------------------------------------------------------------------------------------------------------------------------- if (!$bRemote) @@ -1000,11 +1009,15 @@ sub run delete($oManifest{&MANIFEST_SECTION_TARGET_FILE}{'pg_data/changecontent.txt'}{&MANIFEST_SUBKEY_REFERENCE}); $oManifest{&MANIFEST_SECTION_TARGET_FILE}{'pg_data/changetime.txt'}{&MANIFEST_SUBKEY_TIMESTAMP} = $lTime - 100; + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = 1; + $strBackup = $oHostBackup->backup( $strType, 'resume and add tablespace 2', {oExpectedManifest => \%oManifest, strTest => TEST_BACKUP_RESUME, strOptionalParam => '--' . cfgOptionName(CFGOPT_PROCESS_MAX) . '=1' . ($bDeltaBackup ? ' --delta' : '')}); + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = $bS3 ? 2 : 1; + if (!$bRemote) { # Remove the size-changed test file to avoid expect log churn @@ -1025,12 +1038,16 @@ sub run forceStorageRemove(storageRepo(), "${strResumePath}/" . FILE_MANIFEST); # The aborted backup is of a different type so is not resumable and is removed. A differential is created. + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = 1; + $strBackup = $oHostBackup->backup( $strType, 'cannot resume - new diff', {oExpectedManifest => \%oManifest, strTest => TEST_BACKUP_NORESUME, strOptionalParam => "$strLogReduced --" . cfgOptionName(CFGOPT_PROCESS_MAX) . '=1' . ($bDeltaBackup ? ' --delta' : '')}); + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = $bS3 ? 2 : 1; + # Resume Diff Backup #--------------------------------------------------------------------------------------------------------------------------- $strType = CFGOPTVAL_BACKUP_TYPE_DIFF; @@ -1043,12 +1060,16 @@ sub run # The aborted backup is of the same type so it is resumable but passing --no-resume. Pass --delta same as before to avoid # expect log churn and to test restore with a --delta manifest. + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = 1; + $strBackup = $oHostBackup->backup( $strType, 'cannot resume - disabled / no repo link', {oExpectedManifest => \%oManifest, strTest => TEST_BACKUP_NORESUME, strOptionalParam => "--no-resume ${strLogReduced} --" . cfgOptionName(CFGOPT_PROCESS_MAX) . '=1' . ($bDeltaBackup ? ' --delta' : '')}); + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = $bS3 ? 2 : 1; + # Restore #--------------------------------------------------------------------------------------------------------------------------- # Fail on used path @@ -1104,10 +1125,14 @@ sub run # Munge the version to make sure it gets corrected on the next run $oHostBackup->manifestMunge($strBackup, {&INI_SECTION_BACKREST => {&INI_KEY_VERSION => '0.00'}}, false); + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = 1; + $strBackup = $oHostBackup->backup( $strType, 'add files and remove tablespace 2', {oExpectedManifest => \%oManifest, strOptionalParam => "$strLogReduced --" . cfgOptionName(CFGOPT_PROCESS_MAX) . '=1'}); + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = $bS3 ? 2 : 1; + # Incr Backup #--------------------------------------------------------------------------------------------------------------------------- $strType = CFGOPTVAL_BACKUP_TYPE_INCR; @@ -1168,11 +1193,15 @@ sub run $strType = CFGOPTVAL_BACKUP_TYPE_DIFF; $oHostDbMaster->manifestReference(\%oManifest, $strFullBackup, true); + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = 1; + $strBackup = $oHostBackup->backup( $strType, 'updates since last full', {oExpectedManifest => \%oManifest, strOptionalParam => "$strLogReduced --" . cfgOptionName(CFGOPT_PROCESS_MAX) . '=1' . ($bDeltaBackup ? ' --delta' : '')}); + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = $bS3 ? 2 : 1; + # Incr Backup # # Remove a file from the db after the manifest has been built but before files are copied. The file will not be shown @@ -1216,6 +1245,8 @@ sub run $oHostBackup->configUpdate({&CFGDEF_SECTION_GLOBAL => {cfgOptionName(CFGOPT_REPO_HARDLINK) => 'y'}}); } + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = 1; + $oBackupExecute = $oHostBackup->backupBegin( $strType, 'remove files during backup', {oExpectedManifest => \%oManifest, strTest => TEST_MANIFEST_BUILD, fTestDelay => 1, @@ -1230,6 +1261,8 @@ sub run $strBackup = $oHostBackup->backupEnd($strType, $oBackupExecute, {oExpectedManifest => \%oManifest}); + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_PROCESS_MAX} = $bS3 ? 2 : 1; + # Full Backup #--------------------------------------------------------------------------------------------------------------------------- $strType = CFGOPTVAL_BACKUP_TYPE_FULL;