diff options
author | Matthew Russotto <matthew.russotto@mongodb.com> | 2021-10-07 14:27:28 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-10-12 19:12:43 +0000 |
commit | e63075ae1fa670adf0f9180d90d5a73a931f99f2 (patch) | |
tree | 8c48f168bceb5b48ca687d610f1067c1ab363204 | |
parent | 52174ffab806e33d77ccb255ddc0d6c8023acc8d (diff) | |
download | mongo-e63075ae1fa670adf0f9180d90d5a73a931f99f2.tar.gz |
SERVER-60542 Make WiredTigerServerStatus use current engine instead of storing a stale one
3 files changed, 8 insertions, 9 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp index ba3b5894ae8..517728c4f04 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp @@ -121,7 +121,7 @@ public: ++setupCountForUnitTests; // Intentionally leaked. - [[maybe_unused]] auto leakedSection = new WiredTigerServerStatusSection(kv.get()); + [[maybe_unused]] auto leakedSection = new WiredTigerServerStatusSection(); // This allows unit tests to run this code without encountering memory leaks #if __has_feature(address_sanitizer) diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp index b05d7d0d552..d3e3838d789 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp @@ -48,8 +48,8 @@ namespace mongo { using std::string; -WiredTigerServerStatusSection::WiredTigerServerStatusSection(WiredTigerKVEngine* engine) - : ServerStatusSection(kWiredTigerEngineName), _engine(engine) {} +WiredTigerServerStatusSection::WiredTigerServerStatusSection() + : ServerStatusSection(kWiredTigerEngineName) {} bool WiredTigerServerStatusSection::includeByDefault() const { return true; @@ -88,12 +88,14 @@ BSONObj WiredTigerServerStatusSection::generateSection(OperationContext* opCtx, WiredTigerKVEngine::appendGlobalStats(bob); - WiredTigerUtil::appendSnapshotWindowSettings(_engine, session, &bob); + WiredTigerKVEngine* engine = checked_cast<WiredTigerKVEngine*>( + opCtx->getServiceContext()->getStorageEngine()->getEngine()); + WiredTigerUtil::appendSnapshotWindowSettings(engine, session, &bob); { BSONObjBuilder subsection(bob.subobjStart("oplog")); subsection.append("visibility timestamp", - Timestamp(_engine->getOplogManager()->getOplogReadTimestamp())); + Timestamp(engine->getOplogManager()->getOplogReadTimestamp())); } return bob.obj(); diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.h b/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.h index 9bea39b3398..1203a311fb0 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.h +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.h @@ -40,13 +40,10 @@ class WiredTigerKVEngine; */ class WiredTigerServerStatusSection : public ServerStatusSection { public: - WiredTigerServerStatusSection(WiredTigerKVEngine* engine); + WiredTigerServerStatusSection(); bool includeByDefault() const override; BSONObj generateSection(OperationContext* opCtx, const BSONElement& configElement) const override; - -private: - WiredTigerKVEngine* _engine; }; } // namespace mongo |