summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/rollback_impl_test.cpp
diff options
context:
space:
mode:
authorWilliam Schultz <william.schultz@mongodb.com>2018-02-22 15:33:59 -0500
committerWilliam Schultz <william.schultz@mongodb.com>2018-02-22 15:33:59 -0500
commitddef91443698a4ab8550437abecb6c737a6d7e67 (patch)
tree97741faa6477c8188d1f1b06fdb53307a370c75c /src/mongo/db/repl/rollback_impl_test.cpp
parent9c65faa1ea24b92d86f846abd38909b4ef2fe5bc (diff)
downloadmongo-ddef91443698a4ab8550437abecb6c737a6d7e67.tar.gz
SERVER-33166 Always transition back to SECONDARY after rollback
Diffstat (limited to 'src/mongo/db/repl/rollback_impl_test.cpp')
-rw-r--r--src/mongo/db/repl/rollback_impl_test.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/mongo/db/repl/rollback_impl_test.cpp b/src/mongo/db/repl/rollback_impl_test.cpp
index 71f56ecc8e7..62524d09db2 100644
--- a/src/mongo/db/repl/rollback_impl_test.cpp
+++ b/src/mongo/db/repl/rollback_impl_test.cpp
@@ -250,12 +250,18 @@ TEST_F(RollbackImplTest, RollbackReturnsInvalidSyncSourceWhenNoRemoteOplog) {
ASSERT_OK(_insertOplogEntry(makeOp(1)));
ASSERT_EQUALS(ErrorCodes::InvalidSyncSource, _rollback->runRollback(_opCtx.get()));
+
+ // Make sure we transitioned back to SECONDARY state.
+ ASSERT_EQUALS(_coordinator->getMemberState(), MemberState::RS_SECONDARY);
}
TEST_F(RollbackImplTest, RollbackReturnsOplogStartMissingWhenNoLocalOplog) {
_remoteOplog->setOperations({makeOpAndRecordId(1)});
ASSERT_EQUALS(ErrorCodes::OplogStartMissing, _rollback->runRollback(_opCtx.get()));
+
+ // Make sure we transitioned back to SECONDARY state.
+ ASSERT_EQUALS(_coordinator->getMemberState(), MemberState::RS_SECONDARY);
}
TEST_F(RollbackImplTest, RollbackReturnsNoMatchingDocumentWhenNoCommonPoint) {
@@ -263,6 +269,9 @@ TEST_F(RollbackImplTest, RollbackReturnsNoMatchingDocumentWhenNoCommonPoint) {
ASSERT_OK(_insertOplogEntry(makeOp(2)));
ASSERT_EQUALS(ErrorCodes::NoMatchingDocument, _rollback->runRollback(_opCtx.get()));
+
+ // Make sure we transitioned back to SECONDARY state.
+ ASSERT_EQUALS(_coordinator->getMemberState(), MemberState::RS_SECONDARY);
}
TEST_F(RollbackImplTest, RollbackPersistsDocumentAfterCommonPointToOplogTruncateAfterPoint) {
@@ -346,6 +355,9 @@ TEST_F(RollbackImplTest, RollbackReturnsBadStatusIfRecoverToStableTimestampFails
// Make sure rollback failed, and didn't execute the recover to timestamp logic.
ASSERT_EQUALS(recoverToTimestampStatus, rollbackStatus);
ASSERT_EQUALS(currTimestamp, _storageInterface->getCurrentTimestamp());
+
+ // Make sure we transitioned back to SECONDARY state.
+ ASSERT_EQUALS(_coordinator->getMemberState(), MemberState::RS_SECONDARY);
}
TEST_F(RollbackImplTest, RollbackReturnsBadStatusIfIncrementRollbackIDFails) {
@@ -364,6 +376,9 @@ TEST_F(RollbackImplTest, RollbackReturnsBadStatusIfIncrementRollbackIDFails) {
// Check that a bad status was returned since incrementing the rollback id should have
// failed.
ASSERT_EQUALS(ErrorCodes::NamespaceNotFound, status.code());
+
+ // Make sure we transitioned back to SECONDARY state.
+ ASSERT_EQUALS(_coordinator->getMemberState(), MemberState::RS_SECONDARY);
}
TEST_F(RollbackImplTest, RollbackCallsRecoverFromOplog) {
@@ -397,6 +412,9 @@ TEST_F(RollbackImplTest, RollbackSkipsRecoverFromOplogWhenShutdownEarly) {
ASSERT_EQUALS(ErrorCodes::ShutdownInProgress, _rollback->runRollback(_opCtx.get()));
ASSERT(_recoveredToStableTimestamp);
ASSERT_FALSE(_recoveredFromOplog);
+
+ // Make sure we transitioned back to SECONDARY state.
+ ASSERT_EQUALS(_coordinator->getMemberState(), MemberState::RS_SECONDARY);
}
TEST_F(RollbackImplTest, RollbackSucceeds) {
@@ -440,6 +458,7 @@ TEST_F(RollbackImplTest, RollbackSkipsCommonPointWhenShutDownEarly) {
ASSERT_EQUALS(ErrorCodes::ShutdownInProgress, _rollback->runRollback(_opCtx.get()));
ASSERT(_transitionedToRollback);
ASSERT_EQUALS(Timestamp(0, 0), _commonPointFound);
+ ASSERT_EQUALS(_coordinator->getMemberState(), MemberState::RS_SECONDARY);
}
TEST_F(RollbackImplTest, RollbackSkipsTriggerOpObserverWhenShutDownEarly) {
@@ -457,6 +476,7 @@ TEST_F(RollbackImplTest, RollbackSkipsTriggerOpObserverWhenShutDownEarly) {
ASSERT_EQUALS(ErrorCodes::ShutdownInProgress, _rollback->runRollback(_opCtx.get()));
ASSERT(_recoveredFromOplog);
ASSERT_FALSE(_triggeredOpObserver);
+ ASSERT_EQUALS(_coordinator->getMemberState(), MemberState::RS_SECONDARY);
}
/**