|
This comes from a bulkWrite test but still fails when I moved from a bulkWrite update to a normal update like below:
/**
|
* Test that bulkWrite update works with FLE2.
|
*
|
* Some of the tests are incompatible with the transaction overrides since any failure
|
* will cause a transaction abortion which will make the overrides infinite loop.
|
*
|
* The test runs commands that are not allowed with security token: bulkWrite.
|
* @tags: [
|
* not_allowed_with_security_token,
|
* command_not_supported_in_serverless,
|
* does_not_support_transactions,
|
* # TODO SERVER-52419 Remove this tag.
|
* featureFlagBulkWriteCommand,
|
* ]
|
*/
|
import {
|
assertIsIndexedEncryptedField,
|
assertIsUnindexedEncryptedField,
|
EncryptedClient,
|
kSafeContentField
|
} from "jstests/fle2/libs/encrypted_client_util.js";
|
import {cursorEntryValidator} from "jstests/libs/bulk_write_utils.js";
|
|
let dbName = 'basic_update';
|
let dbTest = db.getSiblingDB(dbName);
|
dbTest.dropDatabase();
|
|
let client = new EncryptedClient(db.getMongo(), dbName);
|
|
assert.commandWorked(client.createEncryptionCollection("basic", {
|
validator: {$jsonSchema: {required: ["first", "aka"]}},
|
encryptedFields: {
|
"fields": [
|
{"path": "first", "bsonType": "string", "queries": {"queryType": "equality"}},
|
{"path": "middle", "bsonType": "string"},
|
{"path": "aka", "bsonType": "string", "queries": {"queryType": "equality"}},
|
]
|
}
|
}));
|
|
let edb = client.getDB();
|
|
let res = assert.commandWorked(edb.runCommand({
|
update: "basic",
|
updates: [{
|
q: {_id: 2},
|
u: {$set: {"first": "bob", "middle": "belcher", "aka": "bobs burgers"}},
|
upsert: true
|
}]
|
}));
|
Error is:
2023-08-07T20:23:31.770Z assert: command failed: {
|
"nModified" : 0,
|
"n" : 0,
|
"opTime" : Timestamp(1691439811, 12),
|
"writeErrors" : [
|
{
|
"index" : 0,
|
"code" : 2,
|
"errmsg" : "Cannot insert a document with field name __safeContent__"
|
}
|
],
|
"ok" : 1,
|
"$clusterTime" : {
|
"clusterTime" : Timestamp(1691439811, 14),
|
"signature" : {
|
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
|
"keyId" : NumberLong(0)
|
}
|
},
|
"operationTime" : Timestamp(1691439811, 12)
|
} with original command request: {
|
"update" : "basic",
|
"updates" : [
|
{
|
"q" : {
|
"_id" : 2
|
},
|
"u" : {
|
"$set" : {
|
"first" : "bob",
|
"middle" : "belcher",
|
"aka" : "bobs burgers"
|
}
|
},
|
"upsert" : true
|
}
|
],
|
"lsid" : {
|
"id" : UUID("abff21cc-6b61-4105-b0f3-2bad233a713a")
|
},
|
"$clusterTime" : {
|
"clusterTime" : Timestamp(1691439811, 9),
|
"signature" : {
|
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
|
"keyId" : NumberLong(0)
|
}
|
}
|
} on connection: connection to localhost:20003
|
The same test has no issue on fle2_sharding.
The original patch failure is here.
|