summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Gottlieb <daniel.gottlieb@mongodb.com>2017-08-30 10:13:48 -0400
committerDaniel Gottlieb <daniel.gottlieb@mongodb.com>2017-08-30 10:16:08 -0400
commit1dc2afc8b5ce09d88535049df2ad72adc0434cc8 (patch)
treee1c14327c1b7a8d30aa3e0d57254dad29aa5152d /src
parentd810265d7b99e2137ab6c50c38a43d8dc3c6d0a4 (diff)
downloadmongo-1dc2afc8b5ce09d88535049df2ad72adc0434cc8.tar.gz
SERVER-30790: Have WiredTigerServerStatusSection take a Global IS lock.
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/storage/wiredtiger/SConscript24
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp3
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.