summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jstests/libs/chunk_manipulation_util.js22
-rw-r--r--jstests/sharding/cleanup_orphaned_cmd_during_movechunk.js6
-rw-r--r--jstests/sharding/cleanup_orphaned_cmd_during_movechunk_hashed.js4
-rw-r--r--src/mongo/db/s/migration_destination_manager.cpp5
4 files changed, 21 insertions, 16 deletions
diff --git a/jstests/libs/chunk_manipulation_util.js b/jstests/libs/chunk_manipulation_util.js
index 8ad487667cf..9408ef7a544 100644
--- a/jstests/libs/chunk_manipulation_util.js
+++ b/jstests/libs/chunk_manipulation_util.js
@@ -115,8 +115,8 @@ function proceedToMoveChunkStep( shardConnection, stepNumber ) {
function configureMoveChunkFailPoint( shardConnection, stepNumber, mode ) {
- assert( stepNumber >= 1);
- assert( stepNumber <= 6 );
+ assert.between(migrateStepNames.copiedIndexes, stepNumber,
+ migrateStepNames.done, "incorrect stepNumber", true);
var admin = shardConnection.getDB( 'admin' );
admin.runCommand({ configureFailPoint: 'moveChunkHangAtStep' + stepNumber,
mode: mode });
@@ -130,8 +130,8 @@ function waitForMoveChunkStep( shardConnection, stepNumber ) {
var searchString = 'step ' + stepNumber,
admin = shardConnection.getDB( 'admin' );
- assert( stepNumber >= 1);
- assert( stepNumber <= 6 );
+ assert.between(migrateStepNames.copiedIndexes, stepNumber,
+ migrateStepNames.done, "incorrect stepNumber", true);
var msg = (
'moveChunk on ' + shardConnection.shardName
@@ -156,8 +156,9 @@ var migrateStepNames = {
copiedIndexes: 1,
deletedPriorDataInRange: 2,
cloned: 3,
- transferredMods: 4, // About to enter steady state.
- done: 5
+ catchup: 4, // About to enter steady state.
+ steady: 5,
+ done: 6
};
//
@@ -186,8 +187,9 @@ function proceedToMigrateStep( shardConnection, stepNumber ) {
}
function configureMigrateFailPoint( shardConnection, stepNumber, mode ) {
- assert( stepNumber >= 1);
- assert( stepNumber <= 5 );
+ assert.between( migrateStepNames.copiedIndexes, stepNumber,
+ migrateStepNames.done, "incorrect stepNumber", true);
+
var admin = shardConnection.getDB( 'admin' );
admin.runCommand({ configureFailPoint: 'migrateThreadHangAtStep' + stepNumber,
mode: mode });
@@ -200,8 +202,8 @@ function waitForMigrateStep( shardConnection, stepNumber ) {
var searchString = 'step ' + stepNumber,
admin = shardConnection.getDB( 'admin' );
- assert( stepNumber >= 1);
- assert( stepNumber <= 5);
+ assert.between(migrateStepNames.copiedIndexes, stepNumber,
+ migrateStepNames.done, "incorrect stepNumber", true);
var msg = (
'Migrate thread on ' + shardConnection.shardName
diff --git a/jstests/sharding/cleanup_orphaned_cmd_during_movechunk.js b/jstests/sharding/cleanup_orphaned_cmd_during_movechunk.js
index a4356524b09..1948a4bed5c 100644
--- a/jstests/sharding/cleanup_orphaned_cmd_during_movechunk.js
+++ b/jstests/sharding/cleanup_orphaned_cmd_during_movechunk.js
@@ -99,9 +99,9 @@ assert.eq(21, donorColl.count());
// Recipient transfers this modification.
jsTest.log('Let migrate proceed to transferredMods');
-pauseMigrateAtStep(recipient, migrateStepNames.transferredMods);
+pauseMigrateAtStep(recipient, migrateStepNames.catchup);
unpauseMigrateAtStep(recipient, migrateStepNames.cloned);
-waitForMigrateStep(recipient, migrateStepNames.transferredMods);
+waitForMigrateStep(recipient, migrateStepNames.catchup);
jsTest.log('Done letting migrate proceed to transferredMods');
assert.eq(
@@ -129,7 +129,7 @@ assert.eq(21, recipientColl.count());
// Recipient has been waiting for donor to call _recvChunkCommit.
pauseMoveChunkAtStep(donor, moveChunkStepNames.committed);
unpauseMoveChunkAtStep(donor, moveChunkStepNames.startedMoveChunk);
-unpauseMigrateAtStep(recipient, migrateStepNames.transferredMods);
+proceedToMigrateStep(recipient, migrateStepNames.steady);
proceedToMigrateStep(recipient, migrateStepNames.done);
// Create orphans.
diff --git a/jstests/sharding/cleanup_orphaned_cmd_during_movechunk_hashed.js b/jstests/sharding/cleanup_orphaned_cmd_during_movechunk_hashed.js
index fdc6d6c8dff..d4d523bbd06 100644
--- a/jstests/sharding/cleanup_orphaned_cmd_during_movechunk_hashed.js
+++ b/jstests/sharding/cleanup_orphaned_cmd_during_movechunk_hashed.js
@@ -84,7 +84,7 @@ var joinMoveChunk = moveChunkParallel(
waitForMoveChunkStep(donor, moveChunkStepNames.startedMoveChunk);
waitForMigrateStep(recip, migrateStepNames.cloned);
-proceedToMigrateStep(recip, migrateStepNames.transferredMods);
+proceedToMigrateStep(recip, migrateStepNames.catchup);
// recipient has run _recvChunkStart and begun its migration thread;
// 'doc' has been cloned and chunkWithDoc is noted as 'pending' on recipient.
@@ -104,7 +104,7 @@ assert.eq(1, recipColl.count());
// recip has been waiting for donor to call _recvChunkCommit.
pauseMoveChunkAtStep(donor, moveChunkStepNames.committed);
unpauseMoveChunkAtStep(donor, moveChunkStepNames.startedMoveChunk);
-unpauseMigrateAtStep(recip, migrateStepNames.transferredMods);
+proceedToMigrateStep(recip, migrateStepNames.steady);
proceedToMigrateStep(recip, migrateStepNames.done);
// cleanupOrphaned removes migrated data from donor. The donor would
diff --git a/src/mongo/db/s/migration_destination_manager.cpp b/src/mongo/db/s/migration_destination_manager.cpp
index 5601aa11eec..deefb866bdb 100644
--- a/src/mongo/db/s/migration_destination_manager.cpp
+++ b/src/mongo/db/s/migration_destination_manager.cpp
@@ -198,6 +198,7 @@ MONGO_FP_DECLARE(migrateThreadHangAtStep2);
MONGO_FP_DECLARE(migrateThreadHangAtStep3);
MONGO_FP_DECLARE(migrateThreadHangAtStep4);
MONGO_FP_DECLARE(migrateThreadHangAtStep5);
+MONGO_FP_DECLARE(migrateThreadHangAtStep6);
MigrationDestinationManager::MigrationDestinationManager() = default;
@@ -418,7 +419,7 @@ void MigrationDestinationManager::_migrateDriver(OperationContext* txn,
<< " for collection " << ns << " from " << fromShard << " at epoch " << epoch.toString();
string errmsg;
- MoveTimingHelper timing(txn, "to", ns, min, max, 5 /* steps */, &errmsg, "", "");
+ MoveTimingHelper timing(txn, "to", ns, min, max, 6 /* steps */, &errmsg, "", "");
ScopedDbConnection conn(fromShard);
@@ -840,6 +841,8 @@ void MigrationDestinationManager::_migrateDriver(OperationContext* txn,
}
setState(DONE);
+ timing.done(6);
+ MONGO_FAIL_POINT_PAUSE_WHILE_SET(migrateThreadHangAtStep6);
conn.done();
}