-
Type: New Feature
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Testing Infrastructure
-
Fully Compatible
-
STM 2019-02-11, STM 2019-02-25
-
53
Testing-only support for running transactions that only do reads on secondaries is going away with SERVER-39139 and the CheckReplDBHashInBackground hook is being disabled along with it. We'd like to retain the ability to detect transient data inconsistency failures (e.g. related to timestamping differences between the primary and secondary of a replica set) that have been resolved by the time we've finished waiting for all operations to have replicated.
A testing-only query option should be introduced to call RecoveryUnit::setTimestampReadSource() with a supplied clusterTime to the find and dbHash commands. The run_check_repl_dbhash_background.js hook should be update to use this new option for getting the dbhash of a particular snapshot and computing the diff between replica set members should a mismatch arise.
Some care will need to be taken to handle (e.g. by retrying) the cursor getting killed as a result the collection or an index on the collection being dropped when attempting to compute the diff.
- causes
-
SERVER-54899 Pass in point-in-time value used for getHashesUsingSessions() into getCollectionDiffUsingSessions()
- Closed
- depends on
-
SERVER-39372 Make secondary lock acquisition for DDL operations consistent with behavior on primary
- Closed
- is depended on by
-
SERVER-39321 Re-enable the CheckReplDBHashInBackground hook
- Closed
- is related to
-
SERVER-39660 AutoGetCollectionForRead should throw with SnapshotUnavailable if provided timestamp is earlier than minimum visible snapshot
- Closed
-
SERVER-34778 Add support for specifying atClusterTime to the dbhash command
- Closed
-
SERVER-34779 Check the dbhash periodically in a new version of the replica_sets_jscore_passthrough.yml test suite
- Closed
-
SERVER-39139 Remove testing support for secondary transactions
- Closed
- related to
-
SERVER-40589 find command should validate $_internalReadAtClusterTime is not null
- Closed
-
SERVER-39565 Add 'requires_document_locking' tag to read_at_cluster_time_outside_transactions.js test
- Closed