diff options
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 | 23 |
1 files changed, 11 insertions, 12 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 3855d512b88..2617c4201a0 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 @@ -431,13 +431,7 @@ void bumpMajorVersionOneChunkPerShard(OperationContext* opCtx, const CollectionType coll(findCollResponse.docs[0]); for (const auto& shardId : shardIds) { - BSONObjBuilder updateBuilder; - BSONObjBuilder updateVersionClause(updateBuilder.subobjStart("$set")); - targetChunkVersion.appendLegacyWithField(&updateVersionClause, ChunkType::lastmod()); - updateVersionClause.doneFast(); - auto chunkUpdate = updateBuilder.obj(); - - const auto query = [&]() { + const auto query = [&] { if (coll.getTimestamp()) { return BSON(ChunkType::collectionUUID << coll.getUuid() << ChunkType::shard(shardId.toString())); @@ -446,11 +440,16 @@ void bumpMajorVersionOneChunkPerShard(OperationContext* opCtx, << ChunkType::shard(shardId.toString())); } }(); - auto request = BatchedCommandRequest::buildUpdateOp(ChunkType::ConfigNS, - query, // query - chunkUpdate, // update - false, // upsert - false // multi + + BSONObjBuilder updateVersionClause; + updateVersionClause.appendTimestamp(ChunkType::lastmod(), targetChunkVersion.toLong()); + + auto request = BatchedCommandRequest::buildUpdateOp( + ChunkType::ConfigNS, + query, + BSON("$set" << updateVersionClause.obj()), // update + false, // upsert + false // multi ); auto res = ShardingCatalogManager::get(opCtx)->writeToConfigDocumentInTxn( |