summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-02-10 19:09:47 +0100
committerGitHub <noreply@github.com>2020-02-10 19:09:47 +0100
commit97ace087461254d5cc5a710d6b891176297ecfca (patch)
treee3da24b05a8505b84f072bd8dd0e077c9131331a
parentcf43735b5f62594a9b09756679373c0ef1253881 (diff)
parent92de2153fd8a37b2a63ba14ab9b76a4b34ce1be3 (diff)
Merge pull request #12136 from vespa-engine/balder/catch-and-exit-nicely-on-config-error
Catch and exit nicely on config error.
-rw-r--r--config/src/vespa/config/configgen/value_converter.cpp5
-rw-r--r--config/src/vespa/config/configgen/value_converter.h9
-rw-r--r--searchcore/src/apps/proton/proton.cpp20
3 files changed, 17 insertions, 17 deletions
diff --git a/config/src/vespa/config/configgen/value_converter.cpp b/config/src/vespa/config/configgen/value_converter.cpp
index 1f78e78cc32..06086939d58 100644
--- a/config/src/vespa/config/configgen/value_converter.cpp
+++ b/config/src/vespa/config/configgen/value_converter.cpp
@@ -7,9 +7,7 @@
using namespace vespalib;
using namespace vespalib::slime;
-namespace config {
-
-namespace internal {
+namespace config::internal {
template<>
int32_t convertValue(const ::vespalib::slime::Inspector & __inspector) {
@@ -64,4 +62,3 @@ requireValid(const vespalib::string & __fieldName, const ::vespalib::slime::Insp
}
-}
diff --git a/config/src/vespa/config/configgen/value_converter.h b/config/src/vespa/config/configgen/value_converter.h
index d2d04169c1d..6ad67bf6f86 100644
--- a/config/src/vespa/config/configgen/value_converter.h
+++ b/config/src/vespa/config/configgen/value_converter.h
@@ -5,9 +5,7 @@
#include <vespa/vespalib/stllike/string.h>
#include <vespa/vespalib/data/slime/inspector.h>
-namespace config {
-
-namespace internal {
+namespace config::internal {
void requireValid(const vespalib::string & __fieldName, const ::vespalib::slime::Inspector & __inspector);
@@ -43,7 +41,4 @@ struct ValueConverter {
}
};
-} // namespace internal
-
-} // namespace config
-
+}
diff --git a/searchcore/src/apps/proton/proton.cpp b/searchcore/src/apps/proton/proton.cpp
index f80558a1bc6..8f2be3257fc 100644
--- a/searchcore/src/apps/proton/proton.cpp
+++ b/searchcore/src/apps/proton/proton.cpp
@@ -8,7 +8,6 @@
#include <vespa/metrics/metricmanager.h>
#include <vespa/vespalib/util/signalhandler.h>
#include <vespa/vespalib/util/programoptions.h>
-#include <vespa/vespalib/util/time.h>
#include <vespa/vespalib/io/fileutil.h>
#include <vespa/config/common/exceptions.h>
#include <vespa/fastos/app.h>
@@ -25,15 +24,21 @@ struct Params
std::string identity;
std::string serviceidentity;
uint64_t subscribeTimeout;
+ Params();
~Params();
};
+Params::Params()
+ : identity(),
+ serviceidentity(),
+ subscribeTimeout(60)
+{}
Params::~Params() = default;
class App : public FastOS_Application
{
private:
- void setupSignals();
+ static void setupSignals();
Params parseParams();
public:
int Main() override;
@@ -73,7 +78,7 @@ App::parseParams()
vespalib::ProgramOptions parser(_argc, _argv);
parser.setSyntaxMessage("proton -- the nextgen search core");
parser.addOption("identity", params.identity, "Node identity and config id");
- std::string empty("");
+ std::string empty;
parser.addOption("serviceidentity", params.serviceidentity, empty, "Service node identity and config id");
parser.addOption("subscribeTimeout", params.subscribeTimeout, UINT64_C(600000), "Initial config subscribe timeout");
try {
@@ -102,7 +107,7 @@ public:
ProtonServiceLayerProcess(const config::ConfigUri & configUri,
proton::Proton & proton,
PersistenceProvider *downPersistence);
- ~ProtonServiceLayerProcess() { shutdown(); }
+ ~ProtonServiceLayerProcess() override { shutdown(); }
void shutdown() override;
void setupProvider() override;
@@ -126,7 +131,7 @@ ProtonServiceLayerProcess::ProtonServiceLayerProcess(const config::ConfigUri &
downPersistence)
: ServiceLayerProcess(configUri),
_proton(proton),
- _metricManager(0),
+ _metricManager(nullptr),
_downPersistence(downPersistence)
{
if (!downPersistence) {
@@ -143,7 +148,7 @@ ProtonServiceLayerProcess::shutdown()
void
ProtonServiceLayerProcess::setupProvider()
{
- if (_metricManager != 0) {
+ if (_metricManager != nullptr) {
_context.getComponentRegister().setMetricManager(*_metricManager);
}
}
@@ -270,6 +275,9 @@ App::Main()
} catch (const vespalib::NetworkSetupFailureException & e) {
LOG(warning, "Network failure: '%s'", e.what());
return 1;
+ } catch (const config::InvalidConfigException & e) {
+ LOG(warning, "Invalid config failure: '%s'", e.what());
+ return 1;
} catch (const vespalib::IllegalStateException & e) {
LOG(error, "Unknown IllegalStateException: '%s'", e.what());
throw;