Skip to content

Commit 33cac2d

Browse files
erin2722MongoDB Bot
authored andcommitted
SERVER-106166 Don't append Inf to FTDC for totalAvailableTokens (#37181)
GitOrigin-RevId: f86ad3fa0cfca39ef06115133cb2121ff942b683
1 parent 8b9a7ac commit 33cac2d

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

jstests/noPassthrough/connection_establishment_server_params.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ function getIngressConnectionEstablishmentMaxQueueDepthDefault(mongo) {
1818
// Check the default values are used if not set explicitly
1919
let mongo = MongoRunner.runMongod();
2020
const maxInt32 = Math.pow(2, 31) - 1;
21+
const maxInt64 = Math.pow(2, 63) - 1;
2122

2223
let ingressConnectionEstablishmentRatePerSecDefault =
2324
getIngressConnectionEstablishmentRatePerSec(mongo);
@@ -27,10 +28,10 @@ let ingressConnectionEstablishmentBurstCapacitySecsDefault =
2728
getingressConnectionEstablishmentBurstCapacitySecs(mongo);
2829
assert.eq(ingressConnectionEstablishmentBurstCapacitySecsDefault, Number.MAX_VALUE);
2930

30-
// There are infinite tokens available by default.
31+
// There are infinite tokens available by default, and we append that as INT64_MAX.
3132
let availableTokens =
3233
mongo.adminCommand({serverStatus: 1}).queues.ingressSessionEstablishment.totalAvailableTokens;
33-
assert.eq(availableTokens, Infinity);
34+
assert.eq(availableTokens, maxInt64);
3435

3536
let ingressConnectionEstablishmentMaxQueueDepthDefault =
3637
getIngressConnectionEstablishmentMaxQueueDepthDefault(mongo);

src/mongo/db/admission/rate_limiter.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,11 @@ void RateLimiter::appendStats(BSONObjBuilder* bob) const {
194194
if (const auto avg = stats().averageTimeQueuedMicros.get()) {
195195
bob->append("averageTimeQueuedMicros", *avg);
196196
}
197-
bob->append("totalAvailableTokens", tokensAvailable());
197+
198+
// FTDC consumers may not handle infinity, and so we append INT64_MAX instead.
199+
bob->append("totalAvailableTokens",
200+
static_cast<double>(std::min(static_cast<long double>(INT64_MAX),
201+
static_cast<long double>(tokensAvailable()))));
198202
}
199203

200204
double RateLimiter::tokensAvailable() const {

0 commit comments

Comments
 (0)