summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/config/sharding_catalog_manager_commit_chunk_migration_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/config/sharding_catalog_manager_commit_chunk_migration_test.cpp')
-rw-r--r--src/mongo/db/s/config/sharding_catalog_manager_commit_chunk_migration_test.cpp39
1 files changed, 26 insertions, 13 deletions
diff --git a/src/mongo/db/s/config/sharding_catalog_manager_commit_chunk_migration_test.cpp b/src/mongo/db/s/config/sharding_catalog_manager_commit_chunk_migration_test.cpp
index 4a7e74add28..cedad2a905f 100644
--- a/src/mongo/db/s/config/sharding_catalog_manager_commit_chunk_migration_test.cpp
+++ b/src/mongo/db/s/config/sharding_catalog_manager_commit_chunk_migration_test.cpp
@@ -50,6 +50,9 @@ const NamespaceString kNamespace("TestDB.TestColl");
const KeyPattern kKeyPattern(BSON("x" << 1));
TEST_F(CommitChunkMigrate, ChunksUpdatedCorrectly) {
+ const auto collEpoch = OID::gen();
+ const auto collTimestamp = boost::none;
+
ShardType shard0;
shard0.setName("shard0");
shard0.setHost("shard0:12");
@@ -62,7 +65,7 @@ TEST_F(CommitChunkMigrate, ChunksUpdatedCorrectly) {
ChunkType migratedChunk, controlChunk;
{
- ChunkVersion origVersion(12, 7, OID::gen(), boost::none /* timestamp */);
+ ChunkVersion origVersion(12, 7, collEpoch, collTimestamp);
migratedChunk.setName(OID::gen());
migratedChunk.setNS(kNamespace);
@@ -109,14 +112,16 @@ TEST_F(CommitChunkMigrate, ChunksUpdatedCorrectly) {
ASSERT_TRUE(mver.isOlderOrEqualThan(cver));
// Verify the chunks ended up in the right shards.
- auto chunkDoc0 = uassertStatusOK(getChunkDoc(operationContext(), migratedChunk.getMin()));
+ auto chunkDoc0 = uassertStatusOK(
+ getChunkDoc(operationContext(), migratedChunk.getMin(), collEpoch, collTimestamp));
ASSERT_EQ("shard1", chunkDoc0.getShard().toString());
// The migrated chunk's history should be updated.
ASSERT_EQ(2UL, chunkDoc0.getHistory().size());
ASSERT_EQ(validAfter, chunkDoc0.getHistory().front().getValidAfter());
- auto chunkDoc1 = uassertStatusOK(getChunkDoc(operationContext(), controlChunk.getMin()));
+ auto chunkDoc1 = uassertStatusOK(
+ getChunkDoc(operationContext(), controlChunk.getMin(), collEpoch, collTimestamp));
ASSERT_EQ("shard0", chunkDoc1.getShard().toString());
// The control chunk's history and jumbo status should be unchanged.
@@ -129,6 +134,8 @@ TEST_F(CommitChunkMigrate, ChunksUpdatedCorrectly) {
}
TEST_F(CommitChunkMigrate, ChunksUpdatedCorrectlyWithoutControlChunk) {
+ const auto collEpoch = OID::gen();
+ const auto collTimestamp = boost::none;
ShardType shard0;
shard0.setName("shard0");
@@ -141,8 +148,7 @@ TEST_F(CommitChunkMigrate, ChunksUpdatedCorrectlyWithoutControlChunk) {
setupShards({shard0, shard1});
int origMajorVersion = 15;
- auto const origVersion =
- ChunkVersion(origMajorVersion, 4, OID::gen(), boost::none /* timestamp */);
+ auto const origVersion = ChunkVersion(origMajorVersion, 4, collEpoch, collTimestamp);
ChunkType chunk0;
chunk0.setName(OID::gen());
@@ -179,7 +185,8 @@ TEST_F(CommitChunkMigrate, ChunksUpdatedCorrectlyWithoutControlChunk) {
ASSERT_EQ(ChunkVersion(0, 0, origVersion.epoch(), origVersion.getTimestamp()), mver.getValue());
// Verify the chunk ended up in the right shard.
- auto chunkDoc0 = uassertStatusOK(getChunkDoc(operationContext(), chunkMin));
+ auto chunkDoc0 =
+ uassertStatusOK(getChunkDoc(operationContext(), chunkMin, collEpoch, collTimestamp));
ASSERT_EQ("shard1", chunkDoc0.getShard().toString());
// The history should be updated.
ASSERT_EQ(2UL, chunkDoc0.getHistory().size());
@@ -187,6 +194,8 @@ TEST_F(CommitChunkMigrate, ChunksUpdatedCorrectlyWithoutControlChunk) {
}
TEST_F(CommitChunkMigrate, CheckCorrectOpsCommandNoCtlTrimHistory) {
+ const auto collEpoch = OID::gen();
+ const auto collTimestamp = boost::none;
ShardType shard0;
shard0.setName("shard0");
@@ -199,8 +208,7 @@ TEST_F(CommitChunkMigrate, CheckCorrectOpsCommandNoCtlTrimHistory) {
setupShards({shard0, shard1});
int origMajorVersion = 15;
- auto const origVersion =
- ChunkVersion(origMajorVersion, 4, OID::gen(), boost::none /* timestamp */);
+ auto const origVersion = ChunkVersion(origMajorVersion, 4, collEpoch, collTimestamp);
ChunkType chunk0;
chunk0.setName(OID::gen());
@@ -238,7 +246,8 @@ TEST_F(CommitChunkMigrate, CheckCorrectOpsCommandNoCtlTrimHistory) {
ASSERT_EQ(ChunkVersion(0, 0, origVersion.epoch(), origVersion.getTimestamp()), mver.getValue());
// Verify the chunk ended up in the right shard.
- auto chunkDoc0 = uassertStatusOK(getChunkDoc(operationContext(), chunkMin));
+ auto chunkDoc0 =
+ uassertStatusOK(getChunkDoc(operationContext(), chunkMin, collEpoch, collTimestamp));
ASSERT_EQ("shard1", chunkDoc0.getShard().toString());
// The new history entry should be added, but the old one preserved.
@@ -455,6 +464,9 @@ TEST_F(CommitChunkMigrate, RejectChunkMissing0) {
}
TEST_F(CommitChunkMigrate, CommitWithLastChunkOnShardShouldNotAffectOtherChunks) {
+ const auto collEpoch = OID::gen();
+ const auto collTimestamp = boost::none;
+
ShardType shard0;
shard0.setName("shard0");
shard0.setHost("shard0:12");
@@ -466,8 +478,7 @@ TEST_F(CommitChunkMigrate, CommitWithLastChunkOnShardShouldNotAffectOtherChunks)
setupShards({shard0, shard1});
int origMajorVersion = 12;
- auto const origVersion =
- ChunkVersion(origMajorVersion, 7, OID::gen(), boost::none /* timestamp */);
+ auto const origVersion = ChunkVersion(origMajorVersion, 7, collEpoch, collTimestamp);
ChunkType chunk0;
chunk0.setName(OID::gen());
@@ -516,14 +527,16 @@ TEST_F(CommitChunkMigrate, CommitWithLastChunkOnShardShouldNotAffectOtherChunks)
ASSERT_EQ(ChunkVersion(0, 0, origVersion.epoch(), origVersion.getTimestamp()), mver.getValue());
// Verify the chunks ended up in the right shards.
- auto chunkDoc0 = uassertStatusOK(getChunkDoc(operationContext(), chunkMin));
+ auto chunkDoc0 =
+ uassertStatusOK(getChunkDoc(operationContext(), chunkMin, collEpoch, collTimestamp));
ASSERT_EQ(shard1.getName(), chunkDoc0.getShard().toString());
// The migrated chunk's history should be updated.
ASSERT_EQ(2UL, chunkDoc0.getHistory().size());
ASSERT_EQ(validAfter, chunkDoc0.getHistory().front().getValidAfter());
- auto chunkDoc1 = uassertStatusOK(getChunkDoc(operationContext(), chunkMax));
+ auto chunkDoc1 =
+ uassertStatusOK(getChunkDoc(operationContext(), chunkMax, collEpoch, collTimestamp));
ASSERT_EQ(shard1.getName(), chunkDoc1.getShard().toString());
ASSERT_EQ(chunk1.getVersion(), chunkDoc1.getVersion());