diff --git a/CHANGELOG b/CHANGELOG index 3ac4a1fced..f62dd1771c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,9 @@ v3.5.1 (XXXX-XX-XX) ------------------- +* Fixed a bug in the edge cache's internal memory accounting, which led + to the edge cache underreporting its current memory usage. + * Fixed "ArangoDB is not running in cluster mode" errors in active failover setups. This affected at least /_admin/cluster/health. diff --git a/arangod/Cache/Cache.cpp b/arangod/Cache/Cache.cpp index 0231a8a24b..6d65e6e1e8 100644 --- a/arangod/Cache/Cache.cpp +++ b/arangod/Cache/Cache.cpp @@ -361,12 +361,12 @@ void Cache::shutdown() { } _manager->reclaimTable(std::atomic_load(&_tableShrdPtr)); + _metadata.writeLock(); + _metadata.changeTable(0); + _metadata.writeUnlock(); _manager->unregisterCache(_id); _table.store(nullptr, std::memory_order_relaxed); } - _metadata.writeLock(); - _metadata.changeTable(0); - _metadata.writeUnlock(); _taskLock.writeUnlock(); }