diff options
author | Arne Juul <arnej@verizonmedia.com> | 2021-06-11 07:24:24 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2021-06-11 07:24:24 +0000 |
commit | e607968dff6eee82f22f8aacc35e31d4afa2d807 (patch) | |
tree | 7a305879cd23d5d7c0117ff8b957de8edcf126db /configd/src/apps/sentinel | |
parent | 7b5b9060f45edafff45c0a465ad19963dff017a4 (diff) |
handle failures fetching model config
Diffstat (limited to 'configd/src/apps/sentinel')
-rw-r--r-- | configd/src/apps/sentinel/report-connectivity.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/configd/src/apps/sentinel/report-connectivity.cpp b/configd/src/apps/sentinel/report-connectivity.cpp index a08ea7c45d1..3e5d462060f 100644 --- a/configd/src/apps/sentinel/report-connectivity.cpp +++ b/configd/src/apps/sentinel/report-connectivity.cpp @@ -2,11 +2,14 @@ #include "report-connectivity.h" #include "connectivity.h" +#include <vespa/config/common/exceptions.h> #include <vespa/log/log.h> +#include <chrono> LOG_SETUP(".report-connectivity"); using cloud::config::ModelConfig; +using namespace std::chrono_literals; namespace config::sentinel { @@ -28,8 +31,19 @@ ReportConnectivity::ReportConnectivity(FRT_RPCRequest *req, FRT_Supervisor &orb) _result(), _configFetcher() { - _configFetcher.subscribe<ModelConfig>("admin/model", this); - _configFetcher.start(); + try { + _configFetcher.subscribe<ModelConfig>("admin/model", this, 2000ms); + _configFetcher.start(); + return; + } catch (ConfigTimeoutException & ex) { + LOG(warning, "Timeout getting model config: %s [no connectivity report]", ex.getMessage().c_str()); + } catch (InvalidConfigException& ex) { + LOG(warning, "Invalid model config: %s [no connectivity report]", ex.getMessage().c_str()); + } catch (ConfigRuntimeException& ex) { + LOG(warning, "Runtime exception getting model config: %s [no connectivity report]", ex.getMessage().c_str()); + } + _parentRequest->SetError(FRTE_RPC_METHOD_FAILED, "failed getting model config"); + _parentRequest->Return(); } ReportConnectivity::~ReportConnectivity() = default; |