summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/sharding_state.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-07-27 14:15:49 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-07-30 09:51:15 -0400
commited7f95c68256c85c611034e0eb131cd5592338e7 (patch)
tree75d4378827bd303b842d8d00e45f2a4cd4b9e60c /src/mongo/db/s/sharding_state.cpp
parent8c326de66475125ce755c52d36340b52f86ac64e (diff)
downloadmongo-ed7f95c68256c85c611034e0eb131cd5592338e7.tar.gz
SERVER-24856 Make manual moveChunk requests go through the balancer on CSRS primary
Diffstat (limited to 'src/mongo/db/s/sharding_state.cpp')
-rw-r--r--src/mongo/db/s/sharding_state.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mongo/db/s/sharding_state.cpp b/src/mongo/db/s/sharding_state.cpp
index 98fc7037c40..44128b1ca0d 100644
--- a/src/mongo/db/s/sharding_state.cpp
+++ b/src/mongo/db/s/sharding_state.cpp
@@ -677,6 +677,13 @@ StatusWith<ChunkVersion> ShardingState::_refreshMetadata(
}
StatusWith<ScopedRegisterMigration> ShardingState::registerMigration(const MoveChunkRequest& args) {
+ if (_migrationDestManager.isActive()) {
+ return {
+ ErrorCodes::ConflictingOperationInProgress,
+ str::stream()
+ << "Unable start new migration because this shard is currently receiving a chunk"};
+ }
+
return _activeMigrationsRegistry.registerMigration(args);
}