diff options
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.cpp | 40 |
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)}; |