summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEsha Maharishi <esha.maharishi@mongodb.com>2016-09-19 11:05:03 -0400
committerEsha Maharishi <esha.maharishi@mongodb.com>2016-09-19 11:05:24 -0400
commitfd19ddff758912365f22813d2ec8c93688676144 (patch)
tree552c85c591e919a774aee33476b1f474bebc1193 /src
parent69c7bd7247639e143d21db25460d33667224a8b1 (diff)
downloadmongo-fd19ddff758912365f22813d2ec8c93688676144.tar.gz
SERVER-24527 add test to ensure shard undergoes sharding initialization through setShardVersion
Diffstat (limited to 'src')
-rw-r--r--src/mongo/s/catalog/replset/sharding_catalog_manager_impl.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/mongo/s/catalog/replset/sharding_catalog_manager_impl.cpp b/src/mongo/s/catalog/replset/sharding_catalog_manager_impl.cpp
index 88c7d4c482f..b71af9ea0d5 100644
--- a/src/mongo/s/catalog/replset/sharding_catalog_manager_impl.cpp
+++ b/src/mongo/s/catalog/replset/sharding_catalog_manager_impl.cpp
@@ -75,6 +75,7 @@
#include "mongo/s/write_ops/batched_command_request.h"
#include "mongo/s/write_ops/batched_command_response.h"
#include "mongo/stdx/memory.h"
+#include "mongo/util/fail_point_service.h"
#include "mongo/util/log.h"
#include "mongo/util/mongoutils/str.h"
#include "mongo/util/net/hostandport.h"
@@ -82,6 +83,8 @@
namespace mongo {
+MONGO_FP_DECLARE(dontUpsertShardIdentityOnNewShards);
+
using std::string;
using std::vector;
using str::stream;
@@ -829,22 +832,25 @@ StatusWith<string> ShardingCatalogManagerImpl::addShard(
}
}
- auto commandRequest = createShardIdentityUpsertForAddShard(txn, shardType.getName());
+ if (!MONGO_FAIL_POINT(dontUpsertShardIdentityOnNewShards)) {
+ auto commandRequest = createShardIdentityUpsertForAddShard(txn, shardType.getName());
- LOG(2) << "going to insert shardIdentity document into shard: " << shardType;
+ LOG(2) << "going to insert shardIdentity document into shard: " << shardType;
- auto swCommandResponse = _runCommandForAddShard(txn, targeter.get(), "admin", commandRequest);
- if (!swCommandResponse.isOK()) {
- return swCommandResponse.getStatus();
- }
+ auto swCommandResponse =
+ _runCommandForAddShard(txn, targeter.get(), "admin", commandRequest);
+ if (!swCommandResponse.isOK()) {
+ return swCommandResponse.getStatus();
+ }
- auto commandResponse = std::move(swCommandResponse.getValue());
+ auto commandResponse = std::move(swCommandResponse.getValue());
- BatchedCommandResponse batchResponse;
- auto batchResponseStatus =
- Shard::CommandResponse::processBatchWriteResponse(commandResponse, &batchResponse);
- if (!batchResponseStatus.isOK()) {
- return batchResponseStatus;
+ BatchedCommandResponse batchResponse;
+ auto batchResponseStatus =
+ Shard::CommandResponse::processBatchWriteResponse(commandResponse, &batchResponse);
+ if (!batchResponseStatus.isOK()) {
+ return batchResponseStatus;
+ }
}
log() << "going to insert new entry for shard into config.shards: " << shardType.toString();