diff options
author | Kruti Shah <kruti139@gmail.com> | 2023-05-10 16:24:28 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-05-10 18:08:41 +0000 |
commit | 5d0d280f94ac99745429af718a629e0805dc1f7e (patch) | |
tree | 094ba625dac44a7619f3f7598ecb120109f8a0a7 /jstests | |
parent | e047e9dd7f1a0a0c7c3f423548b2078993eb2872 (diff) | |
download | mongo-5d0d280f94ac99745429af718a629e0805dc1f7e.tar.gz |
SERVER-72438 Validate no writeErrors due to shard key targeting
Diffstat (limited to 'jstests')
-rw-r--r-- | jstests/sharding/transactions_targeting_errors.js | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/jstests/sharding/transactions_targeting_errors.js b/jstests/sharding/transactions_targeting_errors.js index 90ddfb52a95..d8488a6197a 100644 --- a/jstests/sharding/transactions_targeting_errors.js +++ b/jstests/sharding/transactions_targeting_errors.js @@ -1,11 +1,10 @@ -// Verifies targeting errors encountered in a transaction lead to write errors. +// Verifies targeting errors encountered in a transaction lead to write errors when write without +// shard key feature is not enabled. // // @tags: [uses_transactions] (function() { "use strict"; -// TODO: SERVER-72438 Change transaction_targeting_errors.js to validate writeErrors that aren't due -// to shard key targeting. load("jstests/sharding/updateOne_without_shard_key/libs/write_without_shard_key_test_util.js"); const dbName = "test"; @@ -20,6 +19,16 @@ const session = st.s.startSession(); const sessionDB = session.getDatabase("test"); if (WriteWithoutShardKeyTestUtil.isWriteWithoutShardKeyFeatureEnabled(sessionDB)) { + session.startTransaction(); + assert.commandWorked(sessionDB.runCommand( + {update: collName, updates: [{q: {skey: {$lte: 5}}, u: {$set: {x: 1}}, multi: false}]})); + assert.commandWorked(session.abortTransaction_forTesting()); + + session.startTransaction(); + assert.commandWorked( + sessionDB.runCommand({delete: collName, deletes: [{q: {skey: {$lte: 5}}, limit: 1}]})); + assert.commandWorked(session.abortTransaction_forTesting()); + st.stop(); return; } |