summaryrefslogtreecommitdiff
path: root/src/mongo/db/concurrency/lock_state_test.cpp
diff options
context:
space:
mode:
authorJordi Olivares Provencio <jordi.olivares-provencio@mongodb.com>2022-02-22 14:03:15 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-02-22 14:53:09 +0000
commita0eb65c457a250baada836c0b6165e93449cd079 (patch)
tree148b6b9e645cbcb87ebfed7a9b76531583931519 /src/mongo/db/concurrency/lock_state_test.cpp
parente7a3d3c2b66a22a1303d664eaaad78d05ed42b7c (diff)
downloadmongo-a0eb65c457a250baada836c0b6165e93449cd079.tar.gz
SERVER-57432 Forbid yielding MODE_X/MODE_S locks
Diffstat (limited to 'src/mongo/db/concurrency/lock_state_test.cpp')
-rw-r--r--src/mongo/db/concurrency/lock_state_test.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/mongo/db/concurrency/lock_state_test.cpp b/src/mongo/db/concurrency/lock_state_test.cpp
index 9c597d08138..86aeb32e3f4 100644
--- a/src/mongo/db/concurrency/lock_state_test.cpp
+++ b/src/mongo/db/concurrency/lock_state_test.cpp
@@ -339,7 +339,7 @@ TEST_F(LockerImplTest, saveAndRestoreDBAndCollection) {
// Lock some stuff.
locker.lockGlobal(opCtx.get(), MODE_IX);
locker.lock(resIdDatabase, MODE_IX);
- locker.lock(resIdCollection, MODE_X);
+ locker.lock(resIdCollection, MODE_IX);
locker.saveLockStateAndUnlock(&lockInfo);
// Things shouldn't be locked anymore.
@@ -351,7 +351,7 @@ TEST_F(LockerImplTest, saveAndRestoreDBAndCollection) {
// Make sure things were re-locked.
ASSERT_EQUALS(MODE_IX, locker.getLockMode(resIdDatabase));
- ASSERT_EQUALS(MODE_X, locker.getLockMode(resIdCollection));
+ ASSERT_EQUALS(MODE_IX, locker.getLockMode(resIdCollection));
ASSERT(locker.unlockGlobal());
}
@@ -370,7 +370,7 @@ TEST_F(LockerImplTest, releaseWriteUnitOfWork) {
// Lock some stuff.
locker.lockGlobal(opCtx.get(), MODE_IX);
locker.lock(resIdDatabase, MODE_IX);
- locker.lock(resIdCollection, MODE_X);
+ locker.lock(resIdCollection, MODE_IX);
// Unlock them so that they will be pending to unlock.
ASSERT_FALSE(locker.unlock(resIdCollection));
ASSERT_FALSE(locker.unlock(resIdDatabase));
@@ -400,7 +400,7 @@ TEST_F(LockerImplTest, restoreWriteUnitOfWork) {
// Lock some stuff.
locker.lockGlobal(opCtx.get(), MODE_IX);
locker.lock(resIdDatabase, MODE_IX);
- locker.lock(resIdCollection, MODE_X);
+ locker.lock(resIdCollection, MODE_IX);
// Unlock them so that they will be pending to unlock.
ASSERT_FALSE(locker.unlock(resIdCollection));
ASSERT_FALSE(locker.unlock(resIdDatabase));
@@ -418,7 +418,7 @@ TEST_F(LockerImplTest, restoreWriteUnitOfWork) {
// Make sure things were re-locked.
ASSERT_EQUALS(MODE_IX, locker.getLockMode(resIdDatabase));
- ASSERT_EQUALS(MODE_X, locker.getLockMode(resIdCollection));
+ ASSERT_EQUALS(MODE_IX, locker.getLockMode(resIdCollection));
ASSERT(locker.isLocked());
locker.endWriteUnitOfWork();
@@ -624,15 +624,15 @@ TEST_F(LockerImplTest, releaseAndRestoreWriteUnitOfWorkWithRecursiveLocks) {
// Lock some stuff.
locker.lockGlobal(opCtx.get(), MODE_IX);
locker.lock(resIdDatabase, MODE_IX);
- locker.lock(resIdCollection, MODE_X);
+ locker.lock(resIdCollection, MODE_IX);
// Recursively lock them again with a weaker mode.
locker.lockGlobal(opCtx.get(), MODE_IS);
locker.lock(resIdDatabase, MODE_IS);
- locker.lock(resIdCollection, MODE_S);
+ locker.lock(resIdCollection, MODE_IS);
// Make sure locks are converted.
ASSERT_EQUALS(MODE_IX, locker.getLockMode(resIdDatabase));
- ASSERT_EQUALS(MODE_X, locker.getLockMode(resIdCollection));
+ ASSERT_EQUALS(MODE_IX, locker.getLockMode(resIdCollection));
ASSERT_TRUE(locker.isWriteLocked());
ASSERT_EQ(locker.getRequestsForTest().find(resourceIdGlobal).objAddr()->recursiveCount, 2U);
ASSERT_EQ(locker.getRequestsForTest().find(resIdDatabase).objAddr()->recursiveCount, 2U);
@@ -644,7 +644,7 @@ TEST_F(LockerImplTest, releaseAndRestoreWriteUnitOfWorkWithRecursiveLocks) {
ASSERT_FALSE(locker.unlockGlobal());
// Make sure locks are still acquired in the correct mode.
ASSERT_EQUALS(MODE_IX, locker.getLockMode(resIdDatabase));
- ASSERT_EQUALS(MODE_X, locker.getLockMode(resIdCollection));
+ ASSERT_EQUALS(MODE_IX, locker.getLockMode(resIdCollection));
ASSERT_TRUE(locker.isWriteLocked());
// Make sure unlocking converted locks decrements the locks' recursiveCount instead of
// incrementing unlockPending.
@@ -678,7 +678,7 @@ TEST_F(LockerImplTest, releaseAndRestoreWriteUnitOfWorkWithRecursiveLocks) {
// Make sure things were re-locked in the correct mode.
ASSERT_EQUALS(MODE_IX, locker.getLockMode(resIdDatabase));
- ASSERT_EQUALS(MODE_X, locker.getLockMode(resIdCollection));
+ ASSERT_EQUALS(MODE_IX, locker.getLockMode(resIdCollection));
ASSERT_TRUE(locker.isWriteLocked());
// Make sure locks were coalesced after restore and are pending to unlock as before.
ASSERT_EQ(locker.getRequestsForTest().find(resourceIdGlobal).objAddr()->recursiveCount, 1U);