summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-02-07 08:53:51 +0100
committerHenning Baldersheim <balder@oath.com>2018-02-07 08:53:51 +0100
commit04c57a8b8944bad29ee8f82345b794f9130cf1f4 (patch)
tree4ec4d0826ba4ccce09b04ddec79fb0af7791b2f7 /searchcore
parentfb124132798c81a7ccc1aa432a5effae3c5869b3 (diff)
Guard against following the nullptr.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.cpp b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
index 49f8d50d9d4..533d0737ca2 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
@@ -235,9 +235,9 @@ Proton::init(const BootstrapConfig::SP & configSnapshot)
(protonConfig.basedir,
diskMemUsageSamplerConfig(protonConfig, hwInfo));
+ _tls = std::make_unique<TLS>(_configUri.createWithNewId(protonConfig.tlsconfigid), _fileHeaderContext);
_metricsEngine->addMetricsHook(_metricsHook);
_fileHeaderContext.setClusterName(protonConfig.clustername, protonConfig.basedir);
- _tls.reset(new TLS(_configUri.createWithNewId(protonConfig.tlsconfigid), _fileHeaderContext));
_matchEngine.reset(new MatchEngine(protonConfig.numsearcherthreads,
protonConfig.numthreadspersearch,
protonConfig.distributionkey));
@@ -686,7 +686,11 @@ Proton::updateMetrics(const vespalib::MonitorGuard &)
{
{
ContentProtonMetrics &metrics = _metricsEngine->root();
- metrics.transactionLog.update(_tls->getTransLogServer()->getDomainStats());
+ auto tls = _tls->getTransLogServer();
+ if (tls) {
+ metrics.transactionLog.update(tls->getDomainStats());
+ }
+
const DiskMemUsageFilter &usageFilter = _diskMemUsageSampler->writeFilter();
DiskMemUsageState usageState = usageFilter.usageState();
metrics.resourceUsage.disk.set(usageState.diskState().usage());
@@ -700,9 +704,15 @@ Proton::updateMetrics(const vespalib::MonitorGuard &)
{
LegacyProtonMetrics &metrics = _metricsEngine->legacyRoot();
metrics.executor.update(_executor.getStats());
- metrics.flushExecutor.update(_flushEngine->getExecutorStats());
- metrics.matchExecutor.update(_matchEngine->getExecutorStats());
- metrics.summaryExecutor.update(_summaryEngine->getExecutorStats());
+ if (_flushEngine) {
+ metrics.flushExecutor.update(_flushEngine->getExecutorStats());
+ }
+ if (_matchEngine) {
+ metrics.matchExecutor.update(_matchEngine->getExecutorStats());
+ }
+ if (_summaryEngine) {
+ metrics.summaryExecutor.update(_summaryEngine->getExecutorStats());
+ }
}
}