diff --git a/arangod/Aql/ExecutionEngine.cpp b/arangod/Aql/ExecutionEngine.cpp index 2f5e05973f..60289ad86c 100644 --- a/arangod/Aql/ExecutionEngine.cpp +++ b/arangod/Aql/ExecutionEngine.cpp @@ -357,6 +357,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); 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; }