summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/shardsvr_get_stats_for_balancing_command.cpp
diff options
context:
space:
mode:
authorTommaso Tocci <tommaso.tocci@mongodb.com>2022-04-13 15:25:35 +0200
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-04-19 15:12:11 +0000
commit170f9451a7709410b6e2162c74bf60a56960f484 (patch)
tree923261fadaaede04c49333f4ded3c1184f102f79 /src/mongo/db/s/shardsvr_get_stats_for_balancing_command.cpp
parentae20cb9fb3c527d205592a28f95157457161e265 (diff)
downloadmongo-170f9451a7709410b6e2162c74bf60a56960f484.tar.gz
SERVER-65536 Relax constraints on numer of records in ShardsvrGetStatsForBalancingCmd
Diffstat (limited to 'src/mongo/db/s/shardsvr_get_stats_for_balancing_command.cpp')
-rw-r--r--src/mongo/db/s/shardsvr_get_stats_for_balancing_command.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/db/s/shardsvr_get_stats_for_balancing_command.cpp b/src/mongo/db/s/shardsvr_get_stats_for_balancing_command.cpp
index 12dee9c12da..95459b8a827 100644
--- a/src/mongo/db/s/shardsvr_get_stats_for_balancing_command.cpp
+++ b/src/mongo/db/s/shardsvr_get_stats_for_balancing_command.cpp
@@ -125,7 +125,12 @@ public:
return BalancerStatsRegistry::get(opCtx)->getCollNumOrphanDocs(*collUUID);
}();
- invariant(numRecords >= numOrphanDocs);
+ if (numRecords <= numOrphanDocs) {
+ // The number of records and the number of orphans documents are not updated
+ // atomically, therefore it could totally happen that the total number of records is
+ // less than the total number of orphans.
+ return 0LL;
+ }
const auto avgObjSizeBytes = static_cast<long long>(dataSizeBytes / numRecords);
return avgObjSizeBytes * (numRecords - numOrphanDocs);