diff options
author | Daniel Gottlieb <daniel.gottlieb@mongodb.com> | 2017-08-30 10:13:48 -0400 |
---|---|---|
committer | Daniel Gottlieb <daniel.gottlieb@mongodb.com> | 2017-08-30 10:16:08 -0400 |
commit | 1dc2afc8b5ce09d88535049df2ad72adc0434cc8 (patch) | |
tree | e1c14327c1b7a8d30aa3e0d57254dad29aa5152d /src | |
parent | d810265d7b99e2137ab6c50c38a43d8dc3c6d0a4 (diff) | |
download | mongo-1dc2afc8b5ce09d88535049df2ad72adc0434cc8.tar.gz |
SERVER-30790: Have WiredTigerServerStatusSection take a Global IS lock.
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/db/storage/wiredtiger/SConscript | 24 | ||||
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp | 3 |
2 files changed, 17 insertions, 10 deletions
diff --git a/src/mongo/db/storage/wiredtiger/SConscript b/src/mongo/db/storage/wiredtiger/SConscript index 20ca6219747..f513427a0b8 100644 --- a/src/mongo/db/storage/wiredtiger/SConscript +++ b/src/mongo/db/storage/wiredtiger/SConscript @@ -82,16 +82,20 @@ if wiredtiger: 'wiredtiger_parameters.cpp', 'wiredtiger_record_store_mongod.cpp', 'wiredtiger_server_status.cpp', - ], - LIBDEPS=['storage_wiredtiger_core', - 'storage_wiredtiger_customization_hooks', - '$BUILD_DIR/mongo/db/db_raii', - '$BUILD_DIR/mongo/db/storage/kv/kv_engine', - '$BUILD_DIR/mongo/db/storage/storage_engine_lock_file', - '$BUILD_DIR/mongo/db/storage/storage_engine_metadata', - '$BUILD_DIR/mongo/db/commands/server_status', - ], - ) + ], + LIBDEPS=[ + 'storage_wiredtiger_core', + 'storage_wiredtiger_customization_hooks', + '$BUILD_DIR/mongo/db/db_raii', + '$BUILD_DIR/mongo/db/storage/kv/kv_engine', + '$BUILD_DIR/mongo/db/storage/storage_engine_lock_file', + '$BUILD_DIR/mongo/db/storage/storage_engine_metadata', + '$BUILD_DIR/mongo/db/commands/server_status', + ], + LIBDEPS_PRIVATE=[ + '$BUILD_DIR/mongo/db/concurrency/lock_manager', + ], + ) wtEnv.Library( target='storage_wiredtiger_mock', diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp index 0fc7cea7be7..fffe28dbd7c 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp @@ -35,6 +35,7 @@ #include "mongo/base/checked_cast.h" #include "mongo/bson/bsonobjbuilder.h" +#include "mongo/db/concurrency/d_concurrency.h" #include "mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h" #include "mongo/db/storage/wiredtiger/wiredtiger_record_store.h" #include "mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.h" @@ -56,6 +57,8 @@ bool WiredTigerServerStatusSection::includeByDefault() const { BSONObj WiredTigerServerStatusSection::generateSection(OperationContext* opCtx, const BSONElement& configElement) const { + Lock::GlobalLock lk(opCtx, LockMode::MODE_IS, UINT_MAX); + // The session does not open a transaction here as one is not needed and opening one would // mean that execution could become blocked when a new transaction cannot be allocated // immediately. |