From d60b58427fe471b3aefb96b3593572cede72d80f Mon Sep 17 00:00:00 2001 From: Kaveh Vahedipour Date: Fri, 10 Jun 2016 18:38:23 +0200 Subject: [PATCH] we can shrink cluster --- arangod/Agency/MoveShard.cpp | 2 -- arangod/Agency/Supervision.cpp | 10 +++++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/arangod/Agency/MoveShard.cpp b/arangod/Agency/MoveShard.cpp index f2e12f1286..937da5a154 100644 --- a/arangod/Agency/MoveShard.cpp +++ b/arangod/Agency/MoveShard.cpp @@ -297,8 +297,6 @@ JOB_STATUS MoveShard::status () { if (foundFrom && foundTo) { - LOG(WARN) << _from << " " << current.toJson(); - if (current[0].copyString() == _from) { // Leader Builder underscore; // serverId -> _serverId diff --git a/arangod/Agency/Supervision.cpp b/arangod/Agency/Supervision.cpp index 8e44c20570..bec2b40761 100644 --- a/arangod/Agency/Supervision.cpp +++ b/arangod/Agency/Supervision.cpp @@ -362,10 +362,11 @@ void Supervision::shrinkCluster () { for (auto const& job : todos) { try { - if (job.second->slice().get("type").copyString() == "cleanOutServer") { + if ((*job.second)("type").getString() == "cleanOutServer") { return; } } catch (std::exception const& e) { + LOG(WARN) << job.second->slice().toJson(); LOG_TOPIC(WARN, Logger::AGENCY) << "Failed to get job type of job " << job.first << ": " << e.what(); return; @@ -374,7 +375,7 @@ void Supervision::shrinkCluster () { for (auto const& job : pends) { try { - if (job.second->slice().get("type").copyString() == "cleanOutServer") { + if ((*job.second)("type").getString() == "cleanOutServer") { return; } } catch (std::exception const& e) { @@ -429,13 +430,12 @@ void Supervision::shrinkCluster () { // Clean out as long as number of available servers is bigger // than maxReplFactor and bigger than targeted number of db servers - while (availServers.size() > maxReplFact && - availServers.size() > targetNumDBServers) { + if (availServers.size() > maxReplFact && + availServers.size() > targetNumDBServers) { // Schedule last server for cleanout CleanOutServer(_snapshot, _agent, std::to_string(_jobId++), "supervision", _agencyPrefix, availServers.back()); - availServers.pop_back(); } }