summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/split_chunk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/split_chunk.cpp')
-rw-r--r--src/mongo/db/s/split_chunk.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/mongo/db/s/split_chunk.cpp b/src/mongo/db/s/split_chunk.cpp
index 3ee8a2e808f..5cdec99ab46 100644
--- a/src/mongo/db/s/split_chunk.cpp
+++ b/src/mongo/db/s/split_chunk.cpp
@@ -120,15 +120,17 @@ bool checkMetadataForSuccessfulSplitChunk(OperationContext* opCtx,
shardId),
str::stream() << "Collection " << nss.ns() << " is not sharded",
metadataAfterSplit->isSharded());
- const auto epoch = metadataAfterSplit->getShardVersion().epoch();
- uassert(StaleConfigInfo(nss,
- ShardVersion::IGNORED() /* receivedVersion */,
- ShardVersion(metadataAfterSplit->getShardVersion()) /* wantedVersion */,
- shardId),
+ const auto placementVersion = metadataAfterSplit->getShardVersion();
+ const auto epoch = placementVersion.epoch();
+ uassert(StaleConfigInfo(
+ nss,
+ ShardVersion::IGNORED() /* receivedVersion */,
+ ShardVersion(placementVersion,
+ CollectionIndexes(placementVersion, boost::none)) /* wantedVersion */,
+ shardId),
str::stream() << "Collection " << nss.ns() << " changed since split start",
epoch == expectedEpoch &&
- (!expectedTimestamp ||
- metadataAfterSplit->getShardVersion().getTimestamp() == expectedTimestamp));
+ (!expectedTimestamp || placementVersion.getTimestamp() == expectedTimestamp));
ChunkType nextChunk;
for (auto it = splitPoints.begin(); it != splitPoints.end(); ++it) {