summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/session_catalog_migration_source_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/session_catalog_migration_source_test.cpp')
-rw-r--r--src/mongo/db/s/session_catalog_migration_source_test.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/mongo/db/s/session_catalog_migration_source_test.cpp b/src/mongo/db/s/session_catalog_migration_source_test.cpp
index 49c40b93d3c..33baf246cba 100644
--- a/src/mongo/db/s/session_catalog_migration_source_test.cpp
+++ b/src/mongo/db/s/session_catalog_migration_source_test.cpp
@@ -307,6 +307,7 @@ TEST_F(SessionCatalogMigrationSourceTest, OneSessionWithTwoWrites) {
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
{
@@ -368,6 +369,7 @@ TEST_F(SessionCatalogMigrationSourceTest, OneSessionWithTwoWritesMultiStmtIds) {
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
{
@@ -466,6 +468,7 @@ TEST_F(SessionCatalogMigrationSourceTest, TwoSessionWithTwoWrites) {
insertOplogEntry(entry2b);
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
auto checkNextBatch = [this, &migrationSource](const repl::OplogEntry& firstExpectedOplog,
@@ -575,6 +578,7 @@ TEST_F(SessionCatalogMigrationSourceTest, OneSessionWithFindAndModifyPreImageAnd
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
auto expectedSequence = {entry3, entry4, entry1, entry2};
@@ -657,6 +661,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
auto expectedSequence = {entry3, entry4, entry1, entry2};
@@ -713,6 +718,7 @@ TEST_F(SessionCatalogMigrationSourceTest, ForgeImageEntriesWhenFetchingEntriesWi
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
// The next oplog entry should be the forged preImage entry.
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
ASSERT_TRUE(migrationSource.hasMoreOplog());
@@ -791,6 +797,7 @@ TEST_F(SessionCatalogMigrationSourceTest, OplogWithOtherNsShouldBeIgnored) {
sessionRecord2.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
ASSERT_TRUE(migrationSource.hasMoreOplog());
@@ -857,6 +864,7 @@ TEST_F(SessionCatalogMigrationSourceTest, SessionDumpWithMultipleNewWrites) {
insertOplogEntry(entry3);
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
migrationSource.notifyNewWriteOpTime(
@@ -894,6 +902,7 @@ TEST_F(SessionCatalogMigrationSourceTest, SessionDumpWithMultipleNewWrites) {
TEST_F(SessionCatalogMigrationSourceTest, ShouldAssertIfOplogCannotBeFound) {
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
migrationSource.notifyNewWriteOpTime(
@@ -906,6 +915,7 @@ TEST_F(SessionCatalogMigrationSourceTest, ShouldAssertIfOplogCannotBeFound) {
TEST_F(SessionCatalogMigrationSourceTest,
ReturnDeadEndSentinelOplogEntryForNewCommittedNonInternalTransaction) {
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
const auto sessionId = makeLogicalSessionIdForTest();
@@ -944,6 +954,7 @@ DEATH_TEST_F(SessionCatalogMigrationSourceTest,
ThrowUponSeeingNewCommittedForInternalTransactionForNonRetryableWrite,
"Cannot add op time for a non-retryable internal transaction") {
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
const auto sessionId = makeLogicalSessionIdWithTxnUUIDForTest();
@@ -969,6 +980,7 @@ DEATH_TEST_F(SessionCatalogMigrationSourceTest,
TEST_F(SessionCatalogMigrationSourceTest,
DeriveOplogEntriesForNewCommittedInternalTransactionForRetryableWriteBasic) {
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
const auto sessionId = makeLogicalSessionIdWithTxnNumberAndUUIDForTest();
@@ -1041,6 +1053,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
TEST_F(SessionCatalogMigrationSourceTest,
DeriveOplogEntriesForNewCommittedInternalTransactionForRetryableWriteFetchPrePostImage) {
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
const auto sessionId = makeLogicalSessionIdWithTxnNumberAndUUIDForTest();
@@ -1143,6 +1156,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
TEST_F(SessionCatalogMigrationSourceTest,
DeriveOplogEntriesForNewCommittedInternalTransactionForRetryableWriteForgePrePostImage) {
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
std::vector<repl::RetryImageEnum> cases{repl::RetryImageEnum::kPreImage,
@@ -1232,6 +1246,7 @@ TEST_F(SessionCatalogMigrationSourceTest, ShouldBeAbleInsertNewWritesAfterBuffer
const auto txnNumber = TxnNumber{1};
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
{
@@ -1340,6 +1355,7 @@ TEST_F(SessionCatalogMigrationSourceTest, ReturnsDeadEndSentinelForIncompleteHis
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
{
@@ -1400,6 +1416,7 @@ TEST_F(SessionCatalogMigrationSourceTest, ShouldAssertWhenRollbackDetected) {
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
{
@@ -1443,6 +1460,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), txnRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
ASSERT_TRUE(migrationSource.hasMoreOplog());
@@ -1482,6 +1500,7 @@ TEST_F(SessionCatalogMigrationSourceTest, IgnoreCommittedInternalTransactionForN
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), txnRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
ASSERT_FALSE(migrationSource.hasMoreOplog());
@@ -1566,6 +1585,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), txnRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
const auto expectedSessionId = *getParentSessionId(sessionId);
const auto expectedTxnNumber = *sessionId.getTxnNumber();
@@ -1690,6 +1710,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), txnRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
const auto expectedSessionId = *getParentSessionId(sessionId);
const auto expectedTxnNumber = *sessionId.getTxnNumber();
@@ -1782,6 +1803,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
// Create a SessionCatalogMigrationSource. It should return only the oplog entry for the
// internal session with the latest txnNumber.
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
ASSERT_TRUE(migrationSource.hasMoreOplog());
@@ -1819,6 +1841,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
// Create another SessionCatalogMigrationSource. It should still return only the oplog entry
// for the internal session with the latest txnNumber.
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
ASSERT_TRUE(migrationSource.hasMoreOplog());
@@ -1929,6 +1952,7 @@ TEST_F(
client.insert(NamespaceString::kConfigImagesNamespace.ns(), imageEntryForOp2.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
const auto expectedSessionId = *getParentSessionId(sessionId);
const auto expectedTxnNumber = *sessionId.getTxnNumber();
@@ -1991,6 +2015,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), txnRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
ASSERT_TRUE(migrationSource.hasMoreOplog());
@@ -2030,6 +2055,7 @@ TEST_F(SessionCatalogMigrationSourceTest, IgnorePreparedInternalTransactionForNo
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), txnRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
ASSERT_FALSE(migrationSource.hasMoreOplog());
@@ -2061,6 +2087,7 @@ TEST_F(SessionCatalogMigrationSourceTest, IgnorePreparedInternalTransactionForRe
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), txnRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
ASSERT_FALSE(migrationSource.hasMoreOplog());
@@ -2080,6 +2107,7 @@ TEST_F(SessionCatalogMigrationSourceTest, IgnoreInProgressTransaction) {
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), txnRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
ASSERT_FALSE(migrationSource.hasMoreOplog());
@@ -2129,6 +2157,7 @@ TEST_F(SessionCatalogMigrationSourceTest, IgnoreAbortedTransaction) {
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), txnRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
ASSERT_FALSE(migrationSource.hasMoreOplog());
@@ -2185,6 +2214,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
insertOplogEntry(insertOplog);
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
// Function to verify the oplog entry corresponding to the retryable write.
auto checkRetryableWriteEntry = [&] {
@@ -2264,6 +2294,7 @@ TEST_F(SessionCatalogMigrationSourceTest, FindAndModifyDeleteNotTouchingChunkIsI
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
}
@@ -2306,6 +2337,7 @@ TEST_F(SessionCatalogMigrationSourceTest, FindAndModifyUpdatePrePostNotTouchingC
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
}
@@ -2350,6 +2382,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
auto expectedSequence = {entry1, entry2};
@@ -2407,6 +2440,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
}
@@ -2450,6 +2484,7 @@ TEST_F(SessionCatalogMigrationSourceTest, FindAndModifyUpdateNotTouchingChunkSho
client.insert(NamespaceString::kSessionTransactionsTableNamespace.ns(), sessionRecord.toBSON());
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_FALSE(migrationSource.fetchNextOplog(opCtx()));
}
@@ -2531,6 +2566,7 @@ TEST_F(SessionCatalogMigrationSourceTest, TwoSessionWithTwoWritesContainingWrite
insertOplogEntry(entry2b);
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.fetchNextOplog(opCtx()));
auto expectedSequence = {entry1a, entry2b, entry2a};
@@ -2580,6 +2616,7 @@ TEST_F(SessionCatalogMigrationSourceTest, UntransferredDataSizeWithCommittedWrit
// Check for the initial state of the SessionCatalogMigrationSource, and drain the majority
// committed session writes.
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
ASSERT_TRUE(migrationSource.hasMoreOplog());
ASSERT_FALSE(migrationSource.inCatchupPhase());
migrationSource.fetchNextOplog(opCtx());
@@ -2619,6 +2656,7 @@ TEST_F(SessionCatalogMigrationSourceTest, UntransferredDataSizeWithNoCommittedWr
const auto txnNumber = TxnNumber{1};
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
auto entry = makeOplogEntry(
repl::OpTime(Timestamp(52, 345), 2), // optime
@@ -2691,6 +2729,7 @@ TEST_F(SessionCatalogMigrationSourceTest, FilterRewrittenOplogEntriesOutsideChun
insertOplogEntry(entry);
}
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
std::vector<repl::OplogEntry> filteredEntries = {entries.at(1)};
while (migrationSource.fetchNextOplog(opCtx())) {
@@ -2737,6 +2776,7 @@ TEST_F(SessionCatalogMigrationSourceTest,
}
SessionCatalogMigrationSource migrationSource(opCtx(), kNs, kChunkRange, kShardKey);
+ migrationSource.init(opCtx());
std::vector<repl::OplogEntry> filteredEntries = {entries.at(1)};