From b3beff30531164e331eb0f04b167d785a5d95b3f Mon Sep 17 00:00:00 2001 From: Willi Goesgens Date: Mon, 20 Oct 2014 16:36:54 +0200 Subject: [PATCH 1/2] Call shutdown() on execution abortion, so we don't leave trash behind on the cluster nodes. --- arangod/Aql/ExecutionEngine.h | 5 ++++- arangod/Aql/Query.cpp | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/arangod/Aql/ExecutionEngine.h b/arangod/Aql/ExecutionEngine.h index 0ec66351d5..1d81793361 100644 --- a/arangod/Aql/ExecutionEngine.h +++ b/arangod/Aql/ExecutionEngine.h @@ -132,7 +132,10 @@ namespace triagens { //////////////////////////////////////////////////////////////////////////////// int shutdown () { - return _root->shutdown(); + if (_root != nullptr) { + return _root->shutdown(); + } + else return 0; } //////////////////////////////////////////////////////////////////////////////// diff --git a/arangod/Aql/Query.cpp b/arangod/Aql/Query.cpp index 5f4a8533d1..ccf9747397 100644 --- a/arangod/Aql/Query.cpp +++ b/arangod/Aql/Query.cpp @@ -976,6 +976,7 @@ std::string Query::getStateString () const { void Query::cleanupPlanAndEngine () { if (_engine != nullptr) { + _engine->shutdown(); delete _engine; _engine = nullptr; } From a54c4351bd910dc09a76b0fdba23e147d620cfed Mon Sep 17 00:00:00 2001 From: Max Neunhoeffer Date: Mon, 20 Oct 2014 17:32:56 +0200 Subject: [PATCH 2/2] Add a reminder for myself. --- arangod/Aql/ExecutionEngine.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/arangod/Aql/ExecutionEngine.cpp b/arangod/Aql/ExecutionEngine.cpp index 955c63ee29..91fe011d6d 100644 --- a/arangod/Aql/ExecutionEngine.cpp +++ b/arangod/Aql/ExecutionEngine.cpp @@ -344,6 +344,7 @@ struct CoordinatorInstanciator : public WalkerWorker { ExecutionNode const* current = (*it).nodes.front(); ExecutionNode* previous = nullptr; + // TODO: fix instanciation here as in DBserver case while (current != nullptr) { auto clone = current->clone(newPlan, false, true); newPlan->registerNode(clone);