diff options
author | Jordi Olivares Provencio <jordi.olivares-provencio@mongodb.com> | 2022-02-22 14:03:15 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-02-22 14:53:09 +0000 |
commit | a0eb65c457a250baada836c0b6165e93449cd079 (patch) | |
tree | 148b6b9e645cbcb87ebfed7a9b76531583931519 /src/mongo/db/concurrency/lock_state_test.cpp | |
parent | e7a3d3c2b66a22a1303d664eaaad78d05ed42b7c (diff) | |
download | mongo-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.cpp | 20 |
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); |