summaryrefslogtreecommitdiff
path: root/jstests/replsets
diff options
context:
space:
mode:
authorMickey. J Winters <mickey.winters@mongodb.com>2023-04-06 16:59:25 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-04-06 20:02:44 +0000
commit9595ffb2b2a270c2038f01737131d0d015464633 (patch)
treef0793a914888bbbcbf6e1022ac20ae0d95046514 /jstests/replsets
parentb71a5b1f50e35a4b94c25e2a5cc8a24d1a4d1909 (diff)
downloadmongo-9595ffb2b2a270c2038f01737131d0d015464633.tar.gz
SERVER-73053 TransactionHistoryIterator queries change collections if its for a serverless change stream
Diffstat (limited to 'jstests/replsets')
-rw-r--r--jstests/replsets/tenant_migration_recipient_shard_merge_copies_change_collections.js21
1 files changed, 17 insertions, 4 deletions
diff --git a/jstests/replsets/tenant_migration_recipient_shard_merge_copies_change_collections.js b/jstests/replsets/tenant_migration_recipient_shard_merge_copies_change_collections.js
index 49506c8b691..2a816b1ee50 100644
--- a/jstests/replsets/tenant_migration_recipient_shard_merge_copies_change_collections.js
+++ b/jstests/replsets/tenant_migration_recipient_shard_merge_copies_change_collections.js
@@ -2,11 +2,10 @@
* Tests that recipient is able to copy and apply change collection entries from the donor for the
* shard merge protocol.
*
- * TODO SERVER-72828: remove this test from 'exclude_files' in 'replica_sets_large_txns_format.yml'
- *
* @tags: [
* incompatible_with_macos,
* incompatible_with_windows_tls,
+ * requires_fcv_70,
* requires_majority_read_concern,
* requires_persistence,
* serverless,
@@ -173,6 +172,16 @@ donorSession2.getDatabase("database").collection.updateOne({_id: "tenant2_in_tra
});
donorSession2.commitTransaction();
+// Start a transaction and perform some large writes.
+const largePad = "a".repeat(10 * 1024 * 1024);
+donorSession2.startTransaction();
+donorSession2.getDatabase("database")
+ .collection.insertOne({_id: "tenant2_in_transaction_2", largePad});
+donorSession2.getDatabase("database").collection.updateOne({_id: "tenant2_in_transaction_2"}, {
+ $set: {updated: true, largePad: "b" + largePad}
+});
+donorSession2.commitTransaction_forTesting();
+
fpBeforeMarkingCloneSuccess.off();
TenantMigrationTest.assertCommitted(tenantMigrationTest.waitForMigrationToComplete(migrationOpts));
@@ -246,17 +255,21 @@ const recipientSecondaryTenantConn2 = ChangeStreamMultitenantReplicaSetTest.getT
// Resume the second change stream on the Recipient primary.
const recipientPrimaryCursor2 =
- recipientPrimaryTenantConn2.getDB("database").collection.watch([], {resumeAfter: resumeToken2});
+ recipientPrimaryTenantConn2.getDB("database").collection.watch([{$unset: "largePad"}], {
+ resumeAfter: resumeToken2
+ });
// Resume the second change stream on the Recipient secondary.
const recipientSecondaryCursor2 =
- recipientSecondaryTenantConn2.getDB("database").collection.watch([], {
+ recipientSecondaryTenantConn2.getDB("database").collection.watch([{$unset: "largePad"}], {
resumeAfter: resumeToken2,
});
[{_id: "tenant2_2", operationType: "insert"},
{_id: "tenant2_in_transaction_1", operationType: "insert"},
{_id: "tenant2_in_transaction_1", operationType: "update"},
+ {_id: "tenant2_in_transaction_2", operationType: "insert"},
+ {_id: "tenant2_in_transaction_2", operationType: "update"},
].forEach(expectedEvent => {
[recipientPrimaryCursor2, recipientSecondaryCursor2].forEach(cursor => {
assert.soon(() => cursor.hasNext());