diff options
author | Esha Maharishi <esha.maharishi@mongodb.com> | 2016-09-19 11:05:03 -0400 |
---|---|---|
committer | Esha Maharishi <esha.maharishi@mongodb.com> | 2016-09-19 11:05:24 -0400 |
commit | fd19ddff758912365f22813d2ec8c93688676144 (patch) | |
tree | 552c85c591e919a774aee33476b1f474bebc1193 /src | |
parent | 69c7bd7247639e143d21db25460d33667224a8b1 (diff) | |
download | mongo-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.cpp | 30 |
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(); |