[SERVER-30617] Re-enable support for array values in idempotency checker for update sequences Created: 11/Aug/17  Updated: 27/Sep/18  Resolved: 27/Sep/18

Status: Closed
Project: Core Server
Component/s: Replication, Testing Infrastructure
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Max Hirschhorn Assignee: DO NOT USE - Backlog - Test Infrastructure Group (TIG)
Resolution: Won't Fix Votes: 0
Labels: close
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-29944 Implement a basic idempotency checker... Closed
Participants:

 Description   

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).


Generated at Thu Feb 08 04:24:26 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.