summaryrefslogtreecommitdiff
path: root/src/mongo/db/stats
diff options
context:
space:
mode:
authorBilly Donahue <billy.donahue@mongodb.com>2021-06-05 21:36:12 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-06-07 19:14:09 +0000
commit0fec5e0d4364d00d30ecb3493c611e9f325bbf9a (patch)
tree0ddba07385b209d057fea23c5e26d4f709c78ca6 /src/mongo/db/stats
parent116fc60f5ac5bb5d2faf80624399efcdea79e408 (diff)
downloadmongo-0fec5e0d4364d00d30ecb3493c611e9f325bbf9a.tar.gz
SERVER-57480 invalid iterators in APIVersionMetrics
Diffstat (limited to 'src/mongo/db/stats')
-rw-r--r--src/mongo/db/stats/api_version_metrics.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/mongo/db/stats/api_version_metrics.cpp b/src/mongo/db/stats/api_version_metrics.cpp
index 38c38bfe66b..959e5b9e3f6 100644
--- a/src/mongo/db/stats/api_version_metrics.cpp
+++ b/src/mongo/db/stats/api_version_metrics.cpp
@@ -53,24 +53,27 @@ void APIVersionMetrics::update(std::string appName, const APIParameters& apiPara
}
void APIVersionMetrics::_removeStaleTimestamps(WithLock lk, Date_t now) {
- for (auto appNameIter = _apiVersionMetrics.begin(); appNameIter != _apiVersionMetrics.end();
- appNameIter++) {
+ for (auto appNameIter = _apiVersionMetrics.begin(); appNameIter != _apiVersionMetrics.end();) {
auto& versionTimestamps = appNameIter->second;
- for (auto versionIter = versionTimestamps.begin(); versionIter != versionTimestamps.end();
- versionIter++) {
+ for (auto versionIter = versionTimestamps.begin();
+ versionIter != versionTimestamps.end();) {
auto timestamp = versionIter->second;
// Remove any timestamps that are more than one day old.
if (now - Days(1) > timestamp) {
- versionTimestamps.erase(versionIter);
+ versionTimestamps.erase(versionIter++);
+ } else {
+ ++versionIter;
}
}
// If there are no more timestamps for an application, remove the map associated with
// application name.
if (appNameIter->second.empty()) {
- _apiVersionMetrics.erase(appNameIter);
+ _apiVersionMetrics.erase(appNameIter++);
+ } else {
+ ++appNameIter;
}
}
}