From 394c070a4ff17c2e18e63d504035c1629f4cba0e Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 17 May 2019 16:33:17 +0200 Subject: [PATCH] Do not check isEnabled (#8997) --- arangod/Agency/AgencyFeature.cpp | 20 +++++-------------- arangod/IResearch/IResearchFeature.cpp | 17 ++++------------ arangod/RocksDBEngine/RocksDBEngine.cpp | 19 +++++------------- .../RocksDBEngine/RocksDBRecoveryManager.cpp | 6 ++---- arangod/Statistics/StatisticsFeature.cpp | 4 +--- lib/ApplicationFeatures/ApplicationServer.cpp | 3 +++ 6 files changed, 20 insertions(+), 49 deletions(-) diff --git a/arangod/Agency/AgencyFeature.cpp b/arangod/Agency/AgencyFeature.cpp index b5d04fc49e..afb7129753 100644 --- a/arangod/Agency/AgencyFeature.cpp +++ b/arangod/Agency/AgencyFeature.cpp @@ -254,9 +254,7 @@ void AgencyFeature::validateOptions(std::shared_ptr options) { } void AgencyFeature::prepare() { - if (!isEnabled()) { - return; - } + TRI_ASSERT(isEnabled()); // Available after validateOptions of ClusterFeature // Find the agency prefix: @@ -306,9 +304,7 @@ void AgencyFeature::prepare() { } void AgencyFeature::start() { - if (!isEnabled()) { - return; - } + TRI_ASSERT(isEnabled()); LOG_TOPIC("a77c8", DEBUG, Logger::AGENCY) << "Starting agency personality"; _agent->start(); @@ -318,18 +314,14 @@ void AgencyFeature::start() { } void AgencyFeature::beginShutdown() { - if (!isEnabled()) { - return; - } + TRI_ASSERT(isEnabled()); // pass shutdown event to _agent so it can notify all its sub-threads _agent->beginShutdown(); } void AgencyFeature::stop() { - if (!isEnabled()) { - return; - } + TRI_ASSERT(isEnabled()); if (_agent->inception() != nullptr) { // can only exist in resilient agents int counter = 0; @@ -363,9 +355,7 @@ void AgencyFeature::stop() { } void AgencyFeature::unprepare() { - if (!isEnabled()) { - return; - } + TRI_ASSERT(isEnabled()); // delete the Agent object here ensures it shuts down all of its threads // this is a precondition that it must fulfill before we can go on with the // shutdown diff --git a/arangod/IResearch/IResearchFeature.cpp b/arangod/IResearch/IResearchFeature.cpp index 1aca0c63b4..2d17300eca 100644 --- a/arangod/IResearch/IResearchFeature.cpp +++ b/arangod/IResearch/IResearchFeature.cpp @@ -992,9 +992,7 @@ void IResearchFeature::collectOptions(std::shared_ptrisAgent() && !application_features::ApplicationServer::server->options()->processingResult().touched("rocksdb.wal-file-timeout-initial")) { @@ -752,9 +750,7 @@ void RocksDBEngine::start() { } void RocksDBEngine::beginShutdown() { - if (!isEnabled()) { - return; - } + TRI_ASSERT(isEnabled()); // block the creation of new replication contexts if (_replicationManager != nullptr) { @@ -763,10 +759,8 @@ void RocksDBEngine::beginShutdown() { } void RocksDBEngine::stop() { - if (!isEnabled()) { - return; - } - + TRI_ASSERT(isEnabled()); + // in case we missed the beginShutdown somehow, call it again replicationManager()->beginShutdown(); replicationManager()->dropAll(); @@ -799,10 +793,7 @@ void RocksDBEngine::stop() { } void RocksDBEngine::unprepare() { - if (!isEnabled()) { - return; - } - + TRI_ASSERT(isEnabled()); shutdownRocksDBInstance(); } diff --git a/arangod/RocksDBEngine/RocksDBRecoveryManager.cpp b/arangod/RocksDBEngine/RocksDBRecoveryManager.cpp index 5332c084d4..7856c8bd41 100644 --- a/arangod/RocksDBEngine/RocksDBRecoveryManager.cpp +++ b/arangod/RocksDBEngine/RocksDBRecoveryManager.cpp @@ -83,10 +83,8 @@ RocksDBRecoveryManager::RocksDBRecoveryManager(application_features::Application } void RocksDBRecoveryManager::start() { - if (!isEnabled()) { - return; - } - + TRI_ASSERT(isEnabled()); + _db = ApplicationServer::getFeature("RocksDBEngine")->db(); runRecovery(); // synchronizes with acquire inRecovery() diff --git a/arangod/Statistics/StatisticsFeature.cpp b/arangod/Statistics/StatisticsFeature.cpp index 3855c12ef3..ce4617ff94 100644 --- a/arangod/Statistics/StatisticsFeature.cpp +++ b/arangod/Statistics/StatisticsFeature.cpp @@ -160,9 +160,7 @@ void StatisticsFeature::prepare() { } void StatisticsFeature::start() { - if (!isEnabled()) { - return; - } + TRI_ASSERT(isEnabled()); auto* sysDbFeature = arangodb::application_features::ApplicationServer::lookupFeature(); diff --git a/lib/ApplicationFeatures/ApplicationServer.cpp b/lib/ApplicationFeatures/ApplicationServer.cpp index f3ec9ca28d..2c739b2777 100644 --- a/lib/ApplicationFeatures/ApplicationServer.cpp +++ b/lib/ApplicationFeatures/ApplicationServer.cpp @@ -717,6 +717,9 @@ void ApplicationServer::unprepare() { for (auto it = _orderedFeatures.rbegin(); it != _orderedFeatures.rend(); ++it) { auto feature = *it; + if (!feature->isEnabled()) { + continue; + } LOG_TOPIC("98be4", TRACE, Logger::STARTUP) << feature->name() << "::unprepare"; try {