diff --git a/arangod/VocBase/cleanup.cpp b/arangod/VocBase/cleanup.cpp index 8079b16e65..a3bc4ebe76 100644 --- a/arangod/VocBase/cleanup.cpp +++ b/arangod/VocBase/cleanup.cpp @@ -122,11 +122,13 @@ static void CleanupDocumentCollection (TRI_vocbase_col_t* collection, if (! isUnloading) { popped = false; - ditches->process(popped, [] (triagens::arango::Ditch const* ditch) -> bool { + auto unloader = ditches->process(popped, [] (triagens::arango::Ditch const* ditch) -> bool { return (ditch->type() == triagens::arango::Ditch::TRI_DITCH_COLLECTION_UNLOAD); }); if (popped) { // we've changed the list. try with current state in next turn + TRI_ASSERT(unloader != nullptr); + delete unloader; return; } }