diff options
author | Henning Baldersheim <balder@oath.com> | 2018-02-07 08:53:51 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@oath.com> | 2018-02-07 08:53:51 +0100 |
commit | 04c57a8b8944bad29ee8f82345b794f9130cf1f4 (patch) | |
tree | 4ec4d0826ba4ccce09b04ddec79fb0af7791b2f7 /searchcore | |
parent | fb124132798c81a7ccc1aa432a5effae3c5869b3 (diff) |
Guard against following the nullptr.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/proton.cpp | 20 |
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()); + } } } |