diff options
author | Cheahuychou Mao <mao.cheahuychou@gmail.com> | 2023-04-07 17:29:15 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-04-07 18:11:39 +0000 |
commit | e171d63d52e92ec6930219b110e6e15a0a033b54 (patch) | |
tree | db7b0cfee5cf08b52fec196751a8573745b38963 | |
parent | ab890282dd8d7be38037615afb3dbe2c4acba9a0 (diff) | |
download | mongo-e171d63d52e92ec6930219b110e6e15a0a033b54.tar.gz |
SERVER-75844 Fix race in QueryAnalysisSampleTracker
-rw-r--r-- | src/mongo/s/query_analysis_sample_tracker.cpp | 2 | ||||
-rw-r--r-- | src/mongo/s/query_analysis_sampler.cpp | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/s/query_analysis_sample_tracker.cpp b/src/mongo/s/query_analysis_sample_tracker.cpp index 487f0b4cb13..2d598fb576c 100644 --- a/src/mongo/s/query_analysis_sample_tracker.cpp +++ b/src/mongo/s/query_analysis_sample_tracker.cpp @@ -149,6 +149,8 @@ BSONObj QueryAnalysisSampleTracker::CollectionSampleTracker::reportForCurrentOp( } BSONObj QueryAnalysisSampleTracker::reportForServerStatus() const { + stdx::lock_guard<Latch> lk(_mutex); + QueryAnalysisServerStatus res; res.setActiveCollections(static_cast<int64_t>(_trackers.size())); res.setTotalCollections(static_cast<int64_t>(_sampledNamespaces.size())); diff --git a/src/mongo/s/query_analysis_sampler.cpp b/src/mongo/s/query_analysis_sampler.cpp index 11ae0842645..742e3832ec5 100644 --- a/src/mongo/s/query_analysis_sampler.cpp +++ b/src/mongo/s/query_analysis_sampler.cpp @@ -116,6 +116,8 @@ void QueryAnalysisSampler::onStartup() { auto periodicRunner = serviceContext->getPeriodicRunner(); invariant(periodicRunner); + stdx::lock_guard<Latch> lk(_mutex); + PeriodicRunner::PeriodicJob queryStatsRefresherJob( "QueryAnalysisQueryStatsRefresher", [this](Client* client) { _refreshQueryStats(); }, |