diff --git a/build/lib/pgBackRestBuild/Config/Data.pm b/build/lib/pgBackRestBuild/Config/Data.pm index 6e661f51a..b86ef3863 100644 --- a/build/lib/pgBackRestBuild/Config/Data.pm +++ b/build/lib/pgBackRestBuild/Config/Data.pm @@ -751,7 +751,6 @@ my %hConfigDefine = &CFGDEF_COMMAND => { &CFGCMD_BACKUP => {}, - &CFGCMD_CHECK => {}, &CFGCMD_STANZA_CREATE => {}, &CFGCMD_STANZA_UPGRADE => {}, } @@ -1917,14 +1916,16 @@ my %hConfigDefine = &CFGDEF_SECTION => CFGDEF_SECTION_GLOBAL, &CFGDEF_TYPE => CFGDEF_TYPE_BOOLEAN, &CFGDEF_DEFAULT => true, - &CFGDEF_DEPEND => - { - &CFGDEF_DEPEND_OPTION => CFGOPT_ONLINE, - &CFGDEF_DEPEND_LIST => [true], - }, &CFGDEF_COMMAND => { - &CFGCMD_BACKUP => {}, + &CFGCMD_BACKUP => + { + &CFGDEF_DEPEND => + { + &CFGDEF_DEPEND_OPTION => CFGOPT_ONLINE, + &CFGDEF_DEPEND_LIST => [true], + }, + }, &CFGCMD_CHECK => {}, }, }, diff --git a/doc/xml/reference.xml b/doc/xml/reference.xml index a3e5860af..4e1369210 100644 --- a/doc/xml/reference.xml +++ b/doc/xml/reference.xml @@ -955,17 +955,6 @@ Note that pg_create_restore_point('pgBackRest Archive Check') and pg_switch_xlog()/pg_switch_wal() are called to force to archive a WAL segment. Restore points are only supported in >= 9.1 so for older versions the check command may fail if there has been no write activity since the last log rotation, therefore it is recommended that activity be generated by the user if there have been no writes since the last WAL switch before running the check command. - - - - - diff --git a/doc/xml/release.xml b/doc/xml/release.xml index 86c420b4e..2e23b2e3b 100644 --- a/doc/xml/release.xml +++ b/doc/xml/release.xml @@ -22,6 +22,14 @@

Fix issue where errors raised in C were not logged when called from Perl. properly terminated with the correct error code but lacked an error message to aid in debugging.

+ + + + + + +

Remove incompletely implemented online option from the check command. Offline operation runs counter to the purpose of this command, which is to check if archiving and backups are working correctly.

+
diff --git a/lib/pgBackRest/Check/Check.pm b/lib/pgBackRest/Check/Check.pm index 44d4dae96..5f72836c1 100644 --- a/lib/pgBackRest/Check/Check.pm +++ b/lib/pgBackRest/Check/Check.pm @@ -95,9 +95,9 @@ sub process $oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_CONTROL, undef, $iControlVersion); $oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_SYSTEM_ID, undef, $ullDbSysId); - $oBackupManifest->build(storageDb({iRemoteIdx => $iRemoteIdx}), - cfgOption(cfgOptionIdFromIndex(CFGOPT_PG_PATH, $iRemoteIdx)), undef, cfgOption(CFGOPT_ONLINE), - $oDb->tablespaceMapGet()); + $oBackupManifest->build( + storageDb({iRemoteIdx => $iRemoteIdx}), cfgOption(cfgOptionIdFromIndex(CFGOPT_PG_PATH, $iRemoteIdx)), undef, + cfgOptionValid(CFGOPT_ONLINE) && cfgOption(CFGOPT_ONLINE), $oDb->tablespaceMapGet()); return true; } diff --git a/lib/pgBackRest/Stanza.pm b/lib/pgBackRest/Stanza.pm index 76a25c5d8..3b5964489 100644 --- a/lib/pgBackRest/Stanza.pm +++ b/lib/pgBackRest/Stanza.pm @@ -90,14 +90,9 @@ sub process $self->stanzaUpgrade(); } # Process stanza delete - elsif (cfgCommandTest(CFGCMD_STANZA_DELETE)) - { - $self->stanzaDelete(); - } - # Else error if any other command is found else { - confess &log(ASSERT, "stanza->process() called with invalid command: " . cfgCommandName(cfgCommandGet())); + $self->stanzaDelete(); } # Return from function and log return values if any diff --git a/src/config/define.auto.c b/src/config/define.auto.c index 7496751a0..bcdc8ebdb 100644 --- a/src/config/define.auto.c +++ b/src/config/define.auto.c @@ -279,13 +279,18 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST CFGDEFDATA_OPTION_OPTIONAL_LIST ( - CFGDEFDATA_OPTION_OPTIONAL_DEPEND_LIST - ( - cfgDefOptOnline, - "1" - ) - CFGDEFDATA_OPTION_OPTIONAL_DEFAULT("1") + + CFGDEFDATA_OPTION_OPTIONAL_COMMAND_OVERRRIDE + ( + CFGDEFDATA_OPTION_OPTIONAL_COMMAND(cfgDefCmdBackup) + + CFGDEFDATA_OPTION_OPTIONAL_DEPEND_LIST + ( + cfgDefOptOnline, + "1" + ) + ) ) ) @@ -1601,7 +1606,6 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST CFGDEFDATA_OPTION_COMMAND_LIST ( CFGDEFDATA_OPTION_COMMAND(cfgDefCmdBackup) - CFGDEFDATA_OPTION_COMMAND(cfgDefCmdCheck) CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaCreate) CFGDEFDATA_OPTION_COMMAND(cfgDefCmdStanzaUpgrade) ) @@ -1626,17 +1630,6 @@ static ConfigDefineOptionData configDefineOptionData[] = CFGDEFDATA_OPTION_LIST ) ) - CFGDEFDATA_OPTION_OPTIONAL_COMMAND_OVERRRIDE - ( - CFGDEFDATA_OPTION_OPTIONAL_COMMAND(cfgDefCmdCheck) - - CFGDEFDATA_OPTION_OPTIONAL_HELP_SUMMARY("Check an online cluster.") - CFGDEFDATA_OPTION_OPTIONAL_HELP_DESCRIPTION - ( - "Specifying --no-online prevents pgBackRest from connecting to PostgreSQL and will disable some checks." - ) - ) - CFGDEFDATA_OPTION_OPTIONAL_COMMAND_OVERRRIDE ( CFGDEFDATA_OPTION_OPTIONAL_COMMAND(cfgDefCmdStanzaCreate) diff --git a/src/perl/embed.auto.c b/src/perl/embed.auto.c index 0eac3b5f0..9822fd41e 100644 --- a/src/perl/embed.auto.c +++ b/src/perl/embed.auto.c @@ -4535,9 +4535,9 @@ static const EmbeddedModule embeddedModule[] = "$oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_CONTROL, undef, $iControlVersion);\n" "$oBackupManifest->numericSet(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_SYSTEM_ID, undef, $ullDbSysId);\n" "\n" - "$oBackupManifest->build(storageDb({iRemoteIdx => $iRemoteIdx}),\n" - "cfgOption(cfgOptionIdFromIndex(CFGOPT_PG_PATH, $iRemoteIdx)), undef, cfgOption(CFGOPT_ONLINE),\n" - "$oDb->tablespaceMapGet());\n" + "$oBackupManifest->build(\n" + "storageDb({iRemoteIdx => $iRemoteIdx}), cfgOption(cfgOptionIdFromIndex(CFGOPT_PG_PATH, $iRemoteIdx)), undef,\n" + "cfgOptionValid(CFGOPT_ONLINE) && cfgOption(CFGOPT_ONLINE), $oDb->tablespaceMapGet());\n" "\n" "return true;\n" "}\n" @@ -16713,14 +16713,9 @@ static const EmbeddedModule embeddedModule[] = "$self->stanzaUpgrade();\n" "}\n" "\n" - "elsif (cfgCommandTest(CFGCMD_STANZA_DELETE))\n" - "{\n" - "$self->stanzaDelete();\n" - "}\n" - "\n" "else\n" "{\n" - "confess &log(ASSERT, \"stanza->process() called with invalid command: \" . cfgCommandName(cfgCommandGet()));\n" + "$self->stanzaDelete();\n" "}\n" "\n\n" "return logDebugReturn\n" diff --git a/test/lib/pgBackRestTest/Module/Stanza/StanzaAllPerlTest.pm b/test/lib/pgBackRestTest/Module/Stanza/StanzaAllPerlTest.pm index 78dfc5b05..5eecb7255 100644 --- a/test/lib/pgBackRestTest/Module/Stanza/StanzaAllPerlTest.pm +++ b/test/lib/pgBackRestTest/Module/Stanza/StanzaAllPerlTest.pm @@ -107,15 +107,11 @@ sub run ################################################################################################################################ if ($self->begin("Stanza::process()")) { - #--------------------------------------------------------------------------------------------------------------------------- - $self->configTestLoad(CFGCMD_CHECK); + $self->optionTestSetBool(CFGOPT_ONLINE, false); + $self->configTestLoad(CFGCMD_STANZA_CREATE); + my $oStanza = new pgBackRest::Stanza(); - $self->testException(sub {$oStanza->process()}, ERROR_ASSERT, - "stanza->process() called with invalid command: " . cfgCommandName(CFGCMD_CHECK)); - - #--------------------------------------------------------------------------------------------------------------------------- - $self->configTestLoad(CFGCMD_STANZA_CREATE); rmdir($self->{strArchivePath}); rmdir($self->{strBackupPath}); $self->testResult(sub {$oStanza->process()}, 0, 'parent paths recreated successfully');