Details
-
Task
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
None
-
Fully Compatible
-
Security 2022-12-12
-
0
Description
The FLE2 FSM tests (fle2_compact.js and fle2_crud.js) run operations that do not use the same DB (and session) as the one passed in on every state function call by the FSM runner, instead the encrypted operations in each state function operate within the context of an EncryptedClient object, which has its own Mongo and DB object. Meanwhile, the multi_stmt_txn suites assume that every operation running within a state function will be part of a single transaction, and so it enables a retry mechanism in the FSM runner to retry the transaction in cases of transient errors. Because the auto-retry may cause the state function to be run multiple times, and because each state function in a FLE 2 test runs commands that are not a part of a transaction, it is possible for FLE 2 operations to execute more times than expected, and thus lead to assertion failures during teardown.