aboutsummaryrefslogtreecommitdiffstats
path: root/configd
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-06-11 07:24:24 +0000
committerArne Juul <arnej@verizonmedia.com>2021-06-11 07:24:24 +0000
commite607968dff6eee82f22f8aacc35e31d4afa2d807 (patch)
tree7a305879cd23d5d7c0117ff8b957de8edcf126db /configd
parent7b5b9060f45edafff45c0a465ad19963dff017a4 (diff)
handle failures fetching model config
Diffstat (limited to 'configd')
-rw-r--r--configd/src/apps/sentinel/report-connectivity.cpp18
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;