diff options
author | Simon Gratzer <simon.gratzer@mongodb.com> | 2021-05-11 16:51:47 +0200 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-06-01 14:40:56 +0000 |
commit | c58adbce4f628f0da863bd779ada0512e5b242ec (patch) | |
tree | 029481487cbb315fd35de4eafeb62ae4c885df6c /src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp | |
parent | eb43e20229bdb20abdcaca1d89b965a22ac44584 (diff) | |
download | mongo-v4.2.12.tar.gz |
SERVER-48653 Return updated ShardVersion in _configsvrCommitChunkSplit to avoid blind metadata refresh (BACKPORT-9049)v4.2.12
Diffstat (limited to 'src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp')
-rw-r--r-- | src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp b/src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp index f07c54d6341..68d291d91dc 100644 --- a/src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp +++ b/src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp @@ -287,12 +287,13 @@ StatusWith<ChunkVersion> getMaxChunkVersionFromQueryResponse( } // namespace -Status ShardingCatalogManager::commitChunkSplit(OperationContext* opCtx, - const NamespaceString& nss, - const OID& requestEpoch, - const ChunkRange& range, - const std::vector<BSONObj>& splitPoints, - const std::string& shardName) { +StatusWith<BSONObj> ShardingCatalogManager::commitChunkSplit( + OperationContext* opCtx, + const NamespaceString& nss, + const OID& requestEpoch, + const ChunkRange& range, + const std::vector<BSONObj>& splitPoints, + const std::string& shardName) { // Take _kChunkOpLock in exclusive mode to prevent concurrent chunk splits, merges, and // migrations // TODO(SERVER-25359): Replace with a collection-specific lock map to allow splits/merges/ @@ -523,7 +524,10 @@ Status ShardingCatalogManager::commitChunkSplit(OperationContext* opCtx, } } - return Status::OK(); + // currentMaxVersion contains shard version with incremented minor version + BSONObjBuilder result; + currentMaxVersion.appendToCommand(&result); + return result.obj(); } Status ShardingCatalogManager::commitChunkMerge(OperationContext* opCtx, |