After SERVER-64163, under the debugger, on a non-shard server, I see that we run
`BalancerStatsRegistry::get(opCtx)->getCollNumOrphanDocsFromDiskIfNeeded()`
which throws an exception because this code (src/mongo/db/s/balancer_stats_registry.cpp)
```
long long BalancerStatsRegistry::getCollNumOrphanDocs(const UUID& collectionUUID) const {
if (!_isInitialized())
uasserted(ErrorCodes::NotYetInitialized, "BalancerStatsRegistry is not initialized");
```
always throws and then we run an aggregation.
Since this code runs in FTDC, I want to avoid expensive operations like aggregations in FTDC since they may stall (I realize this may not be that the aggregation may have been here for a long time). In this case, we should not gather balancer stats for oplog.rs since it is the local database and I believe local is not sharded database.
Discovered because I was debugging mongod and catching all C++ exceptions.
Stack
(lldb) bt * thread #20, name = 'ftdc', stop reason = breakpoint 4.1 * frame #0: 0x00007ffff717d6c0 libstdc++.so.6`__cxa_throw frame #1: 0x0000555565a6a254 mongod`mongo::error_details::throwExceptionForStatus(status=Status(NotYetInitialized, "BalancerStatsRegistry is not initialized")) at error_codes.cpp:2596:13 frame #2: 0x0000555565b898f5 mongod`mongo::uassertedWithLocation(status=Status(NotYetInitialized, "BalancerStatsRegistry is not initialized"), file="src/mongo/db/s/balancer_stats_registry.cpp", line=186) at assert_util.cpp:274:5 frame #3: 0x00005555626cb45a mongod`mongo::BalancerStatsRegistry::getCollNumOrphanDocs(this=0x00007fffe2c64120) const::$_9::operator()() const at balancer_stats_registry.cpp:186:9 frame #4: 0x00005555626cb2d3 mongod`mongo::BalancerStatsRegistry::getCollNumOrphanDocs(this=0x00007ffff52e6bb8, collectionUUID=705e0c35-12cc-4292-a52f-1093c3113662) const at balancer_stats_registry.cpp:186:9 frame #5: 0x00005555626cb4c0 mongod`mongo::BalancerStatsRegistry::getCollNumOrphanDocsFromDiskIfNeeded(this=0x00007ffff52e6bb8, opCtx=0x00007fffc76d9460, collectionUUID=705e0c35-12cc-4292-a52f-1093c3113662) const at balancer_stats_registry.cpp:199:16 frame #6: 0x000055556234972f mongod`mongo::appendCollectionStorageStats(opCtx=0x00007fffc76d9460, nss="local.oplog.rs", storageStatsSpec=0x00007fffe2c65e70, result=0x00007fffe2c66020) at storage_stats.cpp:121:48 frame #7: 0x00005555615a913d mongod`mongo::(anonymous namespace)::CollectionStats::errmsgRun(this=0x0000555566241670, opCtx=0x00007fffc76d9460, dbname="local", jsobj={ "collStats": "oplog.rs", "waitForLock": false, "numericOnly": true, "$db": "local" }, errmsg="", result=0x00007fffe2c66020) at dbcommands.cpp:503:25 frame #8: 0x00005555634f0c85 mongod`mongo::ErrmsgCommandDeprecated::run(this=0x0000555566241670, opCtx=0x00007fffc76d9460, db="local", cmdObj={ "collStats": "oplog.rs", "waitForLock": false, "numericOnly": true, "$db": "local" }, result=0x00007fffe2c66020) at commands.cpp:1056:15 frame #9: 0x000055555fa0ebfb mongod`mongo::BasicCommand::runWithReplyBuilder(this=0x0000555566241670, opCtx=0x00007fffc76d9460, db="local", cmdObj={ "collStats": "oplog.rs", "waitForLock": false, "numericOnly": true, "$db": "local" }, replyBuilder=0x00007fffe2c66318) at commands.h:968:16 frame #10: 0x00005555634fbd2a mongod`mongo::BasicCommandWithReplyBuilderInterface::Invocation::run(this=0x00007fffcb625880, opCtx=0x00007fffc76d9460, result=0x00007fffe2c66318) at commands.cpp:909:29 frame #11: 0x00005555634e8df3 mongod`mongo::CommandHelpers::runCommandDirectly(opCtx=0x00007fffc76d9460, request=0x00007ffff5128368) at commands.cpp:170:21 frame #12: 0x00005555601140ba mongod`mongo::FTDCSimpleInternalCommandCollector::collect(this=0x00007ffff5128340, opCtx=0x00007fffc76d9460, builder=0x00007fffe2c665b8) at ftdc_server.cpp:184:19 frame #13: 0x000055556016bb56 mongod`mongo::FTDCCollectorCollection::collect(this=0x00007fffe5208768, client=0x00007fffe4664020) at collector.cpp:93:20 frame #14: 0x0000555560171c8c mongod`mongo::FTDCController::doLoop(this=0x00007fffe5208620) at controller.cpp:251:54 frame #15: 0x0000555560172898 mongod`mongo::FTDCController::start(this=0x00007ffff506f390)::$_0::operator()() const at controller.cpp:147:37 frame #16: 0x000055556017286d mongod`void std::__invoke_impl<void, mongo::FTDCController::start()::$_0>((null)=__invoke_other @ 0x00007fffe2c66878, __f=0x00007ffff506f390)::$_0&&) at invoke.h:61:14 frame #17: 0x000055556017283d mongod`std::__invoke_result<mongo::FTDCController::start()::$_0>::type std::__invoke<mongo::FTDCController::start(__fn=0x00007ffff506f390)::$_0>(mongo::FTDCController::start()::$_0&&) at invoke.h:96:14 frame #18: 0x0000555560172801 mongod`decltype(__f=0x00007ffff506f390, __t=0x00007ffff506f398, (null)=std::index_sequence<> @ 0x00007fffe2c668c8) std::__apply_impl<mongo::FTDCController::start()::$_0, std::tuple<> >(mongo::FTDCController::start()::$_0&&, std::tuple<>&&, std::integer_sequence<unsigned long>) at tuple:1852:14
- is related to
-
SERVER-67518 Aggregate metric value continually increments when no aggregates are run
- Closed