diff options
author | Dianna <dianna.hohensee@10gen.com> | 2019-05-09 08:13:31 -0400 |
---|---|---|
committer | Dianna <dianna.hohensee@10gen.com> | 2019-05-14 18:10:38 -0400 |
commit | 09db7023065f42ccc39dd3309536726814379c86 (patch) | |
tree | 7d7f153b943b1afc0546433b3efae61bd1812cd9 /src/mongo/db/concurrency/d_concurrency_test.cpp | |
parent | afa6c9136387f07c0bba8dfc33178acfb826fe43 (diff) | |
download | mongo-09db7023065f42ccc39dd3309536726814379c86.tar.gz |
SERVER-39860 Separate reporting of RSTL and PBWM locks metrics in serverStatus and currentOp
Diffstat (limited to 'src/mongo/db/concurrency/d_concurrency_test.cpp')
-rw-r--r-- | src/mongo/db/concurrency/d_concurrency_test.cpp | 60 |
1 files changed, 27 insertions, 33 deletions
diff --git a/src/mongo/db/concurrency/d_concurrency_test.cpp b/src/mongo/db/concurrency/d_concurrency_test.cpp index 3d400a9bceb..ddf60cc23a1 100644 --- a/src/mongo/db/concurrency/d_concurrency_test.cpp +++ b/src/mongo/db/concurrency/d_concurrency_test.cpp @@ -288,19 +288,17 @@ TEST_F(DConcurrencyTestFixture, opCtx->swapLockState(stdx::make_unique<LockerImpl>()); auto lockState = opCtx->lockState(); - const ResourceId globalId(RESOURCE_GLOBAL, ResourceId::SINGLETON_GLOBAL); - auto globalWrite = stdx::make_unique<Lock::GlobalWrite>(opCtx.get()); ASSERT(lockState->isW()); - ASSERT(MODE_X == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_X == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_IX); { Lock::DBLock dbWrite(opCtx.get(), "db", MODE_IX); ASSERT(lockState->isW()); - ASSERT(MODE_X == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_X == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); // If we destroy the GlobalWrite out of order relative to the DBLock, we will leave the // global lock resource locked in MODE_X. We have to explicitly downgrade this resource to @@ -310,19 +308,19 @@ TEST_F(DConcurrencyTestFixture, ASSERT(lockState->isW()); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_IX); - lockState->downgrade(globalId, MODE_IX); + lockState->downgrade(resourceIdGlobal, MODE_IX); ASSERT_FALSE(lockState->isW()); ASSERT(lockState->isWriteLocked()); - ASSERT(MODE_IX == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_IX == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_IX); } ASSERT_FALSE(lockState->isW()); ASSERT_FALSE(lockState->isWriteLocked()); - ASSERT(MODE_NONE == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_NONE == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_NONE); } @@ -332,28 +330,26 @@ TEST_F(DConcurrencyTestFixture, opCtx->swapLockState(stdx::make_unique<LockerImpl>()); auto lockState = opCtx->lockState(); - const ResourceId globalId(RESOURCE_GLOBAL, ResourceId::SINGLETON_GLOBAL); - auto globalWrite = stdx::make_unique<Lock::GlobalWrite>(opCtx.get()); ASSERT(lockState->isW()); - ASSERT(MODE_X == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_X == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_IX); { Lock::DBLock dbWrite(opCtx.get(), "db", MODE_IX); ASSERT(lockState->isW()); - ASSERT(MODE_X == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_X == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_IX); // Downgrade global lock resource to MODE_IX to allow other write operations to make // progress. - lockState->downgrade(globalId, MODE_IX); + lockState->downgrade(resourceIdGlobal, MODE_IX); ASSERT_FALSE(lockState->isW()); ASSERT(lockState->isWriteLocked()); - ASSERT(MODE_IX == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_IX == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_IX); } @@ -364,8 +360,8 @@ TEST_F(DConcurrencyTestFixture, globalWrite = {}; ASSERT_FALSE(lockState->isW()); ASSERT_FALSE(lockState->isWriteLocked()); - ASSERT(MODE_NONE == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_NONE == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_NONE); } @@ -375,8 +371,6 @@ TEST_F(DConcurrencyTestFixture, opCtx->swapLockState(stdx::make_unique<LockerImpl>()); auto lockState = opCtx->lockState(); - const ResourceId globalId(RESOURCE_GLOBAL, ResourceId::SINGLETON_GLOBAL); - auto outerGlobalWrite = stdx::make_unique<Lock::GlobalWrite>(opCtx.get()); auto innerGlobalWrite = stdx::make_unique<Lock::GlobalWrite>(opCtx.get()); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_IX); @@ -384,17 +378,17 @@ TEST_F(DConcurrencyTestFixture, { Lock::DBLock dbWrite(opCtx.get(), "db", MODE_IX); ASSERT(lockState->isW()); - ASSERT(MODE_X == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_X == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_IX); // Downgrade global lock resource to MODE_IX to allow other write operations to make // progress. - lockState->downgrade(globalId, MODE_IX); + lockState->downgrade(resourceIdGlobal, MODE_IX); ASSERT_FALSE(lockState->isW()); ASSERT(lockState->isWriteLocked()); - ASSERT(MODE_IX == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_IX == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_IX); } @@ -405,15 +399,15 @@ TEST_F(DConcurrencyTestFixture, innerGlobalWrite = {}; ASSERT_FALSE(lockState->isW()); ASSERT(lockState->isWriteLocked()); - ASSERT(MODE_IX == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_IX == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_IX); outerGlobalWrite = {}; ASSERT_FALSE(lockState->isW()); ASSERT_FALSE(lockState->isWriteLocked()); - ASSERT(MODE_NONE == lockState->getLockMode(globalId)) - << "unexpected global lock mode " << modeName(lockState->getLockMode(globalId)); + ASSERT(MODE_NONE == lockState->getLockMode(resourceIdGlobal)) + << "unexpected global lock mode " << modeName(lockState->getLockMode(resourceIdGlobal)); ASSERT_EQ(lockState->getLockMode(resourceIdReplicationStateTransitionLock), MODE_NONE); } |