-
Type: Improvement
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Replication, Testing Infrastructure
The test cases added as part of SERVER-29944 explicitly prevent array values from being generated by the DocumentStructureEnumerator and the UpdateSequenceGenerator by setting skipSubArrs=true and arrProbability=0.0, respectively. There are ambiguities that arise when using paths such as "a.0" since it could refer to the first element of an array or a field within a document called "0". While they do not lead to idempotency issues directly, they do require the generation of update sequences to be more intelligent by ensuring that the sequence of update operations is something that a primary would have written to its oplog.
If the starting document isn't ever observed by calling IdempotencyTest::runOp() for each operation, then a final update should be append to the end of the sequence that $set's the fields in the document to the appropriate value and $unset's any other fields in the document not present in the starting document. This ensures that the starting document can be considered a valid state for the document in some snapshot (as would happen during initial sync's cloning process).
- depends on
-
SERVER-29944 Implement a basic idempotency checker for testing oplog idempotency
- Closed