summaryrefslogtreecommitdiff
path: root/src/mongo/db/concurrency/lock_state_test.cpp
diff options
context:
space:
mode:
authorGeert Bosch <bosch@gnat.com>2018-07-08 11:26:02 -0400
committerGeert Bosch <geert@mongodb.com>2018-07-11 10:11:00 -0400
commitc7bd92f7ded5501654989eb9b9a80bbf50d3ec3b (patch)
tree60724a273bc50960b0ed9afee6e24ad8b92e8e1b /src/mongo/db/concurrency/lock_state_test.cpp
parent80c7c825a44cf99b17e81f4233445c7ab1927706 (diff)
downloadmongo-c7bd92f7ded5501654989eb9b9a80bbf50d3ec3b.tar.gz
SERVER-36011 Remove MMAPv1 lockmanager support
Diffstat (limited to 'src/mongo/db/concurrency/lock_state_test.cpp')
-rw-r--r--src/mongo/db/concurrency/lock_state_test.cpp77
1 files changed, 29 insertions, 48 deletions
diff --git a/src/mongo/db/concurrency/lock_state_test.cpp b/src/mongo/db/concurrency/lock_state_test.cpp
index 4aa0888f51e..0bd74aeb209 100644
--- a/src/mongo/db/concurrency/lock_state_test.cpp
+++ b/src/mongo/db/concurrency/lock_state_test.cpp
@@ -46,7 +46,7 @@ namespace mongo {
TEST(LockerImpl, LockNoConflict) {
const ResourceId resId(RESOURCE_COLLECTION, "TestDB.collection"_sd);
- MMAPV1LockerImpl locker;
+ LockerImpl locker;
locker.lockGlobal(MODE_IX);
ASSERT(LOCK_OK == locker.lock(resId, MODE_X));
@@ -64,7 +64,7 @@ TEST(LockerImpl, LockNoConflict) {
TEST(LockerImpl, ReLockNoConflict) {
const ResourceId resId(RESOURCE_COLLECTION, "TestDB.collection"_sd);
- MMAPV1LockerImpl locker;
+ LockerImpl locker;
locker.lockGlobal(MODE_IX);
ASSERT(LOCK_OK == locker.lock(resId, MODE_S));
@@ -82,11 +82,11 @@ TEST(LockerImpl, ReLockNoConflict) {
TEST(LockerImpl, ConflictWithTimeout) {
const ResourceId resId(RESOURCE_COLLECTION, "TestDB.collection"_sd);
- DefaultLockerImpl locker1;
+ LockerImpl locker1;
ASSERT(LOCK_OK == locker1.lockGlobal(MODE_IX));
ASSERT(LOCK_OK == locker1.lock(resId, MODE_X));
- DefaultLockerImpl locker2;
+ LockerImpl locker2;
ASSERT(LOCK_OK == locker2.lockGlobal(MODE_IX));
ASSERT(LOCK_TIMEOUT == locker2.lock(resId, MODE_S, Date_t::now()));
@@ -101,11 +101,11 @@ TEST(LockerImpl, ConflictWithTimeout) {
TEST(LockerImpl, ConflictUpgradeWithTimeout) {
const ResourceId resId(RESOURCE_COLLECTION, "TestDB.collection"_sd);
- DefaultLockerImpl locker1;
+ LockerImpl locker1;
ASSERT(LOCK_OK == locker1.lockGlobal(MODE_IS));
ASSERT(LOCK_OK == locker1.lock(resId, MODE_S));
- DefaultLockerImpl locker2;
+ LockerImpl locker2;
ASSERT(LOCK_OK == locker2.lockGlobal(MODE_IS));
ASSERT(LOCK_OK == locker2.lock(resId, MODE_S));
@@ -118,7 +118,7 @@ TEST(LockerImpl, ConflictUpgradeWithTimeout) {
TEST(LockerImpl, ReadTransaction) {
- DefaultLockerImpl locker;
+ LockerImpl locker;
locker.lockGlobal(MODE_IS);
locker.unlockGlobal();
@@ -133,12 +133,12 @@ TEST(LockerImpl, ReadTransaction) {
}
/**
- * Test that saveMMAPV1LockerImpl works by examining the output.
+ * Test that saveLockerImpl works by examining the output.
*/
TEST(LockerImpl, saveAndRestoreGlobal) {
Locker::LockSnapshot lockInfo;
- DefaultLockerImpl locker;
+ LockerImpl locker;
// No lock requests made, no locks held.
locker.saveLockStateAndUnlock(&lockInfo);
@@ -165,7 +165,7 @@ TEST(LockerImpl, saveAndRestoreGlobal) {
TEST(LockerImpl, saveAndRestoreGlobalAcquiredTwice) {
Locker::LockSnapshot lockInfo;
- DefaultLockerImpl locker;
+ LockerImpl locker;
// No lock requests made, no locks held.
locker.saveLockStateAndUnlock(&lockInfo);
@@ -186,12 +186,12 @@ TEST(LockerImpl, saveAndRestoreGlobalAcquiredTwice) {
}
/**
- * Tests that restoreMMAPV1LockerImpl works by locking a db and collection and saving + restoring.
+ * Tests that restoreLockerImpl works by locking a db and collection and saving + restoring.
*/
TEST(LockerImpl, saveAndRestoreDBAndCollection) {
Locker::LockSnapshot lockInfo;
- DefaultLockerImpl locker;
+ LockerImpl locker;
const ResourceId resIdDatabase(RESOURCE_DATABASE, "TestDB"_sd);
const ResourceId resIdCollection(RESOURCE_COLLECTION, "TestDB.collection"_sd);
@@ -219,7 +219,7 @@ TEST(LockerImpl, saveAndRestoreDBAndCollection) {
TEST(LockerImpl, DefaultLocker) {
const ResourceId resId(RESOURCE_DATABASE, "TestDB"_sd);
- DefaultLockerImpl locker;
+ LockerImpl locker;
ASSERT_EQUALS(LOCK_OK, locker.lockGlobal(MODE_IX));
ASSERT_EQUALS(LOCK_OK, locker.lock(resId, MODE_X));
@@ -234,32 +234,13 @@ TEST(LockerImpl, DefaultLocker) {
ASSERT(locker.unlockGlobal());
}
-TEST(LockerImpl, MMAPV1Locker) {
- const ResourceId resId(RESOURCE_DATABASE, "TestDB"_sd);
-
- MMAPV1LockerImpl locker;
- ASSERT_EQUALS(LOCK_OK, locker.lockGlobal(MODE_IX));
- ASSERT_EQUALS(LOCK_OK, locker.lock(resId, MODE_X));
-
- // Make sure the flush lock IS held
- Locker::LockerInfo info;
- locker.getLockerInfo(&info);
- ASSERT(!info.waitingResource.isValid());
- ASSERT_EQUALS(3U, info.locks.size());
- ASSERT_EQUALS(RESOURCE_GLOBAL, info.locks[0].resourceId.getType());
- ASSERT_EQUALS(RESOURCE_MMAPV1_FLUSH, info.locks[1].resourceId.getType());
- ASSERT_EQUALS(resId, info.locks[2].resourceId);
-
- ASSERT(locker.unlockGlobal());
-}
-
TEST(LockerImpl, CanceledDeadlockUnblocks) {
const ResourceId db1(RESOURCE_DATABASE, "db1"_sd);
const ResourceId db2(RESOURCE_DATABASE, "db2"_sd);
- DefaultLockerImpl locker1;
- DefaultLockerImpl locker2;
- DefaultLockerImpl locker3;
+ LockerImpl locker1;
+ LockerImpl locker2;
+ LockerImpl locker3;
ASSERT(LOCK_OK == locker1.lockGlobal(MODE_IX));
ASSERT(LOCK_OK == locker1.lock(db1, MODE_S));
@@ -315,7 +296,7 @@ TEST(LockerImpl, SharedLocksShouldTwoPhaseLockIsTrue) {
const ResourceId resId3(RESOURCE_COLLECTION, "TestDB.collection3"_sd);
const ResourceId resId4(RESOURCE_COLLECTION, "TestDB.collection4"_sd);
- DefaultLockerImpl locker;
+ LockerImpl locker;
locker.setSharedLocksShouldTwoPhaseLock(true);
ASSERT_EQ(LOCK_OK, locker.lockGlobal(MODE_IS));
@@ -363,7 +344,7 @@ TEST(LockerImpl, ModeIXAndXLockParticipatesInTwoPhaseLocking) {
const ResourceId resId3(RESOURCE_COLLECTION, "TestDB.collection3"_sd);
const ResourceId resId4(RESOURCE_COLLECTION, "TestDB.collection4"_sd);
- DefaultLockerImpl locker;
+ LockerImpl locker;
ASSERT_EQ(LOCK_OK, locker.lockGlobal(MODE_IX));
ASSERT_EQ(locker.getLockMode(globalResId), MODE_IX);
@@ -402,8 +383,8 @@ TEST(LockerImpl, OverrideLockRequestTimeout) {
const ResourceId resIdFirstDB(RESOURCE_DATABASE, "FirstDB"_sd);
const ResourceId resIdSecondDB(RESOURCE_DATABASE, "SecondDB"_sd);
- DefaultLockerImpl locker1;
- DefaultLockerImpl locker2;
+ LockerImpl locker1;
+ LockerImpl locker2;
// Set up locker2 to override lock requests' provided timeout if greater than 1000 milliseconds.
locker2.setMaxLockTimeout(Milliseconds(1000));
@@ -437,8 +418,8 @@ TEST(LockerImpl, DoNotWaitForLockAcquisition) {
const ResourceId resIdFirstDB(RESOURCE_DATABASE, "FirstDB"_sd);
const ResourceId resIdSecondDB(RESOURCE_DATABASE, "SecondDB"_sd);
- DefaultLockerImpl locker1;
- DefaultLockerImpl locker2;
+ LockerImpl locker1;
+ LockerImpl locker2;
// Set up locker2 to immediately return if a lock is unavailable, regardless of supplied
// deadlines in the lock request.
@@ -491,7 +472,7 @@ TEST(LockerImpl, GetLockerInfoShouldReportHeldLocks) {
const ResourceId collectionId(RESOURCE_COLLECTION, "TestDB.collection"_sd);
// Take an exclusive lock on the collection.
- DefaultLockerImpl locker;
+ LockerImpl locker;
ASSERT_EQ(LOCK_OK, locker.lockGlobal(MODE_IX));
ASSERT_EQ(LOCK_OK, locker.lock(dbId, MODE_IX));
ASSERT_EQ(LOCK_OK, locker.lock(collectionId, MODE_X));
@@ -516,13 +497,13 @@ TEST(LockerImpl, GetLockerInfoShouldReportPendingLocks) {
const ResourceId collectionId(RESOURCE_COLLECTION, "TestDB.collection"_sd);
// Take an exclusive lock on the collection.
- DefaultLockerImpl successfulLocker;
+ LockerImpl successfulLocker;
ASSERT_EQ(LOCK_OK, successfulLocker.lockGlobal(MODE_IX));
ASSERT_EQ(LOCK_OK, successfulLocker.lock(dbId, MODE_IX));
ASSERT_EQ(LOCK_OK, successfulLocker.lock(collectionId, MODE_X));
// Now attempt to get conflicting locks.
- DefaultLockerImpl conflictingLocker;
+ LockerImpl conflictingLocker;
ASSERT_EQ(LOCK_OK, conflictingLocker.lockGlobal(MODE_IS));
ASSERT_EQ(LOCK_OK, conflictingLocker.lock(dbId, MODE_IS));
ASSERT_EQ(LOCK_WAITING, conflictingLocker.lockBegin(nullptr, collectionId, MODE_IS));
@@ -558,7 +539,7 @@ TEST(LockerImpl, GetLockerInfoShouldReportPendingLocks) {
TEST(LockerImpl, ReaquireLockPendingUnlock) {
const ResourceId resId(RESOURCE_COLLECTION, "TestDB.collection"_sd);
- DefaultLockerImpl locker;
+ LockerImpl locker;
locker.lockGlobal(MODE_IS);
ASSERT_EQ(LOCK_OK, locker.lock(resId, MODE_X));
@@ -586,7 +567,7 @@ TEST(LockerImpl, ReaquireLockPendingUnlock) {
TEST(LockerImpl, AcquireLockPendingUnlockWithCoveredMode) {
const ResourceId resId(RESOURCE_COLLECTION, "TestDB.collection"_sd);
- DefaultLockerImpl locker;
+ LockerImpl locker;
locker.lockGlobal(MODE_IS);
ASSERT_EQ(LOCK_OK, locker.lock(resId, MODE_X));
@@ -614,7 +595,7 @@ TEST(LockerImpl, AcquireLockPendingUnlockWithCoveredMode) {
TEST(LockerImpl, ConvertLockPendingUnlock) {
const ResourceId resId(RESOURCE_COLLECTION, "TestDB.collection"_sd);
- DefaultLockerImpl locker;
+ LockerImpl locker;
locker.lockGlobal(MODE_IS);
ASSERT_EQ(LOCK_OK, locker.lock(resId, MODE_IX));
@@ -644,7 +625,7 @@ TEST(LockerImpl, ConvertLockPendingUnlock) {
TEST(LockerImpl, ConvertLockPendingUnlockAndUnlock) {
const ResourceId resId(RESOURCE_COLLECTION, "TestDB.collection"_sd);
- DefaultLockerImpl locker;
+ LockerImpl locker;
locker.lockGlobal(MODE_IS);
ASSERT_EQ(LOCK_OK, locker.lock(resId, MODE_IX));